在n-gram语言模型中,一些词语的组合没有在语料中出现过,所以其统计概率会为0,但是这是不合理的。所以需要使用平滑方式调整概率值。
平滑的基本思想是降低高概率值,提高低概率值,使用"劫富济贫"思想,消除0概率,改进模型的整体准确率。
Add K法
- 加1法
假设使用2元文法,表示
的统计频数,
表示
的频数。
是词表大小。
使用加1法就是对每个频数上加1,这样就不会有0概率的出现。
加1法又称拉普拉斯平滑 - 加k法
研究证明,add K法解决0概率是一种极其糟糕的方式。
good-turing
good-Turing是许多平滑技术的核心,其基本思路是对于任何一个出现次的
元语法,都假设它出现了
次,这里
。
其中,是恰好出现r次的n元语法数目。
所以出现次数为的概率变为了
,其中
。
重点在这里
也就是说,等于这个分布中最初的计数。所以样本中所有事件的概率之和为
所以可以将的概率分配给出现次数为0的文法的概率。
good-Turing没能能将高阶模型与低阶模型结合起来,而高低阶模型的结合通常可以获得较号的平滑效果。
Interpolation(插值)
插值的主要思想是将不同的语言模型结合起来。
下图是插值模型在二元文法上的运用
是超参数
Backoff(回退)
回退思想很简单,如果没有tri-gram,就用bi-gram,如果没有bi-gram,就用uni-gram。
Katz smoothing
当事件正在样本种出现的频词大于某一数值时,运用极大似然估计方法,通过减值来估计其概率值;而当事件的频词小于
时,使用低阶的语法模型作为代替高阶语法模型的后备,但这种替代受归一化因子的约束。