斷詞工具介紹: (jieba斷詞)
Python斷詞工具(jieba)介紹。
首先安裝jieba套件
pip install jieba
我們執行Jieba網站所提供的程式碼
# encoding=utf-8 import jieba seg_list = jieba.cut("我來到北京清華大學", cut_all=True) # print("Full Mode: " + "/ ".join(seg_list)) # 全模式 seg_list = jieba.cut("我來到北京清華大學", cut_all=False) print("Default Mode: " + "/ ".join(seg_list)) # 精確模式
得到結果
- Full mode:把句子中所有的可以成詞的詞語都掃瞄出來, 速度非常快,但是不能解決歧義。
- Default Mode:精確模式,是試圖將句子最精確地切開,適合文本分析。
- 上面兩點是官網的解釋,簡單來說Full mode會將所有可以當成詞的文字都列出來。Ex:「清華」、「清華大學」、「大學」等。而Default mode則是預設模式,會根據詞頻來斷出最佳解。
這邊進行簡單的斷詞
import jieba seg_list = jieba.cut("我參與大肚山計畫") print("/ ".join(seg_list))
希望將「我參與大肚山計畫」斷詞為 “我" “參與" “大肚山計畫",
但是得到結果如下
發現斷詞不準確 把"大肚山計畫" 斷成 “大肚" “山計畫"
因此我們需要自定字典 userdict.txt ,內容如下:
大肚山計畫 2 n 參與 2 v
這個格式代表,一個詞佔一行;每一行分三部分:詞語、詞頻(可省略)、詞性(可省略),用空格隔開,順序不可顛倒。
詞頻越大代表這個詞越容易被斷出來,詞性N代表名詞、v代表動詞。
槳程式碼新增ㄧ行(載入字典)
import jieba jieba.load_userdict("userdict.txt") seg_list = jieba.cut("我參與大肚山計畫") print("/ ".join(seg_list))
輸出結果
上面可以看到如此便能成功斷出我們想要的字詞。
如果想看到斷出來的詞的詞性,程式碼如下
import jieba jieba.load_userdict("userdict.txt") import jieba.posseg as pseg words = pseg.cut("我參與大肚山計畫") for word, flag in words: print('%s %s' % (word, flag))
輸出結果
這樣就能得到斷出來的字詞跟詞性。
在此對Jieba斷詞、自訂字典與詞性作ㄧ些簡單介紹。
參考資料
1. https://github.com/fxsjy/jieba