在语言模型计算概率的时候,我们会碰到概率为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)/。为出现次数为c的情形种类。然后除以N即为Good-Turning Smoothing计算的概率。
Good-Turning Smoothing会出现一个问题,即当c大的时候可能会出现为0的情况。这个时候我们可以使用一个回归模型计算出的模拟值进行计算。