1. 引言
拼写检查是一个非常底层的自然语言处理方面的任务。多用在信息检索、输入法等,其实也可以扩展到寻找同义词等相关领域。这里我们主要针对英文、中文中的拼写检查的方法,进行一个简要的概述,因为这方面是一个很热门的研究方向,所以材料很多,我们只是进行入门介绍。
2. 英文拼写纠错
无论是英文拼写纠错还是中文拼写纠错,都需要两部分,一个是发现错误,一个是纠正错误。这里我们提供2种匹配方法。
2.1 基于字典的字符匹配
2.1.1 发现拼写错误
假设说,我们有一个非常完备的包含了所有正确单词的字典,那么我们只需要对输入的单词与字典中的单词一一比较,即可发现有无错误了。这是非常简单的想法。
但是如果这个词典数量非常大,在我入手的语料中,曾经入手过包含2000万单词的语料,那么这个数量如果进行一一比较的话,那速度是可以想象的。不过如果使用Trie树(我们之前讲过),那么速度可以显著性提升。也就是一个类似有限状态自动机的东西。每一个结点为27个子树(分别是26个英文字母和一个空格作为结束符),其用户在输入的时候,就同时进行路径行走,这样输入完毕就可以获得最终的单词了。如果输入的单词所走的路径不存在了,那么就提