读《数学之美》
  • 读《数学之美》
  • 第 0 章 序言 前言
  • 第 1 章 文字和语言 vs 数字和信息
  • 第 2 章 自然语言规则——从规则到统计
  • 第 3 章 统计语言模型
  • 第 4 章 谈谈中文分词
  • 第 5 章 隐含马尔可夫模型
  • 第 6 章 信息的度量和作用
  • 第 7 章 贾里尼克和现代语言处理
  • 第8章 简单之美——布尔代数和搜索引擎的应用
  • 第 9 章 图论和网络爬虫
  • 第 10 章 PageRank——Google民主表决式网页排名技术
  • 第 11 章 如何确定网页和查询的相关性
  • 第 12 章 地图和本地搜索的最基本技术
  • 第 13 章 Google ak-47 的设计者
  • 第 14 章 余弦定理和新闻分类
  • 第 15 章 矩阵运算和文本处理中的两个分类问题
  • 第 16 章 信息指纹及其应用
  • 第 17 章 谈谈密码学的数学原理
  • 第 18 章 闪光的不一定是金子——谈谈搜索引擎
  • 第 19 章 谈谈数学模型的重要性
  • 第 20 章 谈谈最大熵模型
  • 第 21 章 拼音输入法的数学原理
  • 第 22 章 自然语言处理的教父马库斯和他的优秀弟子们
  • 第 23 章 布隆过滤器
  • 第 24 章 马尔科夫链的扩展——贝叶斯网络
  • 第 25 章 条件随机场和句法分析
  • 第 26 章 维特比和他的维特比算法
  • 第 27 章 再谈文本自动分类问题——期望最大化EM
  • 第 28 章 逻辑回归和搜索广告
  • 第 29 章 各个击破算法和Google云计算的基础
Powered by GitBook
On this page
  • 统计语言模型
  • 利用概率大小衡量一个文字序列是否能构成大家理解而且有意义的句子
  • N-1 阶马尔科夫模型
  • 模型的训练
  • 减少不平滑
  • 语料的选取
  • 小结

第 3 章 统计语言模型

Previous第 2 章 自然语言规则——从规则到统计Next第 4 章 谈谈中文分词

Last updated 7 years ago

讲述如何利用统计语言模型处理自然语言,以及如何确保结果的准确性、减少不平滑。

统计语言模型

用来处理自然语言的上下文关系,它是所有自然语言处理的基础。并广泛应用于机器翻译、语音识别、印刷体或手写体识别、拼音纠错、汉字输入和文献查询。

利用概率大小衡量一个文字序列是否能构成大家理解而且有意义的句子

假定表示某一个有意义的句子,由一连串特定顺序排列的词组成, 其中是句子的长度。现在我们想知道在文本中出现的可能性,即是的概率。 既然,那不妨将展开表示:

(3.1)

根据大数定律,只要统计量足够,相对频度就等于概率,即:

大数定律

大数定律(law of large numbers),是一种描述当试验次数很大时所呈现的概率性质的定律。但是注意到,大数定律并不是经验规律,而是在一些附加条件上经严格证明了的定理,它是一种自然规律因而通常不叫定理而是大数“定律”。

在随机事件的大量重复出现中,往往呈现几乎必然的规律,这个规律就是大数定律。通俗地说,这个定理就是,在试验不变的条件下,重复试验多次,随机事件的频率近似于它的概率。偶然中包含着某种必然。

结合(3.4),(3.7),(3.8),可得:

N-1 阶马尔科夫模型

  • 二是自然语言中上下文的相关性可能跨度非常大,甚至可以从一个段落跨到另一个段落,所以即使模型阶数n再高,也没有太多意义。这是马尔科夫假设的局限。

马尔科夫假设的局限

模型的训练

通过对语料的统计,得到模型中的参数。

我们需要足够的语料才能得到较为可靠的概率。然而语料过多,可能会导致大部分条件概率为0的情况,这种模型叫做“不平滑”。

