Logo
Section 1 / 8

Norvig 拼写检查器

了解 Norvig 拼写检查器及其基本组成部分。

导入

Norvig 拼写检查器

了解 Norvig 拼写检查器及其基本组成部分。

拼写检查器使用概率理论来确定应建议哪个词作为纠正。它会选择使条件概率 P(c∣w)P(c|w) 最大的候选词 cc,其中 ww 是原始词。数学上可表示为:

arg maxc ∈ candidates P(c∣w)\underset{c \ \in \ \text{candidates}} { \text{arg\ max}} \ P(c|w)

对于所有候选词,我们计算将词 ww 纠正为 cc 的概率。在对所有候选词进行计算后,返回具有最高概率的候选词 cc。

如果我们应用贝叶斯定理(Bayes' Theorem),其表达式为:

P(A∣B)=P(A)P(B∣A)P(B)P(A|B) = \frac{P(A)P(B|A)}{P(B)}

那么,我们可以将上述条件概率重写为:

arg maxc ∈ candidates P(c)P(w∣c)\underset{c \ \in \ \text{candidates}} { \text{arg\ max}} \ P(c) P(w|c)

我们可以将这一过程分解为四个模型,并系统地分别编程实现,从而构建一个拼写检查器。

  • 候选模型(Candidate model):考虑作为正确拼写的合法候选词,即 c ∈ candidatesc \ \in \ \text{candidates}

  • 语言模型(Language model):候选词 cc 在英文文本中出现的概率 P(c)P(c)。例如,“the”约占英文文本的 7%7\%,因此 P(the)=0.07P(\text{the}) = 0.07

  • 错误模型(Error model):当作者本意是 cc 时,在文本中实际输入为 ww 的概率 P(w∣c)P(w|c)

  • 选择机制(Selection mechanism):选择使条件概率最大的候选词,即 arg max\text{arg\ max} 所对应的 cc

结论

候选模型