在语言模型计算概率的时候,我们会碰到概率为0的情况,即计算的单词在语言模型中并没有出现过。这个时候会使用平滑的方法计算概率,一般分为以下几种:

Add-One Smoothing

Add-K Smoothing

其中Add-One Smoothing可以看作Add-K Smoothing中K为1的变种。概率计算即为

(C+k)/(N+kV)

其中C为需要计算的情形出现的次数,N为语料库中所有情形的次数,V为语料库中所有情形的种类。

Interpolation 

Interpolation 即为同时考虑多种语言模型,如Uni-Gram,Bi-Gram,Tri-Gram进行加权平均

Good-Turning Smoothing

Good-Turning Smoothing认为当前情形出现概率与语料库中出现次数与之相等的情形和出现次数多一次的情形相同。认为当此情形出现次数为(C+1)N_{c}/N_{c+1}N_{c}为出现次数为c的情形种类。然后除以N即为Good-Turning Smoothing计算的概率。

Good-Turning Smoothing会出现一个问题,即当c大的时候可能会出现N_{c+1}为0的情况。这个时候我们可以使用一个回归模型计算出N_{c+1}的模拟值进行计算。

 

 

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