拼写纠错

拼写纠错(Spelling Correction),又称拼写检查(Spelling Checker),往往被用于文字处理软件、输入法和搜索引擎。

 

1 拼写错误类型:

1)None-word拼写错误

指词本身就不合法,如错误的将“giraffe”写成“graffe”

2)Real-word拼写错误

拼写错误后的词仍然是合法的情况,如将“there”错误拼写为“three”(形近),将“peace”错误拼写为“piece”(同音),将“two”错误拼写为“too”(同音)。

 

2 拼写纠错方法

查找词典中与error最近似的word,常见的方法有smallest edit distance和Highest noisy channel probability。

基于Noisy Channel Model的拼写纠错

据统计,80%的拼写错误编辑距离为1,几乎所有的拼写错误编辑距离小于等于2。可以对词生成编辑距离为1,2 的字符串,作为拼写建议候选集。此时,我们希望选择概率最大的词作为最终的拼写建议,基于噪声信道模型思想,需要进一步计算P(w)和P(x|w)。

拼写纠错

 

Noisy Channel Model即噪声信道模型,被用于语音识别、拼写纠错、机器翻译、中文分词、词性标注、音字转换等众多应用领域。形式如下图所示:

拼写纠错

噪声信道试图通过带噪声的输出信号恢复输入信号,形式化定义为:

拼写纠错

应用于拼写纠错任务的流程如下:

拼写纠错

noisy word 被看作original word通过noisy channel转换得到,现在已知noisy word(用x表示)如何求得最大可能的original word(用w表示),公式如下:

拼写纠错

P(w)为先验概率,P(x|w)为转移概率,二者可以基于训练语料库建立语言模型和转移矩阵(又称error model,channel model)得到。