模型介紹
NLP早期常用的統計方法,對於一個sequenc的句子S(w1w2w3⋯wn,wi表示某個詞),其出現的概率計算如下:
P(S)=P(w1)⋅P(w2∣w1)⋅P(w3∣w1w2)⋯P(wn∣w1w2⋯wn−1)(1)
引入馬爾可夫假設,任意一個詞出現的概率,只和前N-1個詞有關, 特別的當N=2的時候,公式1變爲如下
P(S)=P(w1)⋅P(w2∣w1)⋅P(w3∣w2)⋯P(wn∣wn−1)(2)
核心思想
- 一個句子的合理性爲該句子在語料中出現的概率
- 句子出現的概率爲句子中詞按順序出現的概率
- 引入馬爾可夫假設:N-gram模型爲任意一個詞出現的概率,和前N-1個詞有關,以上公式(1)爲Bigram,當前詞的概率只和前一個有關
那麼如何計算P(wn∣wn−1))呢 ,P(wn∣wn−1)爲條件概率,根據定義有
P(wn∣wn−1)=P(wn−1)P(wn−1,wn)(3)
其中P(wn−1,wn)爲聯合概率密度, 只要語料庫夠大 P(wn−1,wn)=##(wn−1,wn), P(wn−1)=##(wn−1), #(wn−1,wn)爲wn−1wn這個二元組在語料corpus中出現的次數,對P(wn−1)爲0的情況
缺點
- Ngram是由詞頻率和共同出現的頻率來估計概率的,算力的問題隨着Ngram的N變大而指數增大
- 當N不太大的時候,無法解決長文本的依賴問題
- 對於共現次數爲0的情況,wn−1wn出現的次數爲0,需要考慮平滑處理,N越大,情況越嚴重
- N元組的共現無法體現語義相似
優點
- 原理簡單,語料庫來自人類的自然文本,數據量巨大且不用標註
- 奠定了之後NLP語言模型的發展基石