0
点赞
收藏
分享

微信扫一扫

4 NLP之数据平滑技术


文章目录

  • ​​1 最简单的平滑技术—Laplace法则​​
  • ​​2 Good-Turing估计​​
  • ​​3 绝对折扣(absolute discounting)​​
  • ​​4 线性折扣(linear discounting)​​
  • ​​5 Witten-Bell平滑算法​​
  • ​​6 扣留估计(Held-out Estimation)​​
  • ​​7 交叉校验(Cross Validation)​​
  • ​​8 线性插值(linear interpolation )​​
  • ​​9 Katz回退(back-off)算法​​

1 最简单的平滑技术—Laplace法则

4 NLP之数据平滑技术_自然语言处理


4 NLP之数据平滑技术_自然语言处理_02


4 NLP之数据平滑技术_数据平滑技术_03


4 NLP之数据平滑技术_NLP_04


(我并不清楚上面的【Laplace法则的一般形式】与【Lidstone法则】咋来的)

2 Good-Turing估计

基本思想:对于任何一个发生r次的事件(n元语法),都假设它发生r*次:

4 NLP之数据平滑技术_数据_05


nr:训练语料中发生r次的事件的数目。

4 NLP之数据平滑技术_插值_06


4 NLP之数据平滑技术_自然语言处理_07

4 NLP之数据平滑技术_插值_08

4 NLP之数据平滑技术_数据_09


4 NLP之数据平滑技术_NLP_10

事实上,并不是对所有计数r都使用上式计算。

4 NLP之数据平滑技术_自然语言处理_11

3 绝对折扣(absolute discounting)

4 NLP之数据平滑技术_NLP_12


4 NLP之数据平滑技术_插值_13


上面的图中,V=40(总共有40个词),N=50(训练实例的个数为50,016+110+26+35+42+51=50)

4 线性折扣(linear discounting)

4 NLP之数据平滑技术_NLP_14


4 NLP之数据平滑技术_插值_15


(我不太懂第三列似然估计是咋算的)

5 Witten-Bell平滑算法

基本思想:训练语料中未出现 → 第一次出现 → 用事物在训练语料中第一次出现的概率来替代未出现事物的概率(因为未出现的事物是新事物)

例子:

4 NLP之数据平滑技术_自然语言处理_16


4 NLP之数据平滑技术_插值_17


(上面我不太懂右面的分母为什么是N+T)

4 NLP之数据平滑技术_数据平滑技术_18

6 扣留估计(Held-out Estimation)

基本思想:使用一部分数据建立最初的模型,然后使用另一部分留存数据来精炼这个模型。

形式化描述:

4 NLP之数据平滑技术_插值_19

4 NLP之数据平滑技术_自然语言处理_20

上表中,最后一列,即r*列为:

4 NLP之数据平滑技术_插值_21

7 交叉校验(Cross Validation)

基本思想:训练数据的每一部分既作最初的训练数据,也作为留存数据。

【删除估计(deleted estimation)】

对两部分数据分别进行训练和平滑,然后根据nra相对于nrb的比率进行加权平均。样本数量越大,在其上统计出来的数据越可靠。

4 NLP之数据平滑技术_NLP_22


4 NLP之数据平滑技术_NLP_23


【删除插值(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)。

当没有足够的语料估计高阶模型的概率时,低阶模型往往可以提供有用的信息。

4 NLP之数据平滑技术_自然语言处理_24


下面是【删除插值的一般形式】:

4 NLP之数据平滑技术_自然语言处理_25


给定P( w…)的值,可以采用EM算法(用到的时候再去查)来训练λ的值。

4 NLP之数据平滑技术_数据_26


4 NLP之数据平滑技术_数据平滑技术_27


一般使用一些历史等价类来设置λ。

【删除插值的递归形式】

4 NLP之数据平滑技术_自然语言处理_28


4 NLP之数据平滑技术_插值_29

8 线性插值(linear interpolation )

线性插值模型的一般化形式:

4 NLP之数据平滑技术_数据平滑技术_30


(我不太确定上面的pi(w|h)是用上面提到的Pinterp吗?)

9 Katz回退(back-off)算法

二元语法模型的Katz回退算法:从非零计数中减去的计数量,根据低一阶的分布,分配给计数为零的bigram(2-gram)

4 NLP之数据平滑技术_自然语言处理_31

(我不太懂上面的p波浪号是什么含义???)

4 NLP之数据平滑技术_插值_32


(上图最后一列中的0.9咋来的???)

【Katz回退一般形式】

4 NLP之数据平滑技术_自然语言处理_33


【三元语法模型的Katz回退算法】

4 NLP之数据平滑技术_插值_34


【删除插值 vs. Katz回退】

4 NLP之数据平滑技术_数据平滑技术_35


相同之处:两者都使用低阶分布的信息来确定计数为0的n-gram的概率。

不同之处:1、删除插值:高阶计数和低阶计数可能同时起作用;2、Katz回退:只有高阶计数为0时才启用低阶计数。

END


举报

相关推荐

0 条评论