贝叶斯算法可以用来做拼写检查、文本分类、垃圾邮件过滤等工作,前面我们用贝叶斯做了文本分类,这次用它来做拼写检查,参考:How to Write a Spelling Corrector
拼写检查器的原理...给定一个单词, 我们的任务是选择和它最相似的拼写正确的单词. ...对应的贝叶斯问题就是, 给定一个词 w, 在所有正确的拼写词中, 我们想要找一个正确的词 c, 使得对于 w 的条件概率最大, 也就是说:
argmaxc P(c|w)
按照贝叶斯理论上面的式子等价于:...argmaxc P(w|c) P(c) / P(w)
因为用户可以输错任何词, 因此对于任何 c 来讲, 出现 w 的概率 P(w) 都是一样的, 从而我们在上式中忽略它, 写成:
argmaxc P...一般情况下,编辑距离为2时已经可以覆盖大部分情况
计算先验概率P(c)
为了尽量覆盖较多的词语,首先从词典中读入常见的英文单词
从en-US读取词语【词语开始[Words]】
然后,从训练语料(训练语料在此下载