学习笔记1 统计语言模型
程序员文章站
2022-07-11 09:46:35
...
学习笔记1
参考书目:数学之美 吴军 著 第二版
统计语言模型
统计语言模型是自然语言处理的基础,被广泛应用于机器翻译、语音识别、印刷体或手写体识别、拼音纠错、汉字输入和文献查询等。
1.模型原型
语言的数学本质就是说话者将一串信息在头脑中做了一次编码,编码的结果是一串文字,而如果接受的人懂得这门语言,他就可以用这门语言的解码方式获得说话人想表达的信息。那么不免想到将编码规则教给计算机,这就是基于规则的自然语言处理。但是事实证明基于规则行不通,因为巨大的文法规则和语言的歧义性难以解决。所以出现了基于统计的自然语言处理(NLP)。基于统计的NLP的核心模型是通信系统加隐含马尔可夫模型。
看一个句子是否合理,就看它的合理性有多少,就是它出现的概率大小:
假定句子 S(W1,W2,......,Wn) Wi 代表词
其概率为 P(S) = P(W1,W2,.......,Wn)
根据条件概率公式,每个词出现的概率等于之前每个词出现的条件概率相乘,于是
P(W1,W2,......,Wn) = P(W1) · P(W1 | W2) · P(W3 | W1,W2) ··· P(Wn | W1,W2,......Wn-1)
但是这样计算量太大,句子越长越麻烦,因此Andrey Markov 提出了一种偷懒的方法,即马尔可夫假设:假设任意一个词出现的概率只与它前面的一个词有关。
因此 P(S) = P(W1) · P(W1 | W2) · P(W3 | W2) ··· P(Wn | Wn-1)
这就是二元模型(Bigram Model), 相应的,高阶语言模型即任意一个词 Wi 出现的概率只与它前面的 i-1 个词有关。元数越高越准确,但相应越复杂,越难实现,我们一般使用三元模型就够了。
那么如何计算这个概率呢,这就是统计语言模型的核心统计了,实际上是做了近似处理,即在统计量足够大的情况下:
因为 P(Wi | Wi-1) = P(Wi-1,Wi) / P(Wi-1) = 联合概率 / 边缘概率
=两个词一起出现的次数 / 单个词出现的次数
2.零概率问题和平滑的方法
统计中可能出现没有统计到某个词(边缘概率为0)或者某两个词在一起的情况只出现了一次(联合概率为1)的情况,就会导致十分绝对的概率出现,模型就不可靠。直接的解决方法是增加统计的数据量,但是数据不够时。需要使用一个重新计算概率的公式,就是古德-图灵估计(Good-Turing Estimate)
古德-图灵估计(Good-Turing Estimate)
其原理是:对于没有出现的概率,我们从概率总量中分配一小部分给它们,看见的事件的概率总量就小于1,这样就不会出现概率为1和0的情况了。对应的语言模型也要做一些调整,最早由卡兹(S.M.Kate)提出,称为卡兹退避法(Kate backoff)。
上一篇: 学习笔记
下一篇: 结构偶然性(第一部分)