本篇文章測試的哈工大LTP、中科院計算所NLPIR、清華大學THULAC和jieba、FoolNLTK、HanLP這六大中文分詞工具是由 水...琥珀 完成的。相關測試的文章之前也看到過一些,但本篇闡述的可以說是比較詳細的了。這里就分享一下給各位朋友!
安裝調用
jieba“結巴”中文分詞:做最好的 Python 中文分詞組件
THULAC清華大學:一個高效的中文詞法分析工具包
FoolNLTK可能不是最快的開源中文分詞,但很可能是最准的開源中文分詞
教程:FoolNLTK 及 HanLP使用
HanLP最高分詞速度2,000萬字/秒
**中科院 Ictclas 分詞系統 - NLPIR漢語分詞系統
哈工大 LTP
LTP安裝教程[python 哈工大NTP分詞 安裝pyltp 及配置模型(新)]
如下是測試代碼及結果
下面測試的文本上是極易分詞錯誤的文本,分詞的效果在很大程度上就可以提現分詞器的分詞情況。接下來驗證一下,分詞器的宣傳語是否得當吧。
jieba 中文分詞
thulac 中文分詞
fool 中文分詞
HanLP 中文分詞
中科院分詞 nlpir
哈工大ltp 分詞
以上可以看出分詞的時間,為了方便比較進行如下操作:
分詞效果對比
結果為:
總結:
1.時間上(不包括加載包的時間),對於相同的文本測試兩次,四個分詞器時間分別為:
jieba: 0.01699233055114746 1.8318662643432617
thulac : 10.118737936019897 8.155954599380493
fool: 2.227612018585205 2.892209053039551
HanLP: 3.6987085342407227 1.443108320236206
中科院nlpir:0.002994060516357422
哈工大ltp_ :0.09294390678405762
可以看出平均耗時最短的是中科院nlpir分詞,最長的是thulac,時間的差異還是比較大的。
2.分詞准確率上,通過分詞效果操作可以看出
第一句:結婚的和尚未結婚的確實在干擾分詞啊
四個分詞器都表現良好,唯一不同的是fool將“干擾分詞”合為一個詞
第二句:汽水不如果汁好喝,重點在“不如果”,“”不如“” 和“”如果“” 在中文中都可以成詞,但是在這個句子里是不如 與果汁 正確分詞
jieba thulac fool HanLP
jieba、 fool 、HanLP正確 thulac錯誤
第三句: 小白痴痴地在門前等小黑回來,體現在人名的合理分詞上
正確是:
小白/ 痴痴地/ 在/ 門前/ 等/ 小黑/ 回來
jieba、 fool 、HanLP正確,thulac在兩處分詞錯誤: 小白_np 痴痴_a 地_u 在_p 門前_s 等_u 小_a 黑回_n 來_f
第四句:是有關司法領域文本分詞
發現HanLP的分詞粒度比較大,fool分詞粒度較小,導致fool分詞在上有較大的誤差。在人名識別上沒有太大的差異,在組織機構名上分詞,分詞的顆粒度有一些差異,Hanlp在機構名的分詞上略勝一籌。
六種分詞器使用建議:
對命名實體識別要求較高的可以選擇HanLP,根據說明其訓練的語料比較多,載入了很多實體庫,通過測試在實體邊界的識別上有一定的優勢。
中科院的分詞,是學術界比較權威的,對比來看哈工大的分詞器也具有比較高的優勢。同時這兩款分詞器的安裝雖然不難,但比較jieba的安裝顯得繁瑣一點,代碼遷移性會相對弱一點。哈工大分詞器pyltp安裝配置模型教程
結巴因為其安裝簡單,有三種模式和其他功能,支持語言廣泛,流行度比較高,且在操作文件上有比較好的方法好用python -m jieba news.txt > cut_result.txt
對於分詞器的其他功能就可以在文章開頭的鏈接查看,比如說哈工大的pyltp在命名實體識別方面,可以輸出標注的詞向量,是非常方便基礎研究的命名實體的標注工作。
精簡文本 效果對比