NLP第一课--语言模型

—Course notes for NLP by Michael Collins, Columbia University
学习笔记

1.1引言
这一章的主要目的是从一些例句中抽出语言模型

下面是定义
- v 是所有单词的集合
- x1x2...xn 表示一个句子; xiv xn 是一个终止符号— stop

语言模型的定义
一个语言模型包含一个有限集合 v ,一个函数p(x1,x2...xn)
于是
1.对于任意 <x1...xn>v+,p(x1,x2...xn)0 <script id="MathJax-Element-8" type="math/tex"> \in v^+, p(x_1,x_2...x_n)\geq 0</script>
2. <x1...xn>v+p(x1,x2,...xn)=1
于是 p(x1,x2,...xn) 是一个句子在 v+ 中的联合分布率

1.2马尔科夫模型
1.2.1 定长句子的马尔科夫模型
我们的目的是求出 P(X1=x1,X2=x2,...,Xn=xn) 的联合分布率
ps: Xivxi
但是对于 x1...xn |v|n 种可能的序列,所以要列出 |v|n 是不现实的,所以我们需要一个更实用的方法:
一层的马尔科夫模型
P(X1=x1,X2=x2,...,Xn=xn)
=P(X1=x1ni=2P(Xi=xi|X1=x1,...,Xi1=xi1)
=P(X1=x1ni=2P(Xi=xi|Xi1=xi1)
1.2.2变长句子的马尔科夫模型
上一节讨论了定长句子的模型,但是显然大多数应用中句子是变长的,所以这一节我们介绍最通用的语言模型方法。
方法很简单:使一个序列中 Xn 总是等于终止符 stop ,举例来说,对于二阶马尔科夫模型:
P(X1=x1,X2=x2,...,Xn=xn)
=ni=1P(Xi=xi|Xi2=xi2Xi1=xi1)
计算方法如下:
1. 初始化 i=1,x0=x1=
2. 从 P(Xi=xi|Xi2=xi2Xi1=xi1) 的分布中生成 xi
3. 如果 xi=stop ,则返回序列 x1...xi ,否则 i=i+1 ,继续步骤2
这样我们就有可以生成任何长度序列的模型了
1.3 三元语言模型
我们将关注三元语言模型,讨论它的最大似然参数估计,最后讨论三元语言模型的缺点。
1.3.1 基本定义
在马尔科夫模型中,我们模型化每个句子为n个任意变量 X1,...,X2 组成的序列, Xnstop
在二元马尔科夫模型中
—————句子 x1...x2 的概率是—————————-
P(X1=x1,X2=x2,...,Xn=xn)
=ni=1P(Xi=xi|Xi2=xi2Xi1=xi1)
其中假设 x0=x1= .
又假设 P(Xi=xi|Xi2=xi2Xi1=xi1)=q(xi|xi2,xi1)
其中对任意 (u,v,w) , q(w|u,v) 是此模型的参数

于是我们的模型的形式改变如下:
p(x1...xn)=ni=1q(xi|xi2,xi1)

举例来说,如何计算三元模型
the dog barks STOP
p( the dog barks STOP )
=q(the|,)×q(dog|,the)×q(barks|the,dog)×q(STOP|dog,barks))

对于任何 u,v wvSTOPq(w|u,v)=1
但是,想象如果语料库中有10000个单词,那么这个模型就有 100003=1012 ,显然这是非常大的

1.3.2 最大似然估计
我们首先最一般的方法入手来估计参数–最大似然估计法。我们将会看到这些估计值是有缺陷的,但是我们仍然展示为什么这些参数在实际中非常有效。

首先,假设 c(u;,v,w) 是三元模型 (u,v,w) 的次数,同样的 定义 c(u,v) 是二元模型 (u,v) 的语料中出现的次数,对于任意 w,u,v 定义

q(w|u,v)=c(u,v,w)u,v

这样我们对 p( barks | the, dog ) 的参数估计就变成了

p(barks|the,dog)=c(the,dog,barks)c(the,dog)

(表示barks在 the dog 出现的情况下 的概率的计算方法是 the dog barks 出现的次数比上 the dog 出现的次数?)

但是这样就会有两个问题:

  • 很多 q(w|u,v)=0 ,这意味着uvw的语序出现概率是0,但是这只能代表训练语料中为零,在更多的情境中,这很可能不是0.
  • 万一 c(u,v) 等于0

//待续

1.3.3 评价语言模型:复杂度

我们使用一组不存在于训练语料库中的句子 x(1),x(2),...,x(m) 每个句子 x(i),i1...m 都由单词 x(i)1,...,x(i)n 组成
对于一个测试句子,我们能通过语言模型衡量其概率 p(x(i))
一个普通的衡量方法就是语言模型分给所有测试句子的概率,也就是
mi=1p(x(i))

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值