首先说一下为什么要采用平滑操作:
因为在数据库统计词语的结果中,一定会出现大量的零(稀疏),从而导致识别的结果出现错误,比如在你的语料库中没有'他'这个字,统计概率就为0,但你不能因为这个的概率为0,就把所有的带’他’的句子统计为概率是0,这是不合理的,所以要对所统计的结果进行平滑操作,避免统计结果稀疏。
Laplace平滑
这是平滑方法中最为简单粗暴的一个方法,原理就是让每个统计的频数至少为1,做法就是将每个统计频率分子加1,分母加所有统计汉字的个数,这样的话就可以把本来概率为0结果变为一个很小的值,也是比较合理。
但在实际的应用中却会出现一些问题,由于总的统计概率一定是1,那么这些后来增加的概率就必然会造成原来大概率的减小,而且实验证明,这种减小是巨大的,那么就可能会导致结果的不准确。
Add-k平滑
这种平滑方法是Laplace平滑方法的一个扩展,其实Laplace平滑又叫Add-one平滑,这样你就理解为什么这里会有一个Add-k方法了吧,就是给加的数量多了一些选择的余地,但这种余地是好是坏还需要根据你自己统计的实际情况来看。
很遗憾,到现在为之,我也就用到了这两种简单的平滑方法,先总结如下,如果之后有需要使用到更多的平滑方法的话,我也会及时的补上。