古德-圖靈估計可以解決n元語法模型(n-gram)中的數據的稀疏問題。主要的思想是把非零的n元語法的概率降低勻給一些低概率n元語法,以修改最大似然估計與真實概率之間的偏離。是實用比較多的平滑算法。
圖:從左到右的變化:把一部分看得見的事件的概率勻給未看見的事件
以統計詞典中的概率為例,來說明古德-圖鈴公式。
假定在語料庫中出現r次的詞有Nr個,特別的出現0次(未登錄詞)出現的次數為N0個。語料庫中詞語的個數為N,顯然
出現r次的詞在詞典中的相對頻度為r/N。如果不做任何優化處理,就依這個相對頻度作為這些詞的概率估計。
加入當r非常小時,這么統計可能不可靠,因此出現r次的那些詞在計算它們的概率時要使用一個更小一點的數,是dr,而不是r。古德-圖靈估計按照下面的公式計算dr:
dr=(r+1)* Nr+1/Nr
顯然
一般來說,出現一次的詞的數量比出現兩次的詞的數量多,出現兩次的詞的數量比出現三次的數量多。這叫做Zipf定律。下圖是一個小語料庫中,出現次數r和對應的數量Nr之間的關系。
這樣就給未登錄詞一個很小的非零值,從而解決了零概率問題。同時下調了出現頻率很低的詞的概率。在實際的自然語言處理中,一般對出現次數超過某個閾值的詞概率不下調;只對低於這個閾值的詞,概率下調;下調的頻率之和等於未登錄詞的概率。
對於二元組(wi-1,wi)的條件概率估計P(wi|wi-1)也可以做同樣的處理。因通過前一個詞wi-1預測后一個詞wi時,所有可能情況的條件總和應該為1,即
對於出現次數非常少的二元組(wi-1|wi),它們出現的次數需要按着古德-圖靈的方法打折扣,這樣意味着有一部分概率沒有分配出去,留給了未登錄的二元組(wi-1wi)。基於這種思想,估計二元模型概率公式如下:
其中T是一個閾值,一般在8-10左右,fgt表示經過古德-圖靈估計后的相對頻度。
部分摘自《數學之美》 吳軍