NLP N-gram

N-gram Language Model

定義

為一種統計語言模型(Statistical Language Model),統計語言模型定義:

而N-gram又稱為N元模型,N-gram是指一段語句中包含N個Token,譬如abcde,則2-gram依次為:
ab, bc, cd, de


馬可夫假設(Markov chain)

根據鏈式法則將統計語言模型展開後可得:

這裡利用馬可夫假設進行,縮減參數空間。馬可夫假設的概念為,任一個詞出現的機率,只與前幾個詞有關西。
N-gram模型的N指出要取前幾個詞(包含自己)來計算。N越大,則模型越準確,但也越複雜,且計算量也大。
最常使用的為Bigram,N取≥4的情况的情況較少。
常用的N-gram模型的縮減後為:
1-gram(Unigram):

2-gram(Bigram):

3-gram(Trigram):

學習過程中,利用最大似然法將上述算式的參數求出,並追求將訓練樣本概率的最大值。

平滑方法(Smoothing)

對於語言處理,被證實數據稀疏(Data Sparseness)的存在,故提出數據平滑(Data Smoothing)技術來解決。
數據稀疏指出在測試過程中的語料,沒有在訓練階段出現過。數據平滑技術是增強語言模型的重要手段,而且其效果與訓練集的規模有關,當規模越小,則數據平滑的效果越好,反之,則不顯著,甚至可以忽略。

目前已知效果最好的數據平滑演算法為Modified kneser-Ney Smoothing:

D1、D2、和D3分別用來對應於 Unigram、Bigram 與 Trigram