Good-Turing smoothing Good-Turing基本思想是:用观察计数较高的N元语法数重新估计概率量的大小,并把它指派给那些具有零计数或者较低计数的N元语法。 公式:
其中c为某个N-gram出现的频数, 为出现次数为c的N-Gram的词组的个数, 为Good-Turing平滑计数 例子:对于a = [A,A,A,B,B,C,D,E] sum(len(a)) = 7
thus
(注意在他们求概率的时候都需要除以N = 7) 然而这样会导致最高频率的结果最后的计数为0,解决方法如下
可以对于较低的计数使用 ,而对于较高的计数直接使用
也可以在较大的计数的时候使用 ,其中a,b为参数,b<-1
最终会出现概率之和不为0的情况,这时候要进行归一化,固定没有见过的结果的概率,将已经见过的概率之和归一化使得共同的概率结果为1 归一化例子可见于L9-NLP-LangModels.pdf 第64页
Absolute discounting 一般的interpolation是利用高阶的模型的 乘以一个 ,而此处是从每个非零计数中减掉一个固定的 ,一般取 在bigram中,公式为 其中为 插 值 权 重 系 数 于是完整的公式就是 $$p_{abs}(w_i|w^i_{i-n+1}) = \frac{max{c(w^i_{i-n+1})-\delta,0}}{\sum_{w_i}c(w^i_{i-n+1})}+(1-\lambda_{w^{i-1}{i-n+1}}p {ab}(w_i|w^{i-1}{i-n+2}))为 了 使 得 结 果 的 总 和 为 1 - \lambda _ { w _ { i - n + 1 } } ^ { i - 1 } = \frac { \delta } { \sum _ { w _ { i } } c ( w _ { i - n + 1 } ^ { i } ) } N _ { 1 + } ( w _ { i - n + 1 } ^ { i - 1 } \mathbf { \bullet } )其 中 N _ { 1 + } \left( w _ { i - n + 1 } ^ { i - 1 } \bullet \right) = \left| \left{ w _ { i } : c \left( w _ { i - n + 1 } ^ { i - 1 } w _ { i } \right) > 0 \right} \right|$$
Kneser-Ney smoothing bigram下的公式: 其中Missing or unrecognized delimiter for \left p _ { K N } \left( w _ { i } \right) = \frac { \left| \left{ w ^ { \prime } : 0 < c \left( w ^ { \prime } , w _ { i } \right) \right} \right| } { \left| \left{ \left( w ^ { \prime } , w ^ { \prime \prime } \right) : 0 < c \left( w ^ { \prime } , w ^ { \prime \prime } \right) \right} \right| } 为的是求解在一个不熟悉的上下文中看见单词 的可能性,这使用 在出现在所有单词的次数和除以所有bigram的和来衡量 减掉一个固定的 ,一般取 是用来平衡使得条件概率 的总和为1的系数 得出满足条件的 结果为Missing or unrecognized delimiter for \left \lambda _ { w _ { i - 1 } } = \frac { \delta } { \sum _ { w ^ { \prime } } c \left( w _ { i - 1 } , w ^ { \prime } \right) } \left| \left{ w ^ { \prime } : 0 < c \left( w _ { i - 1 } , w ^ { \prime } \right) \right} \right| 可以推广到n-gramMissing or unrecognized delimiter for \left p _ { K N } \left( w _ { i } | w _ { i - n + 1 } ^ { i - 1 } \right) = \frac { \max \left( c \left( w _ { i - n + 1 } ^ { i - 1 } , w _ { i } \right) - \delta , 0 \right) } { \sum _ { w ^ { \prime } } c \left( w _ { i - n + 1 } ^ { i - 1 } , w ^ { \prime } \right) } + \delta \frac { \left| \left{ w ^ { \prime } : 0 < c \left( w _ { i - n + 1 } ^ { i - 1 } , w ^ { \prime } \right) \right} \right| } { \sum _ { w _ { i } } c \left( w _ { i - n + 1 } ^ { i } \right) } p _ { K N } \left( w _ { i } | w _ { i - n + 2 } ^ { i - 1 } \right)