PHPCWS 先使用“ICTCLAS 3.0 共享版中文分詞算法”的API進行初次分詞處理,再使用自行編寫的“逆向最大匹配算法”對分詞和進行詞語合併處理,並增加標點符號過濾功能,得出分詞結果。
ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System)是中國科學院計算技術研究所在多年研究工作積累的基礎上,基於多層隱馬模型研製出的漢語詞法分析系統,主要功能包括中文分詞;詞性標註;命名實體識別;新詞識別;同時支持用戶詞典。ICTCLAS經過五年精心打造,核心升級6次,目前已經升級到了ICTCLAS3.0,分詞精度98.45%,各種詞典數據壓縮後不到3M。ICTCLAS在國內973專家組組織的評測中活動獲得了第一名,在第一屆國際中文處理研究機構SigHan組織的評測中都獲得了多項第一名,是當前世界上最好的漢語詞法分析器。
ICTCLAS 3.0 商業版是收費的,而免費提供的 ICTCLAS 3.0 共享版不開源,詞庫是根據人民日報一個月的語料得出的,很多詞語不存在。所以本人對ICTCLAS分詞後的結果,再採用逆向最大匹配算法,根據自己補充的一個9萬條詞語的自定義詞庫(與ICTCLAS詞庫中的詞語不重複),對ICTCLAS分詞結果進行合併處理,輸出最終分詞結果。
由於 ICTCLAS 3.0 共享版只支持GBK編碼,因此,如果是UTF-8編碼的字元串,可以先用PHP的iconv函式轉換成GBK編碼,再用phpcws_split函式進行分詞處理,最後轉換回UTF-8編碼。