1. 程式人生 > >基本的分詞演算法調研

基本的分詞演算法調研

NLP領域基本技術之一,分詞(word segmentation)

功能是將一句話用最合理的方式劃分成詞集合,符合語言特點和語義連貫。

基於字典詞庫匹配的分詞方法(機械分詞法)

應用詞典匹配、漢語詞法或其它漢語語言知識進行分詞,如:最大匹配法、最小分詞方法等。這類方法簡單高效但漢語語言複雜豐富,詞典完備性、規則一致性等問題使其難以適應大規模文字的分詞處理。

  1. MM    最大匹配演算法 
    假定分詞詞典中的最長詞有i個漢字字元,則用被處理文件的當前字串中的前i個字作為匹配欄位,查詢字典。若字典中存在這樣的一個i字詞,則匹配成功,匹配欄位被作為一個詞切分出來。如果詞典中找不到這樣的一個i字詞,則匹配失敗,將匹配欄位中的最後一個字去掉,對剩下的字串重新進行匹配處理……
    如此進行下去,直到匹配成功,即切分出一個詞或剩餘字串的長度為零為止。這樣就完成了一輪匹配,然後取下一個i字字串進行匹配處理,直到文件被掃描完為止。
    基於此的演算法:MMSEG、IKAnalyzer

  2. RMM    逆向最大匹配演算法
    RMM法的基本原理與MM法相同 ,不同的是分詞切分的方向與MM法相反,而且使用的分詞辭典也不同。逆向最大匹配法從被處理文件的末端開始匹配掃描,每次取最末端的2i個字元(i字字串)作為匹配欄位,若匹配失敗,則去掉匹配欄位最前面的一個字,繼續匹配。相應地,它使用的分詞詞典是逆序詞典,其中的每個詞條都將按逆序方式存放。在實際處理時,先將文件進行倒排處理,生成逆序文件。然後,根據逆序詞典,對逆序文件用正向最大匹配法處理即可。

  3. 最少切分法
    使每一句中切出的詞數最小。

  4. 雙向匹配法
    將正向最大匹配法與逆向最大匹配法組合。先根據標點對文件進行粗切分,把文件分解成若干個句子,然後再對這些句子用正向最大匹配法和逆向最大匹配法進行掃描切分。如果兩種分詞方法得到的匹配結果相同,則認為分詞正確,否則,按最小集處理。

基於詞頻統計的分詞方法

基於字和詞的統計資訊,如把相鄰字間的資訊、詞頻及相應的共現資訊等應用於分詞,由於這些資訊是通過統計真實語料取得的,因而基於統計的分詞方法具有較好的實用性。

  1. N-gram N元文法模型

    認為一個詞的出現僅依賴於它前面有限的一個或幾個詞。如果僅依賴於它前面出現的一個詞,就稱之為bigram

    P(T)=P(W1W2W3···Wn)=P(W1)P(W2|W1)P(W3|W1W2)···P(Wn|W1W2···Wn-1)

    ≈P(W1)P(W2|W1)P(W3|W2)···P(Wn|Wn-1)

    如果一個詞的出現僅依賴於它前面出現的兩個詞,那麼就稱之為trigramw1,w2,w3,...,wn是長度為n的字串,規定任意詞wi只與它的前兩個相關,得到三元概率模型。

    在實踐中用的最多的就是bigramtrigram了,而且效果很不錯。高於四元的用的很少,因為訓練它需要更龐大的語料,而且資料稀疏嚴重,時間複雜度高,精度卻提高的不多。

    以此類推,N元模型就是假設當前詞的出現概率只同它前面的N-1個詞有關。