中文結巴斷詞

      在〈中文結巴斷詞〉中尚無留言

中文向量化處理比英文多了一個步驟,就是斷詞。

為什麼要多了斷詞這個步驟? 原因是英文的一個單字代表一個意思,比如 “traditional” 這一個單字的意思就是中文的 “傳統的”。英文只要一個單字 “traditional”,中文卻要用三個字來表示 “傳統的”。

把 “傳統的” 變成一個單字 (類似英文的一個單字),這就是斷詞。這跟斷章取意有相同的效果,斷的不好,就有不同的意思,所以必需僅甚。

安裝套件

pip install jieba wordcloud matplotlib

結巴演算

中文的斷詞演算法目前大致有二套,一套是中研院開發的斷詞系統,另外一套是中國大陸開發的 jieba (結巴) 演算法。中研院開發的東西請直接跳過去,只有”非常爛”。大陸的 jieba 演算法,就非常容易且精準。

jieba 是模仿說話會結巴的人,把他們的斷點思維變成一個演算法。發明這種演算法的人,真的是聰明到極點。

結巴字典下載

開始進行中文斷詞之前,需下載結巴字典(中文繁体)。結巴字典位於 : https://github.com/APCLab/jieba-tw : 進入jieba目錄,點選 dict.txt,然後按右邊的 download

斷詞測試

底下的代碼,可以測試斷詞的效果。先把字典 dict.txt 及停用詞 stops.txt 載入。

斷詞的函數為 jieba.cut(),cut() 函數有二個模式,由 cut_all 參數控制。此參數如果為True 時,是精準全斷詞模式,會把所有能斷詞的方式都列出來,可以增加文與文之間的比較性,所以準確度會更高,但會更耗時。

如下的代碼,在全精準模式下會多出好幾種斷詞的方式。

🔒 底下內容僅限會員閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *