ngram平滑主要解决在当前gram下,词表中没有出现该词的情况(不能使用想当然的词频0).

 

Sen=一个 傻子 走 在 大陆 上

p(sen)=p(一个|start)p(傻子|一个)p(走|一个,傻子)*p(在|傻子,走)…

 

求p(傻子|一个)的方法为在词表中找 【一个 傻子】 的概率(经过了log计算)但是….没有找到

ngram 求句子概率(平滑)

于是,使用 这个回退系数bow(-0.4344)来通过p(傻子)*bow作为p(傻子|一个)【如果傻子也不存在,那么应该是OOV了吧】

ngram 求句子概率(平滑)

那么bow应该怎么求呢?

参考: https://blog.csdn.net/xmdxcsj/article/details/50373554

 

假设p(傻子|一个)[一个 傻子]在2gram中不存在,则求p(傻子|一个)变为求

bow(一个)*p(傻子)。

假设词表中为[一个 苹果],[一个 粒子],而没有[一个 傻子]。

根据公式 bow(一个)=(1-p(苹果|一个)-p(例子|一个))/(p(傻子)

从而得到p(傻子|一个)的概率值。

 

假设p(在|傻子,走) [傻子 走 在]在3gram中不存在,则求p(在|傻子,走)变为求:

bow(傻子,走)*p(在|走)。那么bow(傻子,走)怎么求。

假设词表中存在[傻子 走 好],[傻子 走 起],而没有[傻子 走 在]。

bow(傻子,走)=(1-p(好|傻子,走)-p(起|傻子,走))/(p(好|走)+p(起|走))

从而可以得到p(在|傻子,走)的概率值。

 

最后相乘得到句子的概率。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-05
  • 2021-08-26
  • 2021-10-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-02-02
  • 2021-09-12
  • 2022-12-23
  • 2022-01-16
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案