SRILM–語言模型–N-Gram基本介紹

來源:互聯網
上載者:User

轉自:http://hi.baidu.com/isswangqing/item/1b8e3ad096c286be32db9033

N-Gram是常用的一種語言模型,該模型基於這樣一種假設,第n個詞的出現只與前面N-1個詞相關,而與其它任何詞都不相關,整句的機率就是各個詞出現機率的乘積。這些機率可以通過直接從語料中統計N個詞同時出現的次數得到。

設w1 w2 ⋯w n 是長度為n的詞串,則詞串w的出現的機率為:

例:P(“JOHN READ A BOOK”)=p(“JOHN”)×p(“READ|JOHN”)×p(“A|JOHN READ”)×p(“BOOK|JOHN READ A”)

在n-gram模型中,n的取值對演算法的效果和時空開銷有很大的影響。

n 較大時
1 提供了更多的語境資訊,語境更具區別性。
2 但是,參數個數多、計算代價大、訓練語料需要多、參數估計不可靠。
n 較小時
1 語境資訊少,不具區別性。
2 但是,參數個數少、計算代價小、訓練語料無需太多、參數估計可靠。

一般而言取n=2(bigram)和n=3(trigram)比較合適。

假定訓練語料如下
<BOS> JOHN READ MOBY DICK <EOS>
<BOS> MARY READ A DIFFERENT BOOK <EOS>
<BOS>SHE READ A BOOK BY CHER<EOS>

其中<BOS>和<EOS>是句子邊界,表示句首和句尾。取n=2,則有:

計算句子JOHN READ A BOOK的機率
P(JOHN READ A BOOK)=p(JOHN|<BOS>)×p(READ|JOHN)×p(A|READ)×p(BOOK|A)×p(<EOS>|BOOK)=0.06

 

 

以下轉自:http://blog.sina.com.cn/s/blog_623e3c050100m31g.html

統計語言模型

假設一個句子S可以表示為一個序列S=w1w2…wn,語言模型就是要求句子S的機率P(S):

這個機率的計算量太大,解決問題的方法是將所有曆史w1w2…wi-1按照某個規則映射到等價類別S(w1w2…wi-1),等價類別的數目遠遠小於不同曆史的數目,即假定:

N-Gram模型

當兩個曆史的最近的N-1個詞(或字)相同時,映射兩個曆史到同一個等價類別,在此情況下的模型稱之為N-Gram模型。N-Gram模型被稱為一階馬爾科夫鏈。 N的值不能太大,否則計算仍然太大。根據最大似然估計,語言模型的參數:

其中,C(w1w2…wi)表示w1w2…wi在訓練資料中出現的次數

平滑技術的引入

傳統的估計方法對於隨機變數£的N次獨立觀察的樣本容量N有如下要求:

N>>K

其中K為隨機變數能夠取到的值的個數。

實際語言模型中往往無法滿足這個要求。例如:詞性標註問題,共有140個可能的標記,考慮當前詞前後兩個詞的影響的三階模型。

K=140*140*140=2,744,000

給定一個10萬詞左右的人工標註訓練集,即

N=100,00,可見訓練資料顯得非常不足。

假設k泛指某一事件,N(k)表示事件k觀察到的頻數,極大似然法使用相對頻數作為對事件k的機率估計:

p(k)=N(k)/N

在語言模型中,訓練語料中大量的事件N(k)=0,這顯然沒有反映真實情況。我們把這個問題稱為資料稀疏問題。這種零值的機率估計會導致語言模型演算法的失敗,例如:機率值作為乘數會使結果為0,而且不能做log運算。 計數等價類別
根據對稱性原理,事件除了出現次數之外不應具有細節特徵,即所有具有相同計數r=N(k)的事件k(事件出現的次數稱為事件的計數)應當具有相同的機率估計值,這些計數相同的事件稱為計數等價,將它們組成的一個等價類別記為計數等價類別Gr。對於計數為r的計數等價類別,定義nr為等價類別中成員的個數,pr為等價類別中事件的機率,R是最大可能出現的計數次數,則
交叉檢驗
交叉檢驗就是把訓練樣本分為m份,其中一份作為保留部分,其餘m-1份作為訓練部分。訓練部分作為訓練集估計機率pr,保留部分作為測試集進行測試。我們使用Cr表示保留部分中計數為r的計數等價類別的觀察個數。對於保留部分使用最大似然法對進行機率pr進行估計,即使對數似然函數最大化:
使用拉格朗日乘子解決約束條件下的最大值問題,即:對pr求偏導,得到交叉檢驗估計:如果測試部分也作為保留部分的話,就是典型的極大似然估計:
留一估計
留一方法是交叉檢驗方法的擴充,基本思想是將給定N個樣本分為N-1個樣本作為訓練部分,另外一個樣本作為保留部分。這個過程持續N次,使每個樣本都被用作過保留樣本。優點:充分利用了給定樣本,對於N中的每個觀察,留一法都類比了一遍沒有被觀察到的情形。對於留一方法,pr的極大似然估計為:
Turing-Good公式
因為nRpR與1相比一般可以忽略,留一估計公式可以近似為:留一估計可以利用計數r=1的事件來類比未現事件,對於未現事件有如下估計:

這個公式就是著名的Turing-Good公式。

空等價類別

留一估計中要求麼個nr均不為0,在實際問題中當r=5時,這個要求通常都不能滿足,即計數等價類別G1,…,GR中存在空的等價類別。這時按照出現次數進行排序:對應的出現r(l)次的事件的個數記為nr(l),在進行留一估計時,使用下一個非空的等價類別Gr(l+1)代替可能為空白的等價類別Gr(l)+1,留一估計公式變為:

式中對空的等價類別沒有估計機率,因為空白等價類別並沒有對應任何有效事件。 Turing-Good估計的優缺點和適用範圍缺點:( 1 )無法保證機率估計的“有序性”,即出現次數多的事件的機率大於出現次數少的事件的機率。(2)pr與r/N不能很好地近似,好的估計應當保證pr<=r/N。優點:其它平滑技術的基礎。適用範圍:對0<r<6的小計數事件進行估計。 約束留一估計單調性約束:pr-1<=pr;折扣約束:p<=r/N。約束留一估計:讓計數估計r*=pr•N處於距其最近的絕對頻數之間:
在這個約束下,單調性約束自然滿足。計算方法:計算m時檢查每個pr是否滿足約束,不然就用約束的上下界進行裁剪,然後重新計算m,一直迭代下去直到所有pr滿足約束。 折扣模型Katz指出Turing-Good公式實質是對模型中觀察到的事件進行折扣,將折扣得來的機率攤到所n0個未現事件中。在這個思想的指導下,估計公式可以下成如下形式:其中,dr是對計數為r的事件的計數的一個折扣函數。 絕對摺扣模型若折扣函數定義為:dr=b,其中b為一個大於0的常數。那麼未現事件的總機率為:對應絕對摺扣模型的估計公式為: 線性折扣模型若折扣函數定義為:dr=a·r,其中a為一個大於0的常數。那麼未現事件的總機率為:對應線性折扣模型的估計公式為:若a=n1/N,則n0p0=n1/N,與Turing-Good估計相同。
刪除插值法(Deleted
Interpolation)
其基本思想是,由於N-Gram比N+1-Gram出現的可能性大的多,所以使用N-Gram估計N+1-Gram的機率,例如trigram的計算公式如下:

其中,

參數l的確定:將訓練資料分為兩部分,一部分用於估計f(wi| w1w2…wi-1),一部分用於計算參數l,求使語言模型的困惑度最小的l。

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.