自然语言处理基础(4)--数据平滑技术
n元语法模型中,在统计结果中出现了零概率事件反映语言的规律性,即这种现象本来就不该出现,但更多的时候是由于语言模型的训练文本T的规模以及其分布存在着一定的局限性和片面性。这就是所谓的“数据稀疏”问题。
所谓“数据平滑技术”,是指为了产生更准确的概率来调整最大似然估计的技术,基本思想就是提高低概率(如零概率),降低低概率,尽量使概率分布趋于平均。
1.Laplace法则
每个实例(分子)的出现次数都加1(或者其他数值),从而所有实例出现次数都不会为0,,为了保证所有实例的概率总和为1,将分母增加实例的种类数;即:
2.Good-Turing估计
基本思想是:对于任何一个发生r次的n-gram,都假设它发生r*次,即:
3.绝对折扣和线性折扣
在绝对折扣找你哥,所有的非零MLE概率用一个小的常数折扣,由此得到的概率被均匀分配到未知事件上。
与绝对折扣不同,线性折扣中,所有的非零MLE频率的折扣量与其自身的频率值成线性关系
4.Witten-Bell平滑算法
这个算法的思想是:如果测试过程中的一个实例在训练语料中未出现,那么,它就是一个新事物,也就是说,这是它第一次出现,可以用在训练语料中看到新实例的概率来代替未出现实例的概率。
5.扣留估计算法
这个算法的思想是:把训练数据分成两部分,一部分建立最初的模型,然后另一部分来精炼这个模型,具体公式见《自然语言处理基本理论和方法》
6.交叉校验算法
扣留估计算法有个缺点,就是最初的训练数据比较少的时候,得到的概率估计是不可靠的
交叉校验的思想在于,训练数据的每一部分既作为最初训练数据,又作为留存数据,对这两部分数据分别训练和平滑,然后根据n0相对于n1的比率进行加权,具体公式见《自然语言处理基本理论和方法》
7.删除插值法和Katz回退算法
如果两对词同时出现0次:C(send the) = C(send thou) = 0,按照之前任何一个平滑方法都得到两个概率相等,但是明显前者要大于后者的。
删除插值法是这样做的
可以说,删除插值和Katz回退法都使用低阶分布的信息来确定计数为0的n元语法的概率;不同的是:在Katz回退中,只有高阶计数为0时才启用低阶计数,而删除插值中,高阶计数和低阶计数同时起作用。