1. 程式人生 > >中文分詞演算法——基於統計的分詞

中文分詞演算法——基於統計的分詞

1.基於統計的分詞(無字典分詞)

主要思想:上下文中,相鄰的字同時出現的次數越多,就越可能構成一個詞。因此字與字相鄰出現的概率或頻率能較好的反映詞的可信度。

主要統計模型為:N元文法模型(N-gram)、隱馬爾科夫模型(Hidden Markov Model, HMM)

1.1N-gram模型思想

模型基於這樣一種假設,第n個詞的出現只與前面N-1個詞相關,而與其它任何詞都不相關,整句的概率就是各個詞出現概率的乘積 .

我們給定一個詞,然後猜測下一個詞是什麼。當我說“豔照門”這個詞時,你想到下一個詞是什麼呢?我想大家很有可能會想到“陳冠希”,基本上不會有人會想到“陳志傑”吧。N-gram模型的主要思想就是這樣的。

   對於一個句子T,我們怎麼算它出現的概率呢?假設T是由詞序列W1,W2,W3,…Wn組成的,那麼P(T)=P(W1W2W3…Wn)=P(W1)P(W2|W1)P(W3|W1W2)…P(Wn|W1W2…Wn-1)

   但是這種方法存在兩個致命的缺陷:一個缺陷是引數空間過大,不可能實用化;另外一個缺陷是資料稀疏嚴重。

   為了解決這個問題,我們引入了馬爾科夫假設:一個詞的出現僅僅依賴於它前面出現的有限的一個或者幾個詞。

   如果一個詞的出現僅依賴於它前面出現的一個詞,那麼我們就稱之為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)

   如果一個詞的出現僅依賴於它前面出現的兩個詞,那麼我們就稱之為trigram。

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

設w1,w2,w3,...,wn是長度為n的字串,規定任意詞wi 只與它的前兩個相關,得到三元概率模型

wps_clip_image-20787

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

分詞系統判斷標準(待解決問題):歧義識別,新詞(未登入詞)識別

轉自http://www.cnblogs.com/lvpei/archive/2010/08/04/1792409.html