使用python进行文本预处理和提取特征的实例
如下所示:
文本过滤
result=re.sub(r'[^\u4e00-\u9fa5,。?!,、;:“”‘'()《》〈〉]',"",content)#只保留中文和标点
result=re.sub(r'[^\u4e00-\u9fa5]',"",content)#只保留中文 result=re.sub(r'[^\0-9\.\u4e00-\u9fa5,。?!,、;:“”‘'()《》〈〉]',"",content)#只保留中文和标点和数字 result=re.sub(r'[^\u4e00-\u9fa5,A-Za-z0-9]',"",content)#只保留中文、英文和数字
文本去除两个以上空格
content=re.sub(r'\s{2,}','',content)
bas4编码变成中文
defbas4_decode(bas4_content): decodestr=base64.b64decode(bas4_content) result=re.sub(r'[^\0-9\.\u4e00-\u9fa5,。?!,、;:“”‘'()《》〈〉]',"",decodestr.decode())#只保留中文和标点和数字 returnresult
文本去停用词
deftext_to_wordlist(text):
result=re.sub(r'[^\u4e00-\u9fa5]',"",text)
f1_seg_list=jieba.cut(result)#需要添加一个词典,来弥补结巴分词中没有的词语,从而保证更高的正确率
f_stop=codecs.open(".\stopword.txt","r","utf-8")
try:
f_stop_text=f_stop.read()
finally:
f_stop.close()
f_stop_seg_list=f_stop_text.split()
test_words=[]
formywordinf1_seg_list:
ifmywordnotinf_stop_seg_list:
test_words.append(myword)
returntest_words
文本特征提取
importjieba
importjieba.analyse
importnumpyasnp
#importjson
importre
defTextrank(content):
result=re.sub(r'[^\u4e00-\u9fa5]',"",content)
seg=jieba.cut(result)
jieba.analyse.set_stop_words('stopword.txt')
keyList=jieba.analyse.textrank('|'.join(seg),topK=10,withWeight=False)
returnkeyList
defTF_IDF(content):
result=re.sub(r'[^\u4e00-\u9fa5]',"",content)
seg=jieba.cut(result)
jieba.analyse.set_stop_words('stopword.txt')
keyWord=jieba.analyse.extract_tags(
'|'.join(seg),topK=10,withWeight=False,allowPOS=())#关键词提取,在这里对jieba的tfidf.py进行了修改
returnkeyWord
以上这篇使用python进行文本预处理和提取特征的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。