斷詞結構介紹
在自然語言處理的其中一個重要環節就是中文斷詞的處理,比起英文斷詞,中文斷詞在先天上就比較難處理,比如電腦要怎麼知道「全台大停電」要斷詞成「全台 / 大 / 停電」呢?如果是英文「Power outage all over Taiwan」,就可以直接用空白斷成「Power / outage / all / over / Taiwan」,那麼中文的語句該如何斷詞呢?
結巴斷詞程式
今天要跟各為介紹一個斷詞程式—「結巴Jieba中文分詞程式」,此程式所使用的演算法是基於 Trie Tree 結構去生成句子中中文字所有可能成詞的情況,然後使用動態規劃(Dynamic programming)算法來找出最大機率的路徑,這個路徑就是基於詞頻的最大斷詞結果
安裝Jieba
開啟Anaconda Prompt,輸入以下指令:
pip install jieba
由於預設的詞庫為簡體中文,故我們另外自行安裝繁體中文版的詞庫,將檔案放置剛才安裝好的路徑下: Ex:(勿複製此路徑)
C:\users\angel.lee(改為您的使用者名稱)\appdata\local\continuum\anaconda3\lib\site-packages
環境測試
請輸入以下這一小段程式碼,來看看jieba是不是有安裝成功:
import jieba
seg_list = jieba.cut("在非洲,每六十秒,就有一分鐘過去")
print("|".join(seg_list))
補充說明
結巴(jieba)斷詞台灣繁體版本
採用和原始jieba相同的演算法,替換其詞庫及HMM機率表製做出針對台灣繁體的jieba斷詞器 參考網頁:https://github.com/ldkrsi/jieba-zh_TW