当使用n-gram模型对测试语料中的句子进行评估时,如果句子中包含在训练集中未出现的n元语法,则计算出来句子出现的概率为0。例如上一篇博客语言模型和n元语法中的例子,此时用该模型来计算下面句子的概率:
因此,必须分配给所有可能出现的字符串一个非零的概率值来避免这种错误的发生。 平滑技术(smoothing)就是用来解决此类问题,基本思想是“劫富济贫",即提高低概率,降低高概率。常见的有加1法(additive smoothing)、减值法/折扣法(discounting)和插值法。
这是最简单直观的一种平滑算法,假设每个n元语法出现的次数比实际出现(训练集)的次数多一次。如下面式子,