当前位置:   article > 正文

Statistical Language Model笔记+几个简单平滑算法_加一平滑算法中v是n-gram大小还是词典大小

加一平滑算法中v是n-gram大小还是词典大小

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,因为我们没看到足够的文本来统计。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/628973
推荐阅读
相关标签
  

闽ICP备14008679号