在多种应用好比word中都有拼写检查和校订功能,具体步骤分为:ide
- 拼写错误检测
- 拼写错误校订:
- 自动校订:hte -> the
- 建议一个校订
- 建议多个校订
拼写错误类型:
- Non-word Errors非词错误:即写了一个不是单词的词,好比graffe并不存在,应校订为giraffe
- 检测方法:认为任一不在字典中的词都是一个非词错误,所以字典自己越大越好
- 校订方法:为错误词产生一个候选,其是跟错误词类似的真词,而后选择加权编辑距离最短或者信道噪声几率最高的那个词。
- Real-word Errors真词错误:
- 印刷错误:three->there
- 认知错误(同音异形字):piece -> peace; too -> two
- 检测方法:因为每一个真词可能都是一个错误词,所以咱们为每一个词都产生一个候选集,包括该词自己、跟该词发音或拼写类似的词(编辑距离为1的英文单词)、同音异形词。
- 校订方法:按照信道噪声或者分类器选择最好的候选词。
1、非词错误校订
基本方法:使用The Noisy Channel Model of Spelling信道噪声模型学习
假设初始词通过一个噪声信道输出一个噪声词,即为可能的错误词,咱们旨在对该噪声信道建模,从而使得在解码阶段可以根据噪声词获得一个猜想词,其跟初始词一致,即找到错误词正确的拼写。测试
而信道噪声咱们视之为一个几率模型,以下:this
输入:一个错误词xidea
旨在:找到一正确的词wspa
要求:3d
P(w)称为语言模型表示单词w为一个单词的几率,P(x|w)称为信道几率(或错误几率)表示若是是w,x是w拼错的词的几率。blog
例子:three
设:有一个错误词“acress”开发
1. 产生候选词:
- 类似拼写词:跟错误词之间小的编辑距离
- 采用Damerau-Levenshtein edit distance,计算的操做包括:插入、删除、置换和两个相邻字母之间的换位transposition,
- 如下是与“acress”编辑距离=1的列表:
- 80%错误词与正确词之间的编辑距离为1,大部分的编辑距离都小于等于2
- 容许插入空格或者连字符-:thisidea -> this idea; inlaw -> in-law
- 类似发音词:跟错误词的发音之间小的编辑距离
2. 选择最优候选词:套用公式
a) 计算语言模型P(w):能够采用以前说过的任一语言模型,好比unigram、bigram、trigram,大规模拼写校订也能够采用stupid backoff。
b) 计算信道几率P(x|w):首先得到多个单词拼错的列表,而后计算混淆矩阵,而后按照混淆矩阵计算信道几率。
设:
有:
x和y为任一字母a-z,计数count表示后面那张状况发生的次数,其中插入和删除的状况都依赖于前一个字符,sub[x,y]的混淆矩阵结果以下:
而后按照上述混淆矩阵计算信道几率:
c) 总体几率计算实例以下:
也能够选用语言模型计算总体几率,好比:使用bigram或trigram语言模型
3. 结果评估方法:
使用拼写错误测试集:
2、真词校订
25-40%的拼写错误都是真词错误。
具体步骤:
实例:
为了方便起见,咱们假定每一个句子中只有一个拼写错误,因此有:
要求从中找到一个组合序列使得序列的几率最高。
计算P(W):
方法1:语言模型,好比unigram、bigram等
方法2:信道模型:跟“一”中的方法同样,但还须要额外计算没有错误的几率P(w|w),由于候选集中还包括自身词。
计算P(w|w):其彻底依赖于应用自己,表示一个词可能被拼错的几率,不一样的应用几率不一样:
3、经典系统state of art
1. HCI issues in spelling
- 若是对校订结果很是自信:自动校订
- 通常自信:给定一个最好的校订方案
- 一点点自信:给定一个校订方案的列表
- 没有自信:给错误词作出标记,不校订
2. 经典噪声信道
实际应用中,信道几率和语言模型几率的权重并不是一致,而是采用以下的计算公式:
而后在开发测试数据集中训练学习lambdas的值。
3. 语音错误模型
针对有类似发音的错误拼写的纠正
a) Metaphone, used in GNU aspell
- 将错误拼写转换为变音发音,规则以下:
- 而后找到跟错误拼写的发音的编辑距离为1-2的词
- 给结果列表打分,按照:
- 候选词跟错误词之间的加权编辑距离
- 候选词的发音与错误词发音的编辑距离
4. 信道模型的升级版
a) 容许更多的操做(Brill and Moore 200)
b) 在信道中结合发音(Toutanova and Moore 2003)
c)在计算信道几率P(x|w)时考虑更多的影响因素
5. 基于分类器的真词拼写校订方法
- 考虑更多的特征
- 针对特定词对创建分类器