面向机器学习的自然语言标注3.3 语言模型-阿里云开发者社区

开发者社区> 华章出版社> 正文

面向机器学习的自然语言标注3.3 语言模型

简介:

3.3 语言模型


n元语法的好处是什么呢?多年来自然语言处理已经利用n元语法开发了预测序列行为的统计语言模型(language model)。序列行为涉及在包含多个X的序列中识别下一个X。例如,语音识别、机器翻译等。在给定前一个元素的前提下语言模型预测序列中的下一个元素。

让我们更仔细地看看它是如何工作的,以及如何使用前几章讨论的工具。假设有一个单词序列,w1,w2,?wn。预测序列中的任意“下一个单词”wi可以表示为下面的概率函数:

 

等价于:

 

请注意,这里涉及两个联合概率分布的计算。我们假定用语料库中的单词序列的频率来估计它的概率。即,

P(w1,?wi-1) = Count(w1,?wi-1)

P(w1,?wi) = Count(w1,?wi)

以下比率称为相对频率(relative frequency):

 

注意: 正如我们所看到的,n元语法例子中的联合概率可以使用序列行为的链式法则表示为条件概率(conditional probability),如下:

 

它进一步可表示为:

 

原则上,如果计算整个词序列的联合概率,即便我们能够估计构造预测模型所需要的概率,我们也没有机会拥有足够的数据来进行这个工作。也就是说,有些词序列可能从未在我们的语料库中出现过,但我们仍想能够预测其中所包含的这些元素的相关行为。为解决这个问题,我们可以对序列中元素的贡献做一些简化的假设。即,如果我们近似地认为序列中某个单词的行为只与它前面的一个单词相关,则我们可以将n元概率

P(wi | w1     )

简化为二元概率:

 

这就是马尔科夫假设(Markov assumption),使用它,我们就能得到语料库中二元子串的一些合理统计结果。使用更早之前提到的相对频率的概念,可以估计二元概率。如前所述,我们用语料库中二元子串的出现次数除以语料库中其前缀(这里指的是一个单词)出现的次数:

 

这个过程就是最大似然估计(Maximum Likelihood Estimation,MLE),它提供了用于创建语言模型的一个相当直接的方式。第7章将继续讨论该话题。

总结

本章介绍了分析语料库语言学内容的工具以及执行统计分析需要的各种技术和工具。具体地,我们讨论了如下内容:

语料库分析包含统计和概率工具,执行推理统计时,这些工具可对语料库和信息进行数据分析。这对你进行语料库标注以及在语料库上训练机器学习算法而言是必不可少的信息。

有必要区分语料库中单词的出现(词例)和单词本身(词型)。

语料库中词例的总数是语料库的大小。

语料库中词型的总数是词汇表的大小。

语料库中单词的排序/频率分布是根据单词的词例数给出的词语排序。

单词的频谱是具有给定频次的单词的个数。

齐普夫定律是一个幂次定律,它说明任何单词的频率与它的排序成反比。

对于许多自然语言处理应用,构造语料库中词语的n元子串是建立语言模型的第一步。

点互信息是对文本中的一个词与另一个词之间依赖关系的度量。它可以用来判断语料库中的二元子串是否是真正的搭配。

可以基于马尔科夫假设对预测序列行为的语言模型进行简化,即在预测一个单词时只关注其前面的一个单词。

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接