码迷,mamicode.com
首页 > 其他好文 > 详细

Michael Collins自然语言处理课程讲义(翻译:Trey)

时间:2014-05-21 19:57:32      阅读:404      评论:0      收藏:0      [点我收藏+]

标签:style   blog   c   tar   ext   http   

第一章 语言模型

(Michael Collins的自然语言处理课程讲义,哥伦比亚大学)

1.1 介绍

在这一节,我们将考虑一个问题,即如何为一个例句集建立语言模型。语言模型最初从语音识别发展起来;对现代的语言识别系统,语言模型依然起着中心作用。语言模型在其他自然语言处理应用中也被广泛应用。我们将在本章讨论参数估计技术。参数估计技术最初为语言模型而生,在很多场合都有用,譬如在接下来的章节中将会讨论到的标注问题和句法分析问题。

我们的任务如下。假设我们有一个语料库——某特定语言的句子集。譬如说,我们可能持有泰晤士报数年内的文档,又或者我们可能拥有非常大量的网络文档。基于这些语料,我们希望评估一个语言模型的参数。

语言模型定义如下。首先,我们将该门语言中的所有单词组成的集合定义为bubuko.com,布布扣。例如,当我们为英语建立语言模型时,我们可能会有

 

bubuko.com,布布扣

 

在实际应用中bubuko.com,布布扣可以是很大的:它可能包含数千甚至数万个单词。我们假设bubuko.com,布布扣是一个有限集。该语言的一个句子就是一个单词序列

 

bubuko.com,布布扣

 

其中bubuko.com,布布扣满足bubuko.com,布布扣,且bubuko.com,布布扣bubuko.com,布布扣,且假定bubuko.com,布布扣是一个特殊符号——STOP(我们假定STOP并非bubuko.com,布布扣中的元素)。我们将会看到为什么让每个句子以STOP结束是方便的。以下是一些例句:

 

bubuko.com,布布扣

 

我们将定义bubuko.com,布布扣作为取词于bubuko.com,布布扣的句子的集合:这是一个无限集,因为句子可以是任意长度的。

我们接着给出如下定义:

定义1 (语言模型) 一个语言模型由一个有限集bubuko.com,布布扣,以及一个函数bubuko.com,布布扣构成,其中bubuko.com,布布扣满足:

 

1. 对任意bubuko.com,布布扣bubuko.com,布布扣

2. 此外,

bubuko.com,布布扣

 

因此bubuko.com,布布扣bubuko.com,布布扣中句子的概率分布。

对从训练语料库中学习语言模型的一种(非常差劲的)方法,我们考虑如下。将句子bubuko.com,布布扣在训练语料库中出现的次数定义为bubuko.com,布布扣,训练语料库的句子总数为bubuko.com,布布扣。于是我们可以将bubuko.com,布布扣定义为

 

bubuko.com,布布扣

 

然而,这是一个非常差劲的模型:具体地说,它会将任何未在训练语料库中出现过的句子的概率赋为0。因此它无法遍及那些未在训练语料库中出现过的句子。本章的主要技术贡献就是介绍可以遍及未在训练语料库中出现过的句子的方法。

乍看起来语言模型问题是一个特别奇怪的任务,那么究竟我们为什么要考虑这个问题?有几个理由:

1. 语言模型在非常广泛的应用中都有着重要作用,最明显的或许是语音识别和机器翻译。在很多应用中,获得一个好的先验分布bubuko.com,布布扣来描述句子在该种语言中是否可能,是非常有用的。例如,在语音识别中,语言模型与一个语音模型绑定,语音模型是为单词发音而建的模型:想象这种语言模型的一个方法是,语音模型生成大量候选句子,每个句子都附带着一个概率值;语言模型则基于每个句子在该种语言中有是否更有可能是一个句子,来重新分配概率。

2. 我们所讨论的技术,即用于定义函数bubuko.com,布布扣以及用于评估从训练用例中习得的语言模型的参数的技术,将会在课程中提到的其他几个场合下非常有用:例如在我们即将讲到的隐马尔可夫模型中,以及用于语法分析的语言模型中,都非常有用。

1.2 马尔可夫模型

现在我们转到一个重要问题:给定一个训练语料库,我们怎样训练出函数bubuko.com,布布扣?在这一节我们讨论概率论中的一个核心概念——马尔可夫模型;在下一节,我们讨论三元语言模型,三元模型是直接建立在马尔可夫模型之上的一类语义模型。

1.2.1 针对定长序列的马尔可夫模型

