Word建议计划

时间:2011-03-27 17:42:19

标签: ajax algorithm word search-suggestion

建议我处理单词更正/建议系统的程序或方法。   - 假设输入为'Suggset',它应该建议'建议'。

提前完成。我正在使用python和AJAX。请不要向我推荐任何jquery模块,因为我需要算法部分。

2 个答案:

答案 0 :(得分:1)

自己制作其中一个需要做很多工作。有一个非常好的拼写检查器库用python编写,名为PyEnchant,我发现它非常好。以下是他们网站上的一个例子:

>>> import enchant
>>> d = enchant.Dict("en_US")
>>> d.check("Hello")
True
>>> d.check("Helo")
False
>>> d.suggest("Helo")
['He lo', 'He-lo', 'Hello', 'Helot', 'Help', 'Halo', 'Hell', 'Held', 'Helm', 'Hero', "He'll"]
>>>

答案 1 :(得分:1)

解决您的问题的算法称为“编辑距离”。给定某些语言中的单词列表以及错误输入/不完整单词,您需要从最接近它的给定字典中构建单词列表。例如,“suggest”和“suggset”之间的距离等于2 - 您需要一次删除和一次插入。作为优化,您可以为每个操作分配不同的权重 - 例如,您可以说替换比删除更便宜,并且在键盘附近的两个字母之间的替换(例如“v”和“b”)比那些更便宜相距甚远(例如'q'和'l')。

1964年出现了拼写和校正算法的第一个描述。1974年,Robert A. Wagner和Michael J. Fischer在论文中提出了一种基于动态规划的高效算法“String-to-string correction problem”。任何算法书都有或多或少的详细处理。

对于python,有一些库可以做到这一点:Levenshtein distance library 另请查看此earlier discussion on Stack Overflow