Jelinek-Merer
Jelinek-Merer平滑方法的基本思想是利用低元n-gram模型对高元n-gram模型进行线性插值。
P
M
L
(
w
i
∣
w
i
−
1
)
=
c
(
w
i
,
w
i
−
1
)
c
(
w
i
−
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 ( w i , w i − 1 ) c(w_i,w_{i-1}) c(wi,wi−1)是指词i和词i-1共同出现的次数。
P
M
L
(
w
i
)
=
c
(
w
i
)
N
P_{ML}(w_i)=\dfrac{c(w_i)}{N}
PML(wi)=Nc(wi)
N: term总数
Absolute discounting 绝对值减法
也是一种插值方式。通过从每个非零计数中减去一个固定的值D来建立高阶分布。
D应该是在0到1之间。D的估计值可以是:
D
=
n
1
n
1
+
2
n
2
D=\dfrac{n_1}{n_1+2n_2}
D=n1+2n2n1
n
1
n_1
n1是训练语料库中出现了1次的term总数,在n元语法模型中。
n
2
n_2
n2是训练语料库中出现了2次的term总数,在n元语法模型中。
这部分的含义是:在n元语法模型中,和
w
i
−
1
w_{i-1}
wi−1出现的不同元素个数。
∑
w
i
c
(
w
i
−
n
+
1
i
)
\sum_{w_i}c(w_{i-n+1}^i)
∑wic(wi−n+1i)的含义是与
w
i
w_i
wi一起出现次数为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