考虑一个随机变量序列bubuko.com,布布扣。每一个随机变量值可以取有限集bubuko.com,布布扣中的任意值。现在我们假设序列的长度bubuko.com,布布扣是一个固定的数(例如,bubuko.com,布布扣)。在下一节我们将描述怎样将处理方法一般化到bubuko.com,布布扣本身也是随机变量的情况,从而允许不同序列拥有不同的长度。

我们的目标如下:我们希望为任何序列bubuko.com,布布扣的概率建模,其中bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣。换言之,就是为如下联合概率建模:

 

bubuko.com,布布扣

 

形如bubuko.com,布布扣的可能序列有bubuko.com,布布扣个:所以很明显,对合理的bubuko.com,布布扣bubuko.com,布布扣,罗列所有bubuko.com,布布扣个概率值,并不是一个可行的方法。我们希望建立一个更为强大的模型。

在一阶马尔科夫过程中,我们作如下假设,即将模型简化为:

 

bubuko.com,布布扣

bubuko.com,布布扣

 

第一步,即公式1.1,是准确的计算方法:根据概率的链式法则,任意分布bubuko.com,布布扣都可以写成这个形式。因此我们在这一步的推演中并没有做出任何假设。然而,第二步,即公式1.2,并不必然是准确的计算方法:我们作出了如下假设,即对任意bubuko.com,布布扣,任意的bubuko.com,布布扣,有

 

bubuko.com,布布扣

 

这是其中一个(一阶)马尔可夫假设。我们假设序列中第bubuko.com,布布扣个单词的特征仅依赖与它前一个单词,bubuko.com,布布扣。更规范地说,给定bubuko.com,布布扣的值,我们假设bubuko.com,布布扣的值条件独立于bubuko.com,布布扣

在一个二阶马尔可夫过程(二阶马尔可夫过程是建立三元语言模型的基础)中,我们作出一个略微弱一点的假设,即认为序列中的每个单词只依赖于其前两个单词:

 

bubuko.com,布布扣

 

从而整个序列的概率写成

 

bubuko.com,布布扣

 

为了方便,在定义中,我们假设bubuko.com,布布扣 ,其中bubuko.com,布布扣是句子中一个特殊的"星"号。

1.2.2 针对变长句子的马尔科夫序列

在上一节,我们假设句子的长度bubuko.com,布布扣是固定的。然而在很多应用中,bubuko.com,布布扣是可变的。因此bubuko.com,布布扣本身也是一个随机变量。为这个长度变量建模的方法有很多:在本节我们讨论一种最为普遍的语言建模方法。

方法是简单的:我们假设序列中第bubuko.com,布布扣个单词bubuko.com,布布扣总是等于一个特殊符号——STOP。这个符号只可出现在序列的末尾。我们使用与前面提到的完全相同的假设:例如在二阶马儿可夫假设下,我们有

 

bubuko.com,布布扣

 

对任意的bubuko.com,布布扣和任意bubuko.com,布布扣都成立。其中bubuko.com,布布扣满足bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣

我们已经假设了一个二阶马尔可夫过程,在这个二阶马尔可夫过程中,我们根据如下分布生成符号bubuko.com,布布扣

 

bubuko.com,布布扣

 

其中bubuko.com,布布扣bubuko.com,布布扣中元素,或者,如果它居于句末的话,是一个STOP符号。如果我们生成了STOP符号,那么我们就已经生成了整个序列。否则,我们接着生成序列中的下一个符号。

更规范一点来说,生成句子的过程如下:

 

    1. 初始化bubuko.com,布布扣bubuko.com,布布扣

    2. 根据如下分布生成bubuko.com,布布扣

bubuko.com,布布扣

    3. 如果bubuko.com,布布扣,返回序列bubuko.com,布布扣。否则,令bubuko.com,布布扣,并转到第2步。

 

至此,我们已经拥有了一个能够生成不定长序列的模型。

 

第一章1.2节完。

原文页面:http://www.cs.columbia.edu/~mcollins/lm-spring2013.pdf
课程主页:http://www.cs.columbia.edu/~cs4705/
Michael Collins的个人主页:http://www.cs.columbia.edu/~mcollins/

Michael Collins自然语言处理课程讲义(翻译:Trey),布布扣,bubuko.com

Michael Collins自然语言处理课程讲义(翻译:Trey)

标签:style   blog   c   tar   ext   http   

原文地址:http://www.cnblogs.com/treyscience/p/3740100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!