經典統計語言模型 -- Statistical Language Model

模型介紹

NLP早期常用的統計方法,對於一個sequenc的句子S(w1w2w3wn,wiS (w_1w_2w_3{\cdots}w_n, w_i表示某個詞),其出現的概率計算如下:
P(S)=P(w1)P(w2w1)P(w3w1w2)P(wnw1w2wn1)(1) P(S)=P(w_1){\cdot}P(w_2|w_1){\cdot}P(w_3|w_1w_2){\cdots}P(w_{n}|w_1w_2{\cdots}w_{n-1}) \tag1
引入馬爾可夫假設,任意一個詞出現的概率,只和前N-1個詞有關, 特別的當N=2的時候,公式1變爲如下
P(S)=P(w1)P(w2w1)P(w3w2)P(wnwn1)(2) P(S)=P(w_1){\cdot}P(w_2|w_1){\cdot}P(w_3|w_2){\cdots}P(w_{n}|w_{n-1}) \tag2

核心思想

  1. 一個句子的合理性爲該句子在語料中出現的概率
  2. 句子出現的概率爲句子中詞按順序出現的概率
  3. 引入馬爾可夫假設:N-gram模型爲任意一個詞出現的概率,和前N-1個詞有關,以上公式(1)爲Bigram,當前詞的概率只和前一個有關

那麼如何計算P(wnwn1))P(w_n|w_{n-1}))呢 ,P(wnwn1)P(w_n|w_{n-1})爲條件概率,根據定義有
P(wnwn1)=P(wn1,wn)P(wn1)(3) P(w_n|w_{n-1}) =\frac{P(w_{n-1},w_n)}{P(w_{n-1})} \tag3
其中P(wn1,wn)P(w_{n-1},w_n)爲聯合概率密度, 只要語料庫夠大 P(wn1,wn)=#(wn1,wn)#P(w_{n-1},w_n)=\frac{\#(w_{n-1}, w_n)}{\#}, P(wn1)=#(wn1)#P(w_{n-1})=\frac{\#(w_{n-1})}{\#}, #(wn1,wn)\#(w_{n-1}, w_n)wn1wnw_{n-1}w_n這個二元組在語料corpus中出現的次數,對P(wn1)P(w_{n-1})爲0的情況

缺點

  1. Ngram是由詞頻率和共同出現的頻率來估計概率的,算力的問題隨着Ngram的N變大而指數增大
  2. 當N不太大的時候,無法解決長文本的依賴問題
  3. 對於共現次數爲0的情況,wn1wnw_{n-1}w_n出現的次數爲0,需要考慮平滑處理,N越大,情況越嚴重
  4. N元組的共現無法體現語義相似

優點

  1. 原理簡單,語料庫來自人類的自然文本,數據量巨大且不用標註
  2. 奠定了之後NLP語言模型的發展基石
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章