NLP之平滑策略

平滑

須要平滑緣由有二:一,致使0機率,沒法計算困惑度;二,對於一些未見過的句子,機率爲0。it

training set:
denied the reports
Test set:
denied the offer
P(offer| denied the) = 0io

加1(拉普拉斯?) 平滑

Maximun Likelihood E stimates: P(Wi|Wi-1) = C(Wi-1, Wi) / C(Wi-1)擴展

加1: P(Wi|Wi-1) = C(Wi-1, Wi) +1 / C(Wi-1) + Vim

會形成特別大的變化,效果並非特別好,不適合用於N-grams.總結


Backoff: 若是沒有證據證實trigram效果好,用bigram,unigram

Interpolation: 混合unigram、bigram、trigram. ——效果好些

總結:

加1平滑 適用於文本分類;
Kneser-Ney (Interpolation擴展用的最廣;
對於很大的Web數據,用Backoff
數據

Good-Turing

Nc : 出現c次的個數 I-3 am-2 is-2 則:N2=2 N3=1
Good-Turing平滑:

Pgt(things with 0 frequency) = N1/N
C*= (c+1) Nc+1/ Nc
Pgt* = C*/N
但其實,很高的數,並不會直接這麼算

能夠和interpolation結合,加入unigram。

Kneser-Ney平滑:

更好的估計低機率的unigram。Good-Turing、Kneser-Ney、Witten-Bell 利用出現過一次的詞來估計不曾出現過的詞的機率,把機率「分」一些給不曾出現過的,原有的機率會下降。

相關文章
相關標籤/搜索