1. 程式人生 > >jieba中文處理 python

jieba中文處理 python

需要 jieba round 手機 段落 ide ear 使用 其中

一、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 stopwords
6 # 對句子進行中文分詞 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