一、THULAC
THULAC由《清華大學自然語言處理與社會人文計算實驗室》研制推出的一套中文詞法分析工具包。
官網地址:http://thulac.thunlp.org,該項目提供了多種語言,本文以java版為例,先下載以下二個組件:
1、THULAC_lite_v1_2分詞java版可執行的jar包:THULAC_lite_java_v1_2_run.jar
2、THULAC模型,包括分詞模型和詞性標注模型(v1_2): Models_v1_v2(v1_2).zip
把THULAC模型解壓到與jar文件相同的目錄下,默認會生成models目錄。
然后創建一個input.txt做為輸入,這里選擇了一首歌詞:
郁可唯-茶湯 詞曲:方文山 山嵐像茶杯上的雲煙 顏色越來越淺 你越走越遠 有好多的話還來不及兌現,你就不見 我身后窗外那片梯田 像一段段從前 我站在茶園,抬頭望着天,想象你會在山的,那一邊 我說再喝一碗我熬的茶湯 你說你現在馬上要渡江 渡江到那遙遠的寒冷北方 就怕你的手會凍僵 你何時回來喝我熬的茶湯 這次我會多放一些老姜 你寄來的信一直擱在桌上 不知要寄還哪地方 北風它經過多少村落 來來回回繞過 分不清那年,我求天保佑,只見風聲大做,卻更寂寞
使用方法:
java -jar THULAC_lite_java_v1_2_run.jar -seg_only -input input.txt -output output.txt
上面表示,將從input.txt做為輸入,然后僅分詞(不做詞性標注),並將結果生成到output.txt(如果這個文件沒生成,會自動創建)
輸出結果:
郁可唯 - 茶 湯 詞曲 : 方文山 山嵐 像 茶杯 上 的 雲煙 顏色 越來越 淺 ... 北風 它 經過 多少 村落 來來回 回繞 過 分 不 清 那年 , 我 求 天 保佑 , 只見 風聲 大 做 , 卻 更 寂寞
其它一些通用的參數:
####1.2.通用參數 -t2s 將句子從繁體轉化為簡體 -seg_only 只進行分詞,不進行詞性標注 -deli delimeter 設置詞與詞性間的分隔符,默認為下划線_ -filter 使用過濾器去除一些沒有意義的詞語,例如“可以”。 -user userword.txt 設置用戶詞典,用戶詞典中的詞會被打上uw標簽。詞典中每一個詞一行,UTF8編碼(python版暫無) -model_dir dir 設置模型文件所在文件夾,默認為models/ ####1.3.Java版特有的參數 -input input_file 設置從文件讀入,默認為命令行輸入 -output output_file 設置輸出到文件中,默認為命令行輸出
比較有用的參數:-user userword.txt,可以創建自定義詞典,比如象上面的歌詞,“茶湯”、“來來回回”、“分不清” 這三個詞,都拆成了:
茶 湯 來來回 回繞 過 分 不 清 那年
如果希望這3個詞不分,可以創建一個userword.txt的文件,類似下面這樣:
茶湯 來來回回 繞過 分不清 風聲大做
然后加上-user userword.txt,輸出結果會有變化:
郁可唯 - 茶湯 ... 來來回 回繞 過 分不清 那年 , 我 求 天 保佑 , 只見 風聲大做 , 卻 更 寂寞
“茶湯”,“分不清”這二個詞,已經按預期正確識別了,但是“來來回回”卻並沒有。
二、jieba分詞組件
官網地址:https://github.com/fxsjy/jieba
這里我們使用python版本(java版本的功能比較弱),pip3 install jieba后,可以參考如下使用方法:
python3 -m jieba -u /Users/yangjunming/Downloads/thulac/userword.txt -d ' ' /Users/yangjunming/Downloads/thulac/input.txt > /Users/yangjunming/Downloads/thulac/jieba_output.txt
解釋一下:
-u 表示使用自定義詞典
-d ' ' 表示分詞的間隔符,使用空格(默認是/)
結果如下:(左側的是thulac的輸出,右側的是jieba的輸出)

個人感覺:默認情況下,jieba分詞的顆粒度要粗一些,而thulac則分得太細(但對於一些人名,thulac識別要好一些)
