《数学之美》——第三章 个人笔记

   

第三章    统计语言模型

 

1 用数学的方法描述语言规律

普遍描述:假定S表示某一个有意义的句子,由一连串特定顺序排列的词w1,w2,...,wn组成,(这里应该是特征列表)这里n是句子的长度。现在,我们想知道S在文本中出现的可能性,也就是数学熵上所说的S的概率P(S)。

马尔可夫假设后,

2 延伸阅读:统计语言模型的工程诀窍

2.1    高阶语言模型

当前词wi的概率值取决于前面N-1个词,上面的假设被称为N-1阶马尔可夫假设,对应的语言模型称为N元模型。N=2就是前面的二元模型。N=1的一元模型实际上是一个上下文无关的模型,N=3在实际中应用最多。

N为什么一般取值都很小?

①首先,N元模型的大小(空间复杂度)几乎是N的指数函数,即0(丨V丨**N),这里丨V丨是一种语言词典的词汇量,一般在几万到几十万个。

②而使用N元模型的速度(时间复杂度)也几乎是一个指数函数,0(丨V丨**N-1)。因此,N不能很大。当N从1到2,再从2到3,效果显著;从3到4,提升就不是很显著了,资源的耗费缺相反。Google的罗塞塔是4元。

2.2    模型的训练、零概率问题和平滑问题

在数理统计中,我们之所以敢用对采样数据进行观察的结果来预测概率,是因为有大数定理,要求有足够的观测值(增加数据量真的是一个真理)。

针对零概率:

假定r比较小时,统计就不可靠,因此在计算那些出现r次的词的概率时,要实用一个更小一点的次数,是dr,

dr = (r+1)* Nr+1/Nr  显然 ∑dr*Nr = N.

文中有个Zipf定律(Zipf's Law):出现一次的词的数量比出现两次的多,出现两次的比出现三次的多。

出现r次的词的数量Nr和r的关系:

这里就解决了未出现的词,给其赋了一个很小的非零值。

文章中还有二元组和三元组的模型概率公式。卡茨退避法(Katz backoff)

还有一个叫删除差值的方法:用低阶语言模型和高阶模型进行线性插值来达到平滑的目的。

公式如下:三个λ均为正数且加和为1。

 

2.3    语料的选取问题

训练数据通常越多越好,数据的预处理很重要。

训练语料和模型应用的领域要切合,这样模型的效果才能体现。

猜你喜欢

转载自www.cnblogs.com/NEWzyz/p/8933003.html