N元语法模型的数据稀疏问题解决方法之一:Good-Turing平滑
生活随笔
收集整理的這篇文章主要介紹了
N元语法模型的数据稀疏问题解决方法之一:Good-Turing平滑
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載自時空霹靂
在統計語言模型章節中,我們談到了N元語法模型不可避免的一個問題,就是數據稀疏,其原因是大規模語料統計與有限語料的矛盾。根據齊普夫(Zipf)法則,我們能夠推測知零概率問題不可避免。數據稀疏問題的解決辦法就是進行平滑處理。平滑處理的算法有很多,本文將介紹眾多算法中的佼佼者:古德-圖靈(Good-Turing)平滑算法。??????? 古德-圖靈(Good-Turing)估計法是很多平滑技術的核心,于1953年有古德(I.J.Good)引用圖靈(Turing)的方法而提出來的。其基本思想是:利用頻率的類別信息來平滑頻率。對于任何發生r次數的n元語法,都假設它發生了r*次。
??????? 我們注意到:
??????? 也就是說,N等于這個分布中最初的統計。那樣,樣本中所有事件的概率之和為
??????? 因此,可以這樣說我們把你n1/N的概率剩量分配給未見事件。為了更好地理解古德-圖靈(Good-Turing)估計法,以一個例子來講解。
? ? ? ? 訓練集合:T={<s>what is it what is small?}|T|=8
? ? ? ? 驗證集合:V={what is it small ? <s> flying birds are a bird.}, |V|=12
? ? ? ? 在訓練集合上,我們得到:p(<s>)=p(it)=p(small)=p(?)=0.125, p(what)=p(is)=0.25,其他為0
??????? 如果不經過平滑處理,則驗證集上兩句子的概率分別為:p(what is it?)=(0.25*2)*(0.125*2)≈0.001? p(it is flying.)=0.125*0.25*(0*2)=0
??????? 現在用古德-圖靈算法進行平滑處理,如下:
??????? 首先計算,各發生r次N元組類別的數目,依次為 N(0)=6,N(1)=4,N(2)=2,N(i)=0 ,i>2:
??????? 其次,重新估計各概率值。
??????? 對于發生0次的事件概率:Pr(.)=p(flying)=p(birds)=p(are)=p(bird)=p(a)= (0+1)*N(0+1)/(8*N(0))=1*4/(8*6)≈0.083
??????? 對于發生1次的時間概率:Pr(it)=p(<s>)=p(small)=p(?)=(1+1)*N(1+1)/(8*N(1))=2*2 /(8*4)=0.125
??????? 對于發生兩次的時間概率:Pr(what)=Pr(is)=(2+1)*N(2+1)/(8*N(2))=3*0/(8*2)=0: 保持原值0.25
??????? 歸一化處理,6*P0+4*P1+2*P2=1.5。.
??????? 所以,歸一化處理后,p’(it)=p’(<s>)=p’ (small)=p’(?)= 0.125/1.5 ≈0.08,? p’(what)=p’(is)= 0.25/1.5 ≈0.17, ?
??????? p’(.)=p’(birds)=p’(are)=p’(bird)=p’(a) = 0.083/1.5? ≈0.06
??????? 因此:p’(what is it?)=(0175*2)*(0.08*2)≈0.0002?? p’(it is flying.) ≈ 0.08*0.17*(0.06*2)≈0.00004
總結
以上是生活随笔為你收集整理的N元语法模型的数据稀疏问题解决方法之一:Good-Turing平滑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用GPUImage实现视频滤镜
- 下一篇: 优先队列----堆