jieba中文處理 python
一、Jieba中文分詞
本文使用jieba進行文本進行分詞處理,它有3種模式,精確模式,全模式模式,搜索引擎模式:
· 精確模式:試圖將句子最精確地切開,適合文本分析;
· 全模式:把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義;
· 搜索引擎模式:在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜索引擎分詞。
現以“南京市長江大橋”為例,3種分詞模式的結果如下:
【全模式】: 南京 南京市 京市 市長 長江 長江大橋 大橋
【精確模式】: 南京市 長江大橋
【搜索引擎模式】: 南京 京市 南京市 長江 大橋 長江大橋
為了避免歧義和切出符合預期效果,在這裏使用精確模式
1 import jieba 2 all_mode=jieba.cut(‘南京市長江大橋‘,cut_all=True) 3 alls=" ".join(all_mode) 4 print(‘【全模式】:‘,alls) 5 jingque=jieba.cut(‘南京市長江大橋‘,cut_all=False) 6 jings=" ".join(jingque) 7 print(‘【精確模式】:‘,jings) 8 search=jieba.cut_for_search(‘南京市長江大橋‘) 9 searchs=" ".join(search) 10 print(‘【搜索引擎模式】:‘,searchs)
二、去停用詞
去停用詞一般包括三類,
標點符號
特殊符號
無意義的虛詞
停用詞表
鏈接:https://pan.baidu.com/s/1sBpZJMDJcbgyA81kC78PRg
提取碼:b54i
復制這段內容後打開百度網盤手機App,操作更方便哦
1 import jieba 2 # 創建停用詞列表 3 def stopwordslist(): 4 stopwords = [line.strip() for line in open(‘中文停用詞庫.txt‘,encoding=‘gbk‘).readlines()] 5 return stopwords6 # 對句子進行中文分詞 7 def seg_depart(sentence): 8 # 對文檔中的每一行進行中文分詞 9 print("正在分詞") 10 sentence_depart = jieba.cut(sentence.strip()) 11 # 創建一個停用詞列表 12 stopwords = stopwordslist() 13 # 輸出結果為outstr 14 outstr = ‘‘ 15 # 去停用詞 16 for word in sentence_depart: 17 if word not in stopwords: 18 if word != ‘\t‘: 19 outstr += word 20 outstr += " " 21 return outstr 22 if __name__ == ‘__main__‘: 23 # 給出文檔路徑 24 filename = "鬥破蒼穹.txt" 25 outfilename = "out.txt" 26 inputs = open(filename, ‘r‘, encoding=‘UTF-8‘) 27 outputs = open(outfilename, ‘w‘, encoding=‘UTF-8‘) 28 29 # 將輸出結果寫入ou.txt中 30 for line in inputs: 31 line_seg = seg_depart(line) 32 outputs.write(line_seg + ‘\n‘) 33 print("-------------------正在分詞和去停用詞-----------") 34 outputs.close() 35 inputs.close() 36 print("刪除停用詞和分詞成功!!!")
三、去掉高頻詞,稀有詞,和計算Bigrams
去掉高頻詞、稀有詞是針對後續的主題模型(LDA、ATM)時使用的,
主要是為了排除對區隔主題意義不大的詞匯,最終得到類似於停用詞的效果。
Bigrams是為了自動探測出文本中的新詞,基於詞匯之間的共現關系---如果兩個詞經常一起毗鄰出現,
那麽這兩個詞可以結合成一個新詞,比如“數據”、“產品經理”經常一起出現在不同的段落裏,
那麽,“數據_產品經理”則是二者合成出來的新詞,只不過二者之間包含著下劃線。
四、關鍵詞提取
1,基於TF-IDF算法的關鍵詞提取
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False,
allowPOS=())
其中需要說明的是:
1.sentence 為待提取的文本
2.topK 為返回幾個 TF/IDF 權重最大的關鍵詞,默認值為 20
3.withWeight 為是否一並返回關鍵詞權重值,默認值為 False
4.allowPOS 僅包括指定詞性的詞,默認值為空,即不篩選
1 import jieba.analyse 2 #讀取文件,返回一個字符串,使用utf-8編碼方式讀取,該文檔位於此python同以及目錄下 3 path=‘鬥破蒼穹.txt‘ 4 with open(path,‘r‘,encoding=‘utf-8‘)as ff: 5 data=ff.read() 6 #返回詞頻最高的20個詞 7 word=jieba.analyse.extract_tags(data,topK=20) 8 print(‘ ‘.join(word))
參考文章:https://blog.csdn.net/meiqi0538/article/details/80218870#0203_245
:https://www.jianshu.com/p/29aa3ad63f9d
:https://baijiahao.baidu.com/s?id=1587137075873716187&wfr=spider&for=pc
jieba中文處理 python