THULAC
THULAC是由清華大學自然語言處理與社會人文計算實驗室(該實驗室帶頭人:孫茂松、劉知遠、劉洋)研製推出的一套中文詞法分析工具包。
安裝了其C++版,對北京大學語料進行了分詞,如果不選擇詞性分析的話,單純分詞,需0.5s,同時利用打分指令碼進行評測:
=== SUMMARY:=== TOTAL INSERTIONS: 995=== TOTAL DELETIONS: 2785=== TOTAL SUBSTITUTIONS: 3870=== TOTAL NCHANGE: 7650=== TOTAL TRUE WORD COUNT: 104372=== TOTAL TEST WORD COUNT: 102582=== TOTAL TRUE WORDS RECALL: 0.936=== TOTAL TEST WORDS PRECISION: 0.953=== F MEASURE: 0.944=== OOV Rate: 0.058=== OOV Recall Rate: 0.794=== IV Recall Rate: 0.945
得到召回率93.6%,準確率95.3%,及F值94.4%(比它官網的測試結果還略高,是不是模型進行了更新的原因)。在測試語料上表現不錯。 NLPIR分詞(原名ICTCLAS)
最初版本是張華平博士在中科院時開發的,現在張華平博士的職位是北京理工大學網路搜尋挖掘與安全實驗室主任,ICTCLAS是比較著名的老牌分詞系統,現在徹底轉商業了,其分詞思路可以參考其開源JAVA版實現ansj。 LTP
語言技術平台(Language Technology Platform,LTP)是哈工大社交運算與資訊檢索研究中心曆時十年開發的一整套中文語言處理系統。LTP制定了基於XML的語言處理結果表示,並在此基礎上提供了一整套自底向上的豐富而且高效的中文語言處理模組(包括詞法、句法、語義等6項中文處理核心技術)。
參考網站文章,實驗一下它的分詞效果:
# ./bin/ltp_test --threads 10 --last-stage ws --input msr_test.utf8 --segmentor-model ltp_data/cws.model > msr_test.seg_ltp [INFO] 2016-04-25 10:16:09 Loading segmentor model from "ltp_data/cws.model" ...[INFO] 2016-04-25 10:16:09 segmentor model is loaded.TRACE: LTP is builtTRACE: Running 10 thread(s)TRACE: consume 2.29775 seconds.[INFO] 2016-04-25 10:16:11 segmentor model is released.
使用微軟提供的測試語料,開啟10個線程,只分詞,用了2.3秒。LTP分出來的是xml檔案,需要轉化一下:
with open("msr_test.seg_ltp.utf8","w") as f: tree = ET.ElementTree(file='msr_test.seg_ltp') for paraElements in tree.iterfind("xml4nlp/doc/para"): word_list= list() for elem in paraElements.iterfind("sent/word"): #print ET.tostring(elem) word_list.append(elem.get("cont")) sent = " ".join(word_list) f.write(sent) f.write("\n")
下面利用評測score指令碼打分:
=== SUMMARY:=== TOTAL INSERTIONS: 6467=== TOTAL DELETIONS: 2669=== TOTAL SUBSTITUTIONS: 8174=== TOTAL NCHANGE: 17310=== TOTAL TRUE WORD COUNT: 106873=== TOTAL TEST WORD COUNT: 110671=== TOTAL TRUE WORDS RECALL: 0.899=== TOTAL TEST WORDS PRECISION: 0.868=== F MEASURE: 0.883=== OOV Rate: 0.026=== OOV Recall Rate: 0.464=== IV Recall Rate: 0.910
召回率89.9%,準確率86.8%,F值88.3%,效果不是很理想(可能與分詞的規範標準有關)。