Statistical Language Model笔记+几个简单平滑算法

本文介绍了N-GRAM模型的概念和计算方法,包括一元模型、二元模型和N-元模型。讨论了数据稀疏性和马尔科夫假设在模型中的作用。并探讨了最大似然估计、困惑度以及数据稀疏问题,提出了平滑方法,如Laplace平滑、删除插值和Stupid backoff。最后提到了Good-Turing平滑算法,它是许多数据平滑技术的基础。
摘要由CSDN通过智能技术生成

1. 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)


上面的例子显示了计算一个句子的概率来判断它是否合理,下面用概率语言进行描述:

我们需要计算一个序列句子的概率: P(W)=P(w1,w2,w3,w4,w5....wn)

其中我们也需要计算一个相关的任务,比如P(W5|w1,w2,w3,,w4)表示在w1234后出现w5的概率,即下一个词出现的概率。

像这样计算P(W)或者P(wn|w1,w2...)的模型叫做语言模型(language model  简称LM)。通俗来看,语言模型其实就是看一句话是不是人说出来的,如果用机器翻译出现若干候选项后,可以使用语言模型挑选一个最靠谱的结果。

如何计算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),一种比较直观的计算就是计数然后用除法:

可是事实上,如果这样计算,实际上是不行的,原因有2个:

1.直接这样计算会导致模型的参数空间过大,一个语言模型的参数就是所有的这些条件概率,试想;假设词典大小为|V|,则按上面的方式计算 :P(w5|w1,w2,w3,w4),每一个wi的取值都有词典大小种,即|wi|=|v|,这样光是计算Count(w1w2w3w4w5)就有|V|^5个参数,而且这还不包括P(w4|w1,w2,w3)的个数,可以看到这样计算条件概率会使得参数个数太多。

2.数据稀疏严重。如果按照这样计算,比如计数分子its water is so transparent,这种句子出现的次数是很少的,这样计算的结果会使得过多的条件概率趋近于0,因为我们没看到足够的文本来统计。

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值