NLP之平滑策略

平滑

需要平滑原因有二:一,导致0概率,无法计算困惑度;二,对于一些未见过的句子,概率为0。

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

加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) + V

会造成特别大的变化,效果并不是特别好,不适合用于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 利用出现过一次的词来估计未曾出现过的词的概率,把概率“分”一些给未曾出现过的,原有的概率会降低。

posted @ 2017-11-08 10:09  Fall12  阅读(1830)  评论(0编辑  收藏  举报