用户输入一个单词时,可能拼写正确,也可能拼写错误。如果拼写正确的情况记作 ,拼写错误的情况记作 ,那么拼写检查要做的事情就是:在发生 的情况下,试图推断出 。换而言之,已知 。然后在若干个备案方案中,找出可能性最大的那个 ,也就是求 的最大值。
对于所有备选的 来说,对应的都是同一个 ,所以它们的 是相同的,因此我们只要最大化
其中 表示某个正确的词出现的「概率」,它可以用「频率」代替。如果我们有一个足够大的文本库,那么这个文本库中每个单词出现的概率,就相当于它发生的概率。某个单词出现的频率越高, 就越大。在你输入一个错误的词 Julx 时,系统更倾向于你想输入的词是 July,而不是 Jult,因为 July 更常见
表示在试图拼写 的情况下,出现拼写错误 的概率。为了简化问题,假定两个单词在字形上越接近,这就越有可能拼错, 就越大。举例来说,相差一个字母的拼法,就比相差两个字母的拼法,发生概率更高。一般把这种问题称为「编辑距离」。
所以,我们比较所有拼写相近的词在文本库中出现的概率,再从中挑选出现频率最高的那一个,就是用户最想输入的那个词。