THULAC:一個高效的中文詞法分析工具包
項目官網:http://thulac.thunlp.org/
實驗室官網:http://nlp.csai.tsinghua.edu.cn/site2/
THULAC 介紹
THULAC(THU Lexical Analyzer for Chinese)由清華大學自然語言處理與社會人文計算實驗室研製推出的一套中文詞法分析工具包,具有中文分詞和詞性標註功能。THULAC具有如下幾個特點:
能力強。
利用我們集成的目前世界上規模最大的人工分詞和詞性標註中文語料庫(約含5800萬字)訓練而成,模型標註能力強大。
準確率高。
該工具包在標準數據集Chinese Treebank(CTB5)上分詞的F1值可達97.3%,詞性標註的F1值可達到92.9%,與該數據集上最好方法效果相當。
速度較快。
同時進行分詞和詞性標註速度爲300KB/s,每秒可處理約15萬字。只進行分詞速度可達到1.3MB/s。
Demo
編譯和安裝
C++版
在當前路徑下運行
make
會在當前目錄下得到 thulac 和 train_c
(thulac 需要模型的支持,需要將下載的模型放到當前目錄下)
參數
-t2s 將句子從繁體轉化爲簡體
-seg_only 只進行分詞,不進行詞性標註
-deli delimeter 設置詞與詞性間的分隔符,默認爲下劃線_
-filter 使用過濾器去除一些沒有意義的詞語,例如“可以”。
-user userword.txt 設置用戶詞典,用戶詞典中的詞會被打上uw標籤。詞典中每一個詞一行,UTF8編碼(python版暫無)
-model_dir dir 設置模型文件所在文件夾,默認爲models/
java版
可直接按照分詞程序命令格式運行可執行的 jar 包
自行編譯需要安裝 Gradle, 然後在項目根目錄執行 gradle build, 生成文件在 build/libs 下
(thulac 需要模型的支持,需要將下載的模型放到當前目錄下)
參數
-t2s 將句子從繁體轉化爲簡體
-seg_only 只進行分詞,不進行詞性標註
-deli delimeter 設置詞與詞性間的分隔符,默認爲下劃線_
-filter 使用過濾器去除一些沒有意義的詞語,例如“可以”。
-user userword.txt 設置用戶詞典,用戶詞典中的詞會被打上uw標籤。詞典中每一個詞一行,UTF8編碼(python版暫無)
-model_dir dir 設置模型文件所在文件夾,默認爲models/
-input input_file 設置從文件讀入,默認爲命令行輸入
-output output_file 設置輸出到文件中,默認爲命令行輸出
python版(兼容python2.x和python3.x)
源代碼下載
將 thulac 文件放到目錄下,通過 import thulac 來引用
thulac 需要模型的支持,需要將下載的模型放到 thulac 目錄下。
pip 下載
pip install thulac
通過 import thulac 來引用
# 初始化程序,進行自定義設置
thulac(user_dict=None, model_path=None, T2S=False, seg_only=False, filt=False)
user_dict 設置用戶詞典,用戶詞典中的詞會被打上uw標籤。詞典中每一個詞一行,UTF8編碼
T2S 默認False, 是否將句子從繁體轉化爲簡體
seg_only 默認False, 時候只進行分詞,不進行詞性標註
filt 默認False, 是否使用過濾器去除一些沒有意義的詞語,例如“可以”。
model_path 設置模型文件所在文件夾,默認爲models/
# 對一句話進行分詞
cut(文本, text=False)
text
默認爲False, 是否返回文本,不返回文本則返回一個二維數組([[word, tag]..]),seg_only模式下tag爲空字符。
# 對文件進行分詞
cut_f(輸入文件, 輸出文件)
# 命令行交互式分詞(屏幕輸入、屏幕輸出)
run()
使用方式
分詞和詞性標註程序
命令格式
C++版(接口調用參見1.5)
./thulac [-t2s] [-seg_only] [-deli delimeter] [-user userword.txt] 從命令行輸入輸出
./thulac [-t2s] [-seg_only] [-deli delimeter] [-user userword.txt] outputfile 利用重定向從文本文件輸入輸出(注意均爲UTF8文本)
java版
java -jar THULAC_lite_java_run.jar [-t2s] [-seg_only] [-deli delimeter] [-user userword.txt] 從命令行輸入輸出
java -jar THULAC_lite_java_run.jar [-t2s] [-seg_only] [-deli delimeter] [-user userword.txt] -input input_file -output output_file 從文本文件輸入輸出(注意均爲UTF8文本)
python版(兼容python2.x和python3.x)
通過 python 程序 import thulac,新建 thulac.thulac(args)類,其中 args 爲程序的參數。之後可以通過調用 thulac.cut() 進行單句分詞。