文章目录
1 最简单的平滑技术—Laplace法则
(我并不清楚上面的【Laplace法则的一般形式】与【Lidstone法则】咋来的)
2 Good-Turing估计
基本思想:对于任何一个发生r次的事件(n元语法),都假设它发生r*次:
nr:训练语料中发生r次的事件的数目。
事实上,并不是对所有计数r都使用上式计算。
3 绝对折扣(absolute discounting)
上面的图中,V=40(总共有40个词),N=50(训练实例的个数为50,016+110+26+35+42+51=50)
4 线性折扣(linear discounting)
(我不太懂第三列似然估计是咋算的)
5 Witten-Bell平滑算法
基本思想:训练语料中未出现 → 第一次出现 → 用事物在训练语料中第一次出现的概率来替代未出现事物的概率(因为未出现的事物是新事物)
例子:
(上面我不太懂右面的分母为什么是N+T)
6 扣留估计(Held-out Estimation)
基本思想:使用一部分数据建立最初的模型,然后使用另一部分留存数据来精炼这个模型。
形式化描述:
上表中,最后一列,即r*列为:
7 交叉校验(Cross Validation)
基本思想:训练数据的每一部分既作最初的训练数据,也作为留存数据。
【删除估计(deleted estimation)】
对两部分数据分别进行训练和平滑,然后根据nra相对于nrb的比率进行加权平均。样本数量越大,在其上统计出来的数据越可靠。
【删除插值(deleted interpolation)】
(使用线性插值的手段,把不同阶的n元语法结合起来)
假定要在一批训练语料上构建二元语法模型,其中:
- C(send the)=0
- C(send thou)=0
四种方法:Lap、GT、abs、WB: p(the|send)=p(thou|send),因为没有其他信息的时候,send the 和 send thou均出现了0次。
但是,直觉上应该有,这是常识: p(the|send)>p(thou|send)
因为pML(the)>pML(thou)。
当没有足够的语料估计高阶模型的概率时,低阶模型往往可以提供有用的信息。
下面是【删除插值的一般形式】:
给定P( w…)的值,可以采用EM算法(用到的时候再去查)来训练λ的值。
一般使用一些历史等价类来设置λ。
【删除插值的递归形式】
8 线性插值(linear interpolation )
线性插值模型的一般化形式:
(我不太确定上面的pi(w|h)是用上面提到的Pinterp吗?)
9 Katz回退(back-off)算法
二元语法模型的Katz回退算法:从非零计数中减去的计数量,根据低一阶的分布,分配给计数为零的bigram(2-gram)
(我不太懂上面的p波浪号是什么含义???)
(上图最后一列中的0.9咋来的???)
【Katz回退一般形式】
【三元语法模型的Katz回退算法】
【删除插值 vs. Katz回退】
相同之处:两者都使用低阶分布的信息来确定计数为0的n-gram的概率。
不同之处:1、删除插值:高阶计数和低阶计数可能同时起作用;2、Katz回退:只有高阶计数为0时才启用低阶计数。
END