分詞算法

1.正向最大匹配算法

基於詞典的正向最大匹配算法(最長詞優先匹配),算法會根據詞典文件自動調整最大長度,分詞的好壞完全取決於詞典。

 

算法流程圖如下:

以上內容參見:http://yangshangchuan.iteye.com/blog/2031813

此文章還對比了linked list、array、trie樹和hash table的方式實現正向最大匹配算法的性能對比!其中trie書和hash table的性能對比比較有意思!


2.逆向最大匹配算法

逆向最大匹配算法的實現思想參見上圖的算法流程圖,其區別有兩點(紅字標示):

從S1的尾部逆向選擇長度不大於MaxLen的字符作爲W,然後去字典中查詢,如果查詢不到,將W最左邊的一個字去掉。

最大匹配算法的特點:

最大匹配算法在大型搜索系統中的使用頻率較低,其主要問題有以下幾點:
長度限制: 由於最大匹配法必須首先設定一個匹配詞最大長度的初始值,這個長度限制是最大匹配法在效率與詞長之間的一種妥協。因此:
詞長過短,長詞就會被切錯。
詞長過長,效率就比較低。
效率低: 由於很多詞長會低於最大匹配的長度,因此,會造成大量的匹配浪費。
不能處理歧義和重疊字(不理解)

3.正向最小匹配算法

比如我們切分句子: “中華人民共和國萬歲萬歲萬萬歲”,使用正向最大匹配算法的切分結果爲:[中華人民共和國, 萬歲,萬歲, 萬萬歲],可以看到,切分出來的詞是很長的,粒度很粗,如果我們想要切分出很細粒度的詞,該怎麼辦呢?——正向最小匹配算法。該算法和正向最大匹配算法相得益彰,一個強調細粒度,一個強調粗粒度。使用正向最小匹配算法,必須注意的一點是:詞典中不能有單字詞,詞的長度至少爲2!

最小匹配算法特點:

由於最小切分每次都只需要獲得最小批評的詞,速度快;
其次,在詞典相對完善的情況下,該切分方法可以獲得較好的準確率;
當前,Sf1r中使用,最小匹配方式。

4.統計分詞算法

……

5.條件隨機場算法

……

總結:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章