现在各大流行的搜索引擎几乎都具备一个功能,那就是提供拼写纠错功能。用户将查询的关键词提交给搜索引擎之后,搜索引擎便开始分析用户的输入,检查用户的拼写是否有错误,如果有的话,给出正确的拼写建议。也就是说,搜索引擎的拼写纠错功能,要完成两部分的工作,首先,对用户输入的查询进行处理,判断是否有拼写错误,接着,对于有拼写错误的查询输入,给出正确词汇的提示。因为中文的拼写纠错涉及到中文分词等复杂逻辑,所以本文只对英文的拼写纠错进行讨论。
1 英文单词纠错法
常见的英文单词纠错法,主要有以下几种:误拼词典法、最小编辑距离法、词干法,N-gram法和基于规则的技术等,下面我们对这些英文单词纠错法逐个进行介绍。
(1)误拼字典法。这种方法可以理解成穷举法,通过收集大规模真实文本中拼写出错的英文单词并给出相应的正确拼写,建造一个无歧义的误拼字典。在进行英文单词拼写检查时,查找误拼字典,如命中,则说明该单词拼写有误,该词的正确拼写字段为纠错建议。比如在搜索引擎的实现中,通过记录日志的形式,把所有用户的输入都记录下来,提取有拼写错误的输入,形成误拼词典。该方法的特点是算法简单,效率高。但英文拼写错误具有随机性,很难保证误拼字典的无歧义性和全面性,因此查准率低、校对效果差;而且,对于搜索引擎用户海量的误拼输入,空间复杂度也是需要考虑的问题。
(2)最小编辑距离法。通过计算误拼字符串与词典中某个词间的最小编辑距离来确定纠错候选词。所谓最小编辑距离是指将一个词串转换为另一个词串所需的最少的编辑操作次数。在编辑操作中,可以将单次的编辑动作归纳为三种:插入字符、删除字符和替换字符;考虑到在实际计算机输入过程中,字符的颠倒异位也是常见的错误,我们将颠倒异位也算作一种编辑动作。还有人提出了反向最小编辑距离法,这种方法首先对每个可能的单个错误按照编辑距离进行搜索,生成一个候选集,然后,通过查词典看哪些是有效的单词,并将这些有效的单词作为误拼字符串的纠错建议。
(3)词干法。通过构建词干词典,在英文单词出现错误时,先抽取出该错误单词的词干,然后再去查词干词典,将词典中与该单词具有相同词干的正确单词作为该单词的纠错建议。这种方法主要的难度在于构建词干词典上,需要对几乎所有的英文单词都进行分析,提取出每个单词的词干,或者称为骨架词;这种实现的工作量是巨大的,而且词干的选择非常重要,每个词干要有很好的区分度,才能给用户给出良好的纠错建议。