Python自然語言處理(二):使用jieba進行中文斷詞
5 min readJan 6, 2020
fxsjy/jieba
结巴中文分词. Contribute to fxsjy/jieba development by creating an account on GitHub.
github.com
原本打算用英文寫的,可是jieba是在斷中文,還用英文寫就有點怪XD
Jieba提供了三種分詞模式:
- 精確模式:試圖將句子最精確地切開,適合文本分析。
- 全模式:把句子中所有可以成詞的詞語都掃描出來,速度非常快,但是不能解決歧義。
- 搜尋引擎模式:在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。
安裝
pip install jieba
使用範例
設定詞庫
#下載繁體中文詞庫後,使用set_dictionary()方法匯入jieba.set_dictionary('dict.txt.big') #不一定要設定詞庫,內建的效果也不錯
斷詞模式
#默認使用精確模式(一般直接使用精確模式即可)
import jieba
text = '我來到北京清華大學'
print('預設:', '|'.join(jieba.cut(text, cut_all=False, HMM=True)))
print('全關閉:', '|'.join(jieba.cut(text, cut_all=False, HMM=False)))
print('全關閉:', '|'.join(jieba.cut(text, cut_all=True, HMM=True)))#輸出
預設: 我|來到|北京|清華|大學
全關閉: 我|來到|北京|清華|大學
全關閉: 我來|來到|北京|清華|華大|大學
搜尋引擎: 我|來到|北京|清華|大學
使用者字典:
有時候,一些專業詞彙jieba無法進行處理,我們可以自建詞表,讓jieba學著處理
#建立userDict.txt
#並在檔案中加入詞彙和詞頻,如下所示高雄發大財 3000#回到程式:
import jieba
jieba.load_userdict('userDict.txt')
print(jieba.lcut(text))