在计算语言模型的过程中,对于句子中的每一个字符或者词都需要一个非零的概率值,因为一旦存在一个概率为 0 的结果,那么整个计算公式的结果都为 0,这种问题我们叫做数据匮乏(稀疏),所以必须分配给所有可能出现的字符串一个非 0 的概率值来避免这种错误的发生。
举个例子,当我们需要计算一个 sentence 我 喜欢 看电影 的概率时:
P(我, 喜欢, 看电影) = P(我) * P(喜欢 | 我) * P(看电影 | 喜欢)
如果在语料库中 喜欢 的后面并没有出现过 看电影,也就意味着 P(看电影 | 喜欢) = 0,直接导致了 我 喜欢 看电影 的概率 为0。
平滑技术就是用来解决这类 0 概率的问题,为了产生更加准确的概率来调整最大似然估计的一种技术,平滑的处理思想是 “劫富济贫” ,即提高低概率,降低高概率。