减少不平滑

古德-图灵估计(Good-Turing Estimate):对于没有看见的事件,我们不能认为它的发生概率就是零,因此我们从概率的总量中,分配一个很小的概率给予这些没有看见的事件。这样一来,看见的时间的概率总和就要小于1了。至于小多少,要根据“越是不可信的统计折扣越多”的方法进行。

显然:

Zipf 定律(Zipf's Law)

一般来说,出现一次的词的数量比出现两次的多,出现两次的比出现三次的多。这种规律称为Zipf定律。

语料的选取

  • 训练语料和模型应用的领域须保持一致,以减少噪音。

  • 语料数据通常是越多越好,可以利用平滑过渡方法解决小/零概率事件。

  • 最好能预处理能具有规律的、量比较大的噪音。

小结

数学的魅力在于将复杂的问题简单化。

序列出现的概率,等于序列中每一个词出现的条件概率相乘,其中,并且出现的概率同他前面的所有词有关,于是可展开为:

条件概率公式(3.2)

由于计算复杂,所以就假设(马尔科夫假设)任意一个词出现的概率只同它前面的词有关:

马尔科夫假设 or 二元模型(Bigram Model)(3.3)

接下来的问题就是估计条件概率根据定义,可知:

条件概率(3.4)

对与联合概率和边缘概率的估计就变得简单了。通过计数可获得这些词或者二元组的相对频度:

二元组的相对频度(3.5)
相对频度(3.6)
(3.7)
(3.8)
(3.9)

假设文本中的每个词和前面的个词有关系,而与更前面的词无关,则:

N-1阶马尔科夫假设(3.10)

的一元模型实际上是一个上下文无关的模型,的值一般为2,或3。

值很少取更高值的原因:

一是 越大,复杂度越大(这里是一种语言词典的词汇量)。

一是 越大,复杂度越大(这里是一种语言词典的词汇量)。

二是自然语言中上下文的相关性可能跨度非常大,甚至可以从一个段落跨到另一个段落,所以即使模型阶数再高,也没有太多意义。

设语料库中出现次的词有个,特别地,未出面的词数量为,语料库大小为。那么,显然有:

(3.11)

出现次词在整个语料库中的相对频度(Relative Frequency)则是,若不做任何优化处理,就可用这个相对频度作为这些词的频率估计。

现在假定当比较小时,它的统计可能不可靠,因此出现次的那些词在计算它们的概率时要使用一个更小一点的次数(而不直接使用),古德-图灵估计按照下列公式计算:

(3.12)
(3.13)

删除插值法:因为一元组出现的次数平均比二元组出现的次数要高得多,根据大数定理,它的频度更接近概率分布。所以,用低阶语言模型和高阶模型进行线性差值来达到平滑的目的。即连续三个字出现的概率倍连续三个字出现的概率倍连续两个字出现的概率倍该字单独出现的概率:

删除插值法(3.14)
古德-图灵估计
S
S
S
w_1,\ w_2,\ \cdots ,\ w_n
n
S
P\left( S \right)
 S = w_1,\ w_2,\ \cdots ,\ w_n
P\left( S \right)
w_i
i=\left\{ \text{1,}\cdots ,\ n \right\}
P\left( w_1,\ w_2,\ \cdots ,\ w_n \right)
w_i
w_{i-1}
P\left( w_i\mid w_{i-1} \right)
P\left( w_{i-1},\ w_i \right)
P\left( w_{i-1} \right)
w_i
N-1
N=1
N
N
N
O\left( |V|^N \right)
 |V|
N
O\left( |V|^N \right)
 |V|
n
r
N_r
N_0
N
r
r/N
r
r
d_r
r
\left( w_i \right)
\left( w_{i-1},\ w_i \right)
=
\lambda
+
\mu
+
\left( 1-\lambda -\mu \right)