检测拼写错误的单词

9

我有一个机场名称列表,我的用户可以输入一个机场名称来选择它进行进一步处理。

如果出现拼写错误,您将如何处理并呈现建议列表?


http://en.wikipedia.org/wiki/Fuzzy_string_searching - Mehrdad Afshari
8个回答

7

4
Levenshtein距离计算起来非常昂贵,O(n^2),对字典中的每个单词计算Levenshtein距离是不可行的。 - Wedge
4
在这种情况下,字典只是机场列表。全球只有几百个著名的机场。 - SingleNegationElimination
@Wedge 对字典进行哈希处理不一定会降低时间复杂度,但可以极大地提高效率。 - Ryan

4

1

在你的代码中使用拼写检查。单词列表应该只包含正确拼写的机场名称。

这不是一个很好的方法。你应该选择提供自动完成选项或下拉菜单的控件,就像其他人建议的那样。

如果你的技术支持,可以使用 AJAX。


1

我知道这不是你要求的,但如果这是一个重要的应用程序(例如预订机票),获取正确的机场非常重要,那么您可能希望有一个确认阶段,以确保您选择了正确的机场。例如,曾经有人因为选择了错误的悉尼而购买了错误的机票。


0

最好让用户从机场名称列表中选择,而不是让他们自己输入。这样就不会出现任何错误。


0

虽然这不会立即帮助您,但您可以跟踪拼写错误,并查看当输入正确名称时他们最终输入的是哪个名称。这样,您就可以跟踪最常见的拼写错误并提供最佳选项。


0

除了Kevin的建议外,如果您使用带有JavaScript自动完成功能的输入框(例如jquery autocomplete),可能会是最佳选择。

编辑:丹麦赢了我:(


我尝试取消踩但系统禁止这样做。主要原因是:求你了,不是每个人都在写jQuery/JavaScript/HTML。我们需要的是无关语言的人,无关语言的。 - Michal Sznajder
有些人想要一个简单的解决方案来完成简单的任务。我为一个简单的任务提供了一个简单的解决方案。每个问题都有多种可用的解决途径。 - Jayrox

0

可能有现成的拼写检查库可供使用。编写此类代码并使其良好运行是非常复杂的。如果您确实想自己编写,请参考字典 trie

一种可能有效的方法是生成一个大量可能出错的单词及其更正的列表(这里有一个Python 实现),您可以缓存以提高性能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接