PHP中文分詞代碼使用居於unicode的詞庫,使用反向匹配模式分詞,理論上相容編碼更廣泛,並且對utf-8編碼特別方便。由於PhpanAlysis是無組件的系統,因此速度會比有組件的稍慢,不過在大量分詞中,由於邊分詞邊完成詞庫載入,因此內容越多,反而會覺得速度越快,這是正常現象,對於支援PHP-APC的伺服器,本程式支援對字典進行緩存,這樣做之後理論的速度並不慢於那些帶有組件的分詞程式了。
分詞系統是基於字串匹配的分詞方法,這種方法又叫做機械分詞方法,它是按照一定的策略將待分析的漢字符串與一個“充分大的”機器詞典中的詞條進行配,若在字典中找到某個字串,則匹配成功(辨識出一個字)。依照掃描方向的不同,串匹配分詞方法可以分為正向匹配和逆向匹配;按照不同長度優先匹配的情況,可以分為最大(最長)匹配和最小(最短)匹配;按照是否與詞性標註過程結合,又可以分為單純分詞方法和分詞與標註結合的一體化方法。常用的幾種機械分詞方法如下:
1)正向最大匹配法(由左到右的方向);
2)逆向最大匹配法(由右到左的方向);
3)最少切分(使每一句中切出的詞數最小)。
也可以將上述各種方法相互組合,例如,可以將正向最大匹配方法和逆向最大匹配方法結合起來構成雙向匹配法。由於漢語單字成詞的特點,正向最小匹配和逆向最小匹配一般很少使用。一般說來,逆向匹配的切分精度略高於正向匹配,遇到的歧義現像也較少。統計結果表明,單純使用正向最大匹配的錯誤率為1/169, 單純使用逆向最大匹配的錯誤率為1/245。但這種精度還遠遠不能滿足實際的需要。實際使用的分詞系統,都是把機械分詞當作一種初分手段,還需透過利用各種其它的語言資訊來進一步提高切分的準確率。
一種方法是改進掃描方式,稱為特徵掃描或標誌切分,優先在待分析字串中識別和切分出一些帶有明顯特徵的詞,以這些詞作為斷點,可將原始字串分為較小的字串再來進機械分詞,從而減少匹配的錯誤率。另一種方法是將分詞和詞類標註結合起來,利用豐富的詞類資訊對分詞決策提供幫助,並且在標註過程中又反過來對分詞結果進行檢驗、調整,從而大大提高切分的準確率。
展開