一荣月、引言
在NLP-統(tǒng)計(jì)語(yǔ)言模型中簡(jiǎn)要介紹了統(tǒng)計(jì)語(yǔ)言模型的原理和實(shí)現(xiàn)方法,以bigram為例袭蝗,計(jì)算了
的概率唤殴,這是比較理想的情況,而現(xiàn)實(shí)與理想的差距是我們預(yù)測(cè)了一萬(wàn)種可能到腥,卻還有一萬(wàn)零一種可能的存在朵逝。而我們企圖用已經(jīng)存在的語(yǔ)料數(shù)據(jù)來(lái)覆蓋未來(lái)有可能出現(xiàn)的測(cè)試數(shù)據(jù),未免有些天真左电。
還是以NLP-統(tǒng)計(jì)語(yǔ)言模型中的假設(shè)語(yǔ)料來(lái)舉例
- 我 喜歡 大自然
- 自然語(yǔ)言 是 如何 形成 的 呢
- 如何 處理 數(shù)據(jù) 是 很 重要 的
- 越來(lái)越多 的 人 喜歡 自然語(yǔ)言 處理
而我需要計(jì)算句子的概率時(shí):
在語(yǔ)料庫(kù)中喜歡的后面并沒(méi)有出現(xiàn)過(guò)看電影廉侧,也就意味著页响,直接導(dǎo)致了
的可能性為0,這顯然是不科學(xué)的段誊,所以就需要一些平滑的處理方法闰蚕,用以過(guò)渡上述情況。
二连舍、add-k smoothing
add-k smoothing 是一種比較簡(jiǎn)單的方式没陡,為了防止出現(xiàn)概率為0的情況,對(duì)求概率的公式做了一點(diǎn)手腳索赏,如下:
為什么是呢,因?yàn)橐_保概率的總和為1潜腻,具體過(guò)程此處不做推導(dǎo)埃儿。
add-k smoothing 是一種行之有效的方式,但其中也隱含著一種價(jià)值觀:
沒(méi)有出現(xiàn)的詞未來(lái)出現(xiàn)的可能性相等融涣,對(duì)于所有概率為0的情況童番,都是在分子和分母上做了同樣的操作,那么就導(dǎo)致了這些情況的概率都一致威鹿,是否還有更加“公平”的一些方式呢剃斧?有,來(lái)看看interpolation smoothing忽你。
三幼东、interpolation smoothing
interpolation smoothing的思想在于求上不得而求其中,其中不足余下來(lái)補(bǔ)科雳,為了更好的說(shuō)明interpolation 以trigram為例根蟹,假設(shè)我們要求,
會(huì)等于0炸渡,那么求
娜亿,再不濟(jì)還可以求
,綜合上面三種情況蚌堵,給每種情況分配不同的權(quán)重得:
此方法綜合unigram买决、bigram和trigram甚至可以更多,這樣就確保了語(yǔ)料庫(kù)未出現(xiàn)詞組合的概率的不一致吼畏,相對(duì)來(lái)說(shuō)督赤,公平了些。
四泻蚊、good-turing smoothing
good-turing的核心思想在于躲舌,對(duì)于沒(méi)有出現(xiàn)的過(guò)的事件,不能認(rèn)為該事件出現(xiàn)的概率為0性雄,所以我們從已經(jīng)發(fā)生的事件概率總量1中分配一個(gè)很小的比例給該事件没卸。
這是一種很有前瞻性的格局羹奉,但是把概率分出去一分部以后,那未出現(xiàn)的事件+已經(jīng)出現(xiàn)的事件的概率總和就會(huì)大于1约计,所以就需要把已經(jīng)發(fā)生的事件的概率稍微調(diào)小一點(diǎn)诀拭,確保概率的總合為1,具體怎么調(diào)整呢煤蚌,先擺出公式再來(lái)解釋:
為了說(shuō)明公式耕挨,先來(lái)認(rèn)識(shí)一個(gè)概念:
假設(shè)語(yǔ)料庫(kù)的大小為N,對(duì)于沒(méi)有出現(xiàn)過(guò)的詞尉桩,概率原本為0筒占,那么分一個(gè)語(yǔ)料庫(kù)中低頻事件的概率給它,比如蜘犁,把語(yǔ)料庫(kù)中只出現(xiàn)只出現(xiàn)過(guò)一次的事件的概率給它:
對(duì)于已經(jīng)出現(xiàn)過(guò)的詞翰苫,需要調(diào)整概率
至于公式為何是這樣,吳軍老師在《數(shù)學(xué)之美》中講解較好沽瘦,感興趣的可以前去參考革骨,此處不做過(guò)多解釋,本文著眼于如何利用成果解決問(wèn)題析恋。
看了公式可能有點(diǎn)蒙圈,還是根據(jù)語(yǔ)料庫(kù)來(lái)解釋一下
設(shè)語(yǔ)料來(lái)舉例
- 自然語(yǔ)言 是 如何 形成 的 呢
- 如何 處理 自然語(yǔ)言 是 很 重要 的
- 是 又 如何
假設(shè)現(xiàn)在要根據(jù)語(yǔ)料庫(kù)計(jì)算計(jì)算的概率盛卡,而計(jì)算剛好沒(méi)有出現(xiàn)過(guò)助隧,那么
此時(shí),原先出現(xiàn)過(guò)的詞的概率需調(diào)整
突然發(fā)現(xiàn)了神奇的一幕滑沧,調(diào)整以后概率還變大了并村,這是因?yàn)榕e例的語(yǔ)料庫(kù)太小,很多地方不合理滓技,在較大的語(yǔ)料庫(kù)中是不會(huì)出現(xiàn)這種情況的哩牍,拿漢字來(lái)說(shuō),常用的漢字的比例在總漢字中的比例是很小的令漂,也就是c越大膝昆,越小,那么一般情況下
(具體證明參考齊夫定律)叠必,即概率調(diào)整后是減少的荚孵。
五、總結(jié)
本文簡(jiǎn)單介紹一些在統(tǒng)計(jì)語(yǔ)言模型中需要的一些平滑過(guò)渡的方法收叶,總體而言就是考慮未登錄詞的情況蜓萄,方法并非絕對(duì)绕德,如果讀者還有更多的方法歡迎介紹耻蛇。