Jelinek-Merer
Jelinek-Merer平滑方法的基本思想是利用低元n-gram模型对高元n-gram模型进行线性插值。
PML(wi∣wi−1)=c(wi,wi−1)c(wi−1)P_{ML}(w_i|w_{i-1})=\dfrac{c(w_i,w_{i-1})}{c(w_{i-1})}PML(wi∣wi−1)=c(wi−1)c(wi,wi−1)
c(wi,wi−1)c(w_i,w_{i-1})c(wi,wi−1)是指词i和词i-1共同出现的次数。
PML(wi)=c(wi)NP_{ML}(w_i)=\dfrac{c(w_i)}{N}PML(wi)=Nc(wi)
N: term总数
Absolute discounting 绝对值减法
也是一种插值方式。通过从每个非零计数中减去一个固定的值D来建立高阶分布。
D应该是在0到1之间。D的估计值可以是:D=n1n1+2n2D=\dfrac{n_1}{n_1+2n_2}D=n1+2n2n1
n1n_1n1是训练语料库中出现了1次的term总数,在n元语法模型中。
n2n_2n2是训练语料库中出现了2次的term总数,在n元语法模型中。
这部分的含义是:在n元语法模型中,和wi−1w_{i-1}wi−1出现的不同元素个数。
∑wic(wi−n+1i)\sum_{w_i}c(w_{i-n+1}^i)∑wic(wi−n+1i)的含义是与wiw_iwi一起出现次数为0的不同元素的个数。
心存疑问,这里不太确定。
对于一元模型,Panyunsheng8讲解的还是很清楚的。对于二元模型存在疑问。
参考资料:
MacCartney, B. (2005). Nlp lunch tutorial: Smoothing.
https://www.jianshu.com/p/a28acdc32b56
https://github.com/PangYunsheng8/Smoothing-Techniques-in-NLP/blob/master/smoothing.ipynb