第一章 文字和语言 vs 数学和信息
本章主要介绍了各种概念,属于基础知识预备的角色,没有什么好说的,虽然没什么所谓的干货,但知识量也不少。
第二章 自然语言处理——从规则到统计
本章提出了从规则到统计的自然语言处理的发展历史,从而引出了数学在自然语言处理中的重要地位。
第三章 统计语言模型
3.1 二元模型
对于给定的一个句子,我们如何判断这个句子能不能称之为一个“句子”呢,为了解决这个问题,科学家提出了各种方法。
如基于规则的,通过一定的规则判断所给的句子是否符合已有规则,这种方式简单,但并不灵活,一旦出现新的句型,就要对现有的语言规则库进行修改,而且自然语言表达方式灵活,我们不可能穷尽所有的规则。
为了解决这个问题,贾里尼克提出了一个简单粗暴但又行之有效的解决方案,他认为,“一个句子是否合理,就看看它的可能性大小如何。”就这样,一个复杂的自然语言处理问题就转化为概率问题。
假设
S
为给定的某一条句子由
再根据条件概率公式,我们可以知道
其中 P(wi|w1,w2,…,wi−1) 在第 1 个到第
根据我们学过的概率论知识可以知道
为了简化计算问题,在效率和准确度之间找到一个平衡点,伟大的数学家提出了统计语言学中的 二元模型概念。通过二元模型,上述公式被简化为
接下来的任务就是对 P(wi|wi−1) 进行计算了,根据条件概率公式
通过对已有文本语料库的统计,根据大数定理, P(wi|wi−1) 和 P(wi−1) 都可以计算出来。通过这样的逐一转化和问题简化,一个复杂的自然语言处理问题就变成了简单的概率论问题。
上述模型即为二元模型,所谓的 N 元模型即计算n个词汇一起出现的概率。书中指出,当
3.2 零概率问题和平滑方法
所谓了零概率问题就是由于语料库收集的不完备,导致某种情况下的概率出现了0,但在实际生活中却又可能出现这样的组合。为了改善这一问题,提出了平滑方法,目前已有的平滑方法有
- 加一法(方法过于机械,不灵活)
- 加法平滑法
- 古德-图灵(Good-Turing)法
- JM平滑法
- Kneser-Ney法
- Katz法
上述几种方法中,当数据量适中时,Kneser-Ney表现最好,JM平滑法次之。当数据量较大时,Good-Turing法表现最好,Katz次之。
在语料的选取上,并不是越多越好,而是有针对性的选取语料,专门的领域选择专门的语料,例如用《人民日报》的语料库对搜索引擎进行训练,得到的概率模型肯定不是最好的。