Statistical language model 统计语言模型

本文介绍了统计语言模型在机器翻译、拼写检查和语音识别等领域的应用,并详细讨论了N-GRAM、参数估计、模型评价以及如何解决数据稀疏问题和平滑方法等关键概念。
摘要由CSDN通过智能技术生成
               
学习笔记来自斯坦福公开课的自然语言处理( https://class.coursera.org/nlp/),以其中讲义为主,加入自己的学习理解,以加深学习印象。

内容提纲:

1. N-GRAM介绍
2. 参数估计
3. 语言模型的评价
4. 数据稀疏问题
5. 平滑方法


N-GRAM介绍


现在很多的应用中,需要计算一个句子的概率,一个句子是否合理,就看看它的可能性大小,这里可能性的大小就用概率来衡量。比如下面几个例子:
  • 在机器翻译中:
          P(high  winds  tonite)  >  P(large  winds  tonite) 
  • 拼写检查中:
          比如这一句话:The  office  is  about  fiIeen  minuets  from  my  house 
          显然 P(about  fiIeen  minutes  from)  >  P(about  fiIeen  minuets  from)
  • 语音识别中:
          比如I  saw  a  van 和eyes  awe  of  an听上去差不多,但是P(I  saw  a  van)  >>  P(eyes  awe  of  an) 

上面的几个例子中都需要计算一个句子的概率,以作为判断其是否合理的依据。下面将上述的内容形式化描述。
我们需要计算一个句子或序列W的概率: P(W)  =  P(w 1 ,w 2 ,w 3 ,w 4 ,w 5 …w n ) 
其中我们也需要计算一个相关的任务,比如P(w 5 |w 1 ,w 2 ,w 3 ,w 4 ),表示w 1 w 2 w 3 w 4 后面是w 5的概率,即下一个词的概率。
像这样计算P(W)或者P(w n |w 1 ,w 2 …w n-­‐1 )  的模型叫做语言模型( language  model简称LM)。

那么如何计算P(W)呢?用概率的链式规则,链式规则常常用来评估随机变量的联合概率,链式规则如下:


将上面的链式规则计算P(W)可以写作如下:


按照链式规则计算方式,举例如下:
P(“its water is so transparent”) = P(its) × P(water|its) ×  P(is|its water) ×  P(so|its water is) ×  P(transparent|its water is so)
那么下面的问题是如何计算上面每一个概率,比如 P(transparent|its water is so),一种比较直观的计算就是计数然后用除法:



事实上不能用这种方式去计算条件概率,原因有两个:
1.直接这样计算会导致参数空间过大,一个语言模型的参数就是所有的这些条件概率,试想按上面方式计算P(w 5 |w 1 ,w 2 ,w 3 ,w 4 ),这里w i都有一个词典大小取值的可能,记作|V|,则该模型的参数个数是|V|^5,而且这还不包含P(w 4 | w1, w2, w3)的个数,可以看到这样去计算条件概率会使语言模型参数个数过多而无法实用。
2.数据稀疏严重,我的理解是像上面那样计数计算,比如计数分子its water is so transparen,在我们所能见的文本中出现的次数是很小的,这样计算的结果是过多的条件概率会等于0,因为我们根本没有看到足够的文本来统计!

上面的计算方式是通过马尔科夫假设进行简化的,马儿可夫假设是指假设第wi个词语只与它前面的k个词语相关,这样我们就得到前面的条件概率计算简化如下:


这样我们的P(W)计算简化如下:



当k = 0时,这个时候对应的模型叫做一元模型(Unigram  model),即wi与它前面的0个词相关,即wi不与任何词相关,每一个词都是相互独立的,P(W)计算如下:



当k = 1时,对应的模型叫做二元模型(Bigram  model),此时wi与它前面一个词相关,P(W)计算如下:



同样的,我们可以让k = 2,叫做 trigrams,4-grams,5-grams,当k = N - 1,模型成为n元模型,即N-grams。

总的来说,N-grams有一些不足,因为语言存在一个长距离依赖关系,比如考虑下面的句子:

“The computer which I had just put into the machine room on the fifth floor crashed.”

假如我们要
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值