1. 程式人生 > >自然語言處理基礎(1)--基本分詞方法

自然語言處理基礎(1)--基本分詞方法

         基本的分詞方法包括最大匹配法最大概率法(最短加權路徑法)、最少分詞法基於HMM的分詞法基於互現資訊的分詞方法基於字元標註的方法基於例項的漢語分詞方法等。

      1.最大匹配法

        最大匹配法需要一個詞表,分詞的過程中用文字的候選詞去跟詞表中的詞匹配,如果匹配成功,則認為候選詞是詞,予以切分;否則就認為不是詞(原則就是儘可能的用最長的詞來匹配句子中的漢字串)。

        優點:程式簡單易行,開發週期短,不需要詞法、句法、語義資源,儘管也會出錯,但大多數情況下是適用的

        缺點:切分歧義消除的能力差(比如:“使使用者滿意”-->“使用/戶/滿意”)

        演算法流程:

        (1)待切分漢字串s1,已切分漢字串s2(s2初始為空串)

        (2)如果s1為空串,轉(6)

        (3)從s1的左邊賦值一個子串w作為候選詞,儘可能長,但不要超過MaxWordLength

        (4)如果在詞表中找到w,或者w的長度為2(也就是一個漢字),那麼將w和一個詞界標記一起加到s2的右邊,並從s1的左邊去掉w,轉(2)

        (5)去掉w中最後一個漢字,轉(4)

        (6)結束

        演算法舉例:

        

      2.最少分詞法

        最少分詞法的基本思想是使每一句找你哥切出的詞數最少。

        可以將最少分詞法看成是最短路徑搜尋問題:根據詞典,找出字串中所有可能的詞,構造詞語切分的無環有向圖,每個詞對應圖中的一條有向邊,邊長為1。

        然後,針對該切分圖,在起點到終點的所有路徑中,尋找長度最短的路徑。

        優點:同最大匹配法類似

        缺點:當最短路徑有多條的時候,選擇最終的輸出結果缺乏應有的標準

      3.最大概率法

        設Z=z1z2…zn表示字串,W=w1w2…wm表示切分後的詞串,   

        漢語詞語切分可以看作是求使P(W|Z)最大的切分,即p(W|Z) = P(W)P(Z|W)/P(Z) ,其中
        P(Z)是漢字串的概率,它對於各個候選詞串都是一樣的,不必考慮。 
        P(Z|W)表示出現詞串的條件下漢字串的概率,顯然該值為1,不必考慮,則僅需考慮P(W)即詞串的概率。
        詞串的概率可以通過n元語法來求 
        用二元語法 P(W)=p(w1|w0)p(w2|w1)…p(wm|wm-1)                                                                                (1) 
        用一元語法 P(W)=p(w1)p(w2)…p(wm)                                                                                                        (2)
        計算詞串概率時,有一個純技術的問題要考慮: 
        因為每個詞的概率都是一個很小的正數,如果漢字串較長,最後得到各種可能的詞串的概率都接近於0,無法在機器上表示,當然也就無法比較大小。解決這個問題的辦法是:對等式兩邊(1)、(2)兩邊取負對數,即 
                                                                              -logp(W) = -logp(w1)-logp(w2)…-logp(wm)                           (3) 
       根據-logx的曲線特性,可知p(wi)越大,最終的結果越小,因此求(1)、(2)式最大值變為求(3)式的最小值。

       最大概率法可以發現所有的切分歧義,它很大程度上取決於統計語言模型的精度和決策演算法,而且需要大量的標註語料。

      4.與詞性標註結合的分詞方法

        這種方法的基本思想是:將分詞和詞類標註結合起來,利用豐富的詞類資訊對分詞決策提供幫助,並且在標註過程中又反過來對分詞進行校驗、調整,從而極大的提高切分的準確度(HMM詞性標註法就是其中一個方法)

        演算法舉例:

        對於“他倆談戀愛是從頭年元月開始的”,有兩種切分方式:

        (1)...是|從頭|年|元月|...

        (2)...是|從|頭年|元月|...

         雖然“從頭”、“年”的詞頻之積大於“從”、“頭年”的詞頻之積,但是詞性序列“動詞+副詞+時間兩次+時間詞”的概率遠小於“動詞+介詞+時間詞+時間詞”的概率,所以選擇切分方式2作為結果。

       5.基於互現資訊的分詞方法

         從形式上看,詞是一個穩定的字組合,相鄰的字同時出現的次數越多,就越可能構成一個詞,可以對語料中相鄰的各字組合的頻度進行統計,計算他們的互現資訊,互現資訊體現了漢字間結合關係的緊密程度。當緊密程度高於某一閾值時,便可以認為是一個詞。

       6.基於字分類的分詞法

         這種方法的思想是:將分詞過程看做是字的分類問題,每個字在構造一個特定的詞語時都佔據一個確定的構詞位置

       7.基於例項的漢語分詞方法

         這種方法的思想是:在訓練語料中存放事先切分好的漢字串為異號輸入的待切分句子提供可靠的例項。在分詞的時候,根據輸入句子和訓練語料,找到所有切分片段的例項和可能的詞彙,依據某些優化原則和概率資訊尋求最優詞序列。