中文分词中的战斗机-jieba库
生活随笔
收集整理的這篇文章主要介紹了
中文分词中的战斗机-jieba库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
英文分詞的第三方庫NLTK不錯,中文分詞工具也有很多(盤古分詞、Yaha分詞、Jieba分詞等)。但是從加載自定義字典、多線程、自動匹配新詞等方面來看。
大jieba確實是中文分詞中的戰斗機。
請隨意觀看表演
- 安裝
- 分詞
- 自定義詞典
- 延遲加載
- 關鍵詞提取
- 詞性標注
- 詞語定位
- 內部算法
安裝
分詞
3種模式
實現方式
結果:附截圖
自定義詞典
創建方式
- 后綴:txt
- 格式:詞語( 權重 詞性 )
- 注意事項:
- windows下txt不能用自帶的編輯器,否則會亂碼。可以用VSCODE,或者其他編輯器
- 可以只有詞語
- 在沒有權重的情況下,只有比默認詞典長的詞語才可以加載進去。附截圖
加載字典
jieba.load_userdict(txtFile)
調整字典
添加詞:jieba.add_word(word,freq=None,tag=None)
刪除詞:jieba.del_word(word)
import jieba sen = "膠州市市長江大橋" sen_list = jieba.cut(sen) for i in sen_list:print(i,end=" ") print() 膠州市 市 長江大橋 jieba.add_word('江大橋',freq=20000) sen_list = jieba.cut(sen) for i in sen_list:print(i,end=" ") print()結果附截圖
改變主字典
- 占用內存較小的詞典文件
- 支持繁體分詞更好的詞典文件
- 加載方法:jieba.set_dictionary('data/dict.txt.big')
延遲加載
之前發現,詞典不是一次性加載的,說明它采用的是延遲加載。即:當遇到應用的時候才會加載。有點類似于python高級特性中的 yield (節省內存)
效果圖如下:
- 手動加載的方法:jieba.initialize()
關鍵詞提取
jieba.analyse.extract_tags(sentence,topK=20):返回topK個TF/IDF權重最大的詞語
import jieba.analyse sen_ana = jieba.analyse.extract_tags(sen,3) for i in sen_ana:print(i) 江大橋 膠州市 市長詞性標注
jieba.posseg.cut(sen):返回的每個迭代對象有兩個屬性-> word 詞語 + flag 詞性
import jieba.posseg words = jieba.posseg.cut(sen) for word in words:print(word.flag," ",word.word) ns 膠州市 n 市長 x 江大橋詞語定位
jieba.tokenize(sen,mode):mode可以設置為search,開啟搜索模式
index= jieba.tokenize(sen) for i in index:print(i[0],"from",i[1],"to",i[2]) 膠州市 from 0 to 3 市長 from 3 to 5 江大橋 from 5 to 8內部算法
參考文獻
- python中jieba分詞快速入門
- 使用Jieba工具中文分詞及文本聚類概念
轉載于:https://www.cnblogs.com/AsuraDong/p/jieba.html
總結
以上是生活随笔為你收集整理的中文分词中的战斗机-jieba库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux服务器CPU、内存、磁盘空间、
- 下一篇: Java动态绑定机制的内幕