2013-05-05 72 views
12

你好的人我執行一個項目Stupid Backoff(第2頁,方程5)平滑技術我的工作,我必須就其執行的問題。這是NLP中使用的平滑算法,Good-Turing是我猜最熟悉的類似算法。愚蠢的退避實施澄清

算法的簡要描述: 當試圖找到這個詞的出現在一個句子中它會先看看上下文的單詞的n元水平,如果沒有正克的概率大小將遞歸到(n-1)圖並將其分數乘以0.4。遞歸在unigrams處停止。

所以如果我想在「陽光燦爛的日子」中找到「日」的概率,它首先會查看語料庫中是否存在三元組「陽光燦爛的日子」,如果不是這樣嘗試用兩字「陽光燦爛的日子」一樣,最終它只是得到「天」是由卵巢大小劃分的頻率(在訓練數據字的總數)。

我的問題是:我每一次我減少正克的大小時乘以0.4的分數?

所以,如果我們不能夠找到一個三克或每克最終比分將是上面的例子:

0.4 * 0.4 *頻率(天)/ corpus_size?

還是我只是在最後一級倍增曾經那麼不管我有多少回退,使我剛乘最後得分0.4?

+1

是的,你每次乘 – 2013-05-05 15:50:39

回答

10

基本上我讀式5,你在你的數學描述以上。

所以對於沒有觀察到實例「陽光燦爛的日子」,你會計算S(「天」 |「一個陽光明媚的」)。沒有找到卦「陽光燦爛的日子」,你會採取在等式5的情況下兩個,估計S(「天」 |「一個陽光明媚」)作爲阿爾法·S(「天時」 |「陽光燦爛」)。

如果沒有記錄「陽光燦爛的日子」,你會將S(「day」|「sunny」)近似爲alpha * S(「day」),這是終端情況f(「day」)/N(觀察到的unigrams的數量)。

通過設置阿爾法以0.4你得到你上面寫了什麼。

希望這會有所幫助。

-bms20

0

是的,你需要通過每次0.4乘你轉移到較低的n-gram模型,因爲沒有找到搜索短語。

如對於式暗示0.4由「笨退避」乘以每次得分。