彼得·诺维格(Peter Norvig)有一篇很好的文章,介绍如何实现拼写校正器。从根本上讲,这是一种蛮力尝试具有给定编辑距离的候选字符串。(以下是一些技巧,您可以使用布隆过滤器和更快的候选哈希来提高拼写校正器的性能。)
拼写检查器的要求较弱。您只需找出字典中没有单词。您可以使用布隆过滤器来构建拼写检查器,从而减少内存消耗。乔恩·本特利(Jon
Bentley)在《Programming Pearls》中描述了一个古老的版本,使用64kb的英语词典。
甲BK-树是一种替代方法。一篇不错的文章在这里。
Levenshstein距离不是拼写检查器的正确编辑距离。它只知道插入,删除和替换。缺少换位,并为1个字符的换位生成2(即1个删除和1个插入)。Damerau–Levenshtein距离是正确的编辑距离。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)