2011年12月6日 星期二

4 款開源的中文分詞系統

中文分詞是做好中文內容檢索、文本分析的基礎,主要應用於搜索引擎與數據挖掘領域。中文是以詞為基本語素單位,而詞與詞之間並不像英語一樣有空格來分隔,因而中文分詞的難點在於如何準確而又快速地進行分詞。以下介紹4款開源中文分詞系統。

1、ICTCLAS – 全球最受歡迎的漢語分詞系統


中文詞法分析是中文信息處理的基礎與關鍵。中國科學院計算技術研究所在多年研究工作積累的基礎上,研製出了漢語詞法分析系統ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),主要功能包括中文分詞;詞性標註;命名實體識別;新詞識別;同時支持用戶詞典;支持繁體中文;支持GBK、UTF-8、UTF-7、UNICODE等多種編碼格式。我們先後精心打造五年,內核升級6次,目前已經升級到了ICTCLAS3.0。ICTCLAS3.0分詞速度單機996KB/s,分詞精度98.45%,API不超過200KB,各種詞典數據壓縮後不到3M,是當前世界上最好的漢語詞法分析器。
系統平台:Windows
開發語言:C/C++、Java、C#
使用方式:dll調用
開源官網:http://ictclas.org
晴楓附註:ICTCLAS有共享版、商業版、行業版,支持Linux平台,但不開源。ICTCLAS已進入商用,且應用範圍較廣,相信分詞效率出色。

2、HTTPCWS – 基於HTTP協議的開源中文分詞系統

HTTPCWS 是一款基於HTTP協議的開源中文分詞系統,目前僅支持Linux系統。HTTPCWS 使用“ICTCLAS 3.0 2009共享版中文分詞算法”的API進行分詞處理,得出分詞結果。
ICTCLAS是中國科學院計算技術研究所在多年研究工作積累的基礎上,基於多層隱馬模型研製出的漢語詞法分析系統,主要功能包括中文分詞;詞性標註;命名實體識別;新詞識別;同時支持用戶詞典。ICTCLAS經過五年精心打造,內核升級6次,目前已經升級到了ICTCLAS3.0,分詞精度98.45%,各種詞典數據壓縮後不到3M。ICTCLAS在國內973專家組組織的評測中活動獲得了第一名,在第一屆國際中文處理研究機構SigHan組織的評測中都獲得了多項第一名,是當前世界上最好的漢語詞法分析器。
ICTCLAS 3.0 商業版是收費的,而免費提供的 ICTCLAS 3.0 共享版不開源,詞庫是根據人民日報一個月的語料得出的,很多詞語不存在。所以本人補充的一個19萬條詞語的自定義詞庫,對ICTCLAS分詞結果進行合併處理,輸出最終分詞結果。
由於 ICTCLAS 3.0 2009 共享版只支持GBK編碼,因此,如果是UTF-8編碼的字符串,可以先用iconv函數轉換成GBK編碼,再用httpcws進行分詞處理,最後轉換回UTF-8編碼。
HTTPCWS 軟件自身(包括httpcws.cpp源文件、dict/httpcws_dict.txt自定義詞庫)採用NewBSD開源協議,可以自由修改。HTTPCWS 使用的 ICTCLAS 共享版 API 及 dict/Data/ 目錄內的語料庫,版權及著作權歸中國科學院計算技術研究所、ictclas.org所有,使用需遵循其相關協議。
系統平台:Linux
開發語言:C++
使用方式:HTTP服務
晴楓附註:基於ICTCLAS,增加了19萬條詞語的擴展詞庫,並且構建成HTTP服務的方式,使用上更加便捷。

3、SCWS – 簡易中文分詞系統

SCWS 在概念上並無創新成分,採用的是自行採集的詞頻詞典,並輔以一定程度上的專有名稱、人名、地名、數字年代等規則集,經小範圍測試大概準確率在 90% ~ 95% 之間,已能基本滿足一些中小型搜索引擎、關鍵字提取等場合運用。 SCWS 採用純 C 代碼開發,以 Unix-Like OS 為主要平台環境,提供共享函數庫,方便植入各種現有軟件系統。此外它支持 GBK,UTF-8,BIG5 等漢字編碼,切詞效率高。
系統平台:Windows/Unix
開發語言:C
使用方式:PHP擴展
晴楓附註:作為PHP擴展,容易與現有的基於PHP架構的Web系統繼續集成,是其一大優勢。

4、PhpanAlysis - PHP無組件分詞系統

PhpanAlysis分詞系統是基於字符串匹配的分詞方法 ,這種方法又叫做機械分詞方法,它是按照一定的策略將待分析的漢字串與一個“充分大的”機器詞典中的詞條進行配,若在詞典中找到某個字符串,則匹配成功(識別出一個詞)。按照掃瞄方向的不同,串匹配分詞方法可以分為正向匹配 和逆向匹配;按照不同長度優先匹配的情況,可以分為最大(最長)匹配和最小(最短)匹配;按照是否與詞性標註過程相結合,又可以分為單純分詞方法和分詞與標註相結合的一體化方法。 
系統平台:PHP環境
開發語言:PHP
使用方式:HTTP服務
晴楓附註:實現簡單,容易使用,能做一些簡單應用,但大數據量的計算效率不如前幾種。
試用了幾個系統,基本分詞功能都沒什麼問題,只是在個別一些詞的劃分上存在一些差異;對於詞性的確定,系統間有所不同。

沒有留言: