Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

拼写纠错与噪声信道

原始 PDF

**ALGERNON:**可是,我亲爱的 Cecily,我从来没有给你写过信。

**CECILY:**你用不着提醒我这一点,Ernest。我清楚地记得,我不得不替你写信。我总是每周写三次,有时还更多。

**ALGERNON:**哦,让我读读那些信吧,Cecily?

**CECILY:**哦,那绝对不行。它们会让你自负得不得了。我们解除婚约以后你写给我的那三封信,是那么优美,拼写又是那么糟糕;直到现在,我读起来还是忍不住有点想哭。

Oscar Wilde,The Importance of Being Earnest

和 Oscar Wilde 笔下非凡的 Cecily 一样,上个世纪之交的许多人都在琢磨拼写。Gilbert and Sullivan 的作品中有不少例子:The Gondoliers 中的 Giuseppe 担心私人秘书“拼写不稳”,Iolanthe 中的 Phyllis 则“会拼出她所用的每一个词”。Thorstein Veblen 在 1899 年的经典著作 The Theory of the Leisure Class 中解释说,英语这套“古旧、繁琐而低效”的拼写系统,其主要目的之一,就是难到足以检验一个人是否属于有闲阶级。

无论拼写具有何种社会作用,可以肯定的是,我们当中像 Cecily 的人远多于像 Phyllis 的人。人工键入文本中的拼写错误率估计差异很大:认真重录已经印刷的文本时约为 1%–2%,网络查询中则可达 10%–15%。

本附录介绍拼写错误的检测和纠正。无论是在手机上发消息、发送电子邮件、撰写长文档,还是在网络上查找信息,修正拼写错误都是现代写作不可分割的一部分。现代拼写纠错器并不完美——自动纠错闹笑话是网络上的常见娱乐——但几乎所有依赖键盘输入的软件都在使用它们。

拼写纠错通常从两个角度考虑。非词拼写纠错(non-word spelling correction)检测并纠正产生非词的错误,例如把 giraffe 拼成 graffe。与之相对,实词拼写纠错(real-word spelling correction)要检测并纠正那些碰巧产生真实英语词的拼写错误。这类错误可能来自意外形成实词的排印错误——插入、删除或换位,如把 three 写成 there——也可能来自认知错误,即写作者用错同音词或近同音词的拼写,如把 desert 写成 dessert,或把 peace 写成 piece

检测非词错误时,只需查找词典中没有的词;例如 graffe 不会出现在词典里。词典越大越好,现代系统经常使用从网络生成的超大词典。纠正非词错误时,首先生成候选,即字母序列与错误形式相似的真实词。graffe 的候选可以包括 giraffegrafgaffegrailcraft。随后,用来源词与表面错误形式之间的距离度量对候选排序。我们希望该度量符合这样的直觉:giraffe 在拼写上比 grail 更接近 graffe,所以更可能是来源词。第 2 章的最小编辑距离算法会在这里发挥作用。此外,我们还希望更偏好高频词,或在错误上下文中更可能出现的词。下一节介绍的噪声信道模型能把这一直觉形式化。

实词拼写错误检测困难得多,因为输入文本中的任何词都可能是错误。不过,仍然可以利用噪声信道为用户键入的每个词 ww 寻找候选,并选出最可能符合用户原始意图的纠正形式。