N-gram基本原理


      語言模型的作用在於構建為字符串s的概率分布p(s),也即是一個字符串作為一個句子出現的概率。語言模型與句子是否合法沒有關系,即便一句話是符合邏輯的,但仍可以認為其出現的概率為零。但反過來不成立,即如果一句話不符合邏輯,那么直接認為這句話出現的概率為零。

     對於一個有m個詞的句子s=sw1w2w3…wm而言,其概率為:

      P(s)=p(w1)p(w2|w1)p(w3|w1w2)…p(wm|w1w2…wm),即產生第i個詞的概率是由產生的i-1個詞共同決定的,這i-1個詞稱為第i個詞的歷史。如果歷史的長度為i-1,詞匯集有L個,那么將會有L的i-1次方個歷史情況,這種數據量是不可想象的。為了解決這個問題,引用等價類的方法減少參數,即:如果兩個歷史最近的n-1(1≤n≤k)個詞相同,那么把這兩個歷史映射到同一個等價類當中。這種方法就稱為N元語法(n-gram),N是指的等價類的個數。

      當N等於1時,即n-1=0,出現在第i位上的詞獨立與歷史,記為unigram;

      當N等於2時,即n-1=1,出現在第i位上的詞只與前一個詞有關,也就是一階馬爾科夫鏈,記為bigram;

      當N等於3時,即n-1=2,出現在第i位上的詞與前兩個詞有關,也就是二階馬爾科夫鏈,記為trigram。

      以bigram為例,為了使i=1時有意義,在句子之前加一個標記;為了使所有字符串的概率紙盒等於1,在句子末尾加一個標記。為了估計p(wi|wi-1),可以用最大似然估計(MLE)計算:p(wi|wi-1)=c(wi-1wi)/(求和)c(wi-1wi),其中c表示wi-1wi在給定文本中的出現次數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM