学习笔记-n-gram中的平滑方法

在n-gram语言模型中,一些词语的组合没有在语料中出现过,所以其统计概率会为0,但是这是不合理的。所以需要使用平滑方式调整概率值。
平滑的基本思想是降低高概率值,提高低概率值,使用"劫富济贫"思想,消除0概率,改进模型的整体准确率。

Add K法

  1. 加1法
    假设使用2元文法,表示的统计频数,表示的频数。是词表大小。
    使用加1法就是对每个频数上加1,这样就不会有0概率的出现。

    加1法又称拉普拉斯平滑
  2. 加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
当事件正在样本种出现的频词大于某一数值时,运用极大似然估计方法,通过减值来估计其概率值;而当事件的频词小于时,使用低阶的语法模型作为代替高阶语法模型的后备,但这种替代受归一化因子的约束。

各种平滑方式

参考文献

  1. 宗成庆 统计自然语言处理
  2. https://blog.csdn.net/LZH_12345/article/details/82990101
  3. http://www.shuang0420.com/2017/03/24/NLP%20%E7%AC%94%E8%AE%B0%20-%20%E5%B9%B3%E6%BB%91%E6%96%B9%E6%B3%95(Smoothing)%E5%B0%8F%E7%BB%93/

你可能感兴趣的:(学习笔记-n-gram中的平滑方法)