jieba是一個強大的分詞庫,完美支持中文分詞
安裝jieba
使用命令安裝
pip install jieba
出現上圖表示安裝成功了
jieba分詞模式
全模式
全模式:試圖將句子精確地切開,適合文本分析,輸出的是多有可能的分詞組合
import jieba str = "我是一個中國人" word1 = jieba.cut(str,cut_all=True) for item in word1: print(item)
運行結果:
我
是
一個
中國
國人
精確模式
精確模型:把句子中所有的可以分詞的詞語都掃描出來,速度非常快,但不能解決歧義
注意:沒有參數cut_all的情況下,默認為精確模式
import jieba str = "我是一個中國人" #word1 = jieba.cut(str) word1 = jieba.cut(str,cut_all=False) for item in word1: print(item)
運行結果:
我
是
一個
中國
人
搜索引擎模式
搜索引擎模式:在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜索引擎分詞
import jieba str = "我是一個中國人" word1 = jieba.cut_for_search(str) for item in word1: print(item)
詞性標注
使用jieba.posseg可以對詞性進行標注
import jieba.posseg str = "我是一個中國人" word1 = jieba.posseg.cut(str) #.flag 詞性 #.word 詞語 for item in word1: print(item.word+"--"+item.flag)
運行結果:
我--r
是--v
一個--m
中國--ns
人--n
詞性說明
自定義詞庫
例如:我們現在想對句子【豆花魚是一種很好吃的魚】做一次分詞
import jieba.posseg str = "豆花魚是一種很好吃的魚" word1 = jieba.posseg.cut(str) for item in word1: print(item.word+"--"+item.flag)
分詞結果:
豆花--n
魚--n
是--v
一種--m
很--zg
好吃--v
的--uj
魚—n
【分析】按理來說,豆花魚是一個名詞,但是現在詞庫沒有這個名詞,所以分錯了
那么接下來我們就自定義分詞詞庫
找到路徑C:\Users\OLIVER\AppData\Local\Programs\Python\Python36\Lib\site-packages\jieba下
我們可以看到現在存在一個dict.txt文件,那么我們現在新建一個文件Add_dict.txt
接着我們引入該詞庫進行分詞
import jieba.posseg #引入詞庫 jieba.load_userdict("C:/Users/OLIVER/AppData/Local/Programs/Python/Python36/Lib/site-packages/jieba/Add_dict.txt") str = "豆花魚是一種很好吃的魚" word1 = jieba.posseg.cut(str) for item in word1: print(item.word+"--"+item.flag)
運行結果:
豆花魚--nz
是--v
一種--m
很--zg
好吃--v
的--uj
魚—n
我們從上述的結果中可以清晰看到【豆花魚】已經變成一個其他專有名詞了。
注意:新增的詞庫每次使用都需要引用,它不是一次引入終生使用的