c - 如何找到两个单词相差多少距离>>有没有最短的方法

标签 c algorithm data-structures levenshtein-distance edit-distance

我读过 Levenshtein distance 关于计算两个不同单词之间的距离。

我有一个源字符串,我必须将它与所有 10,000 个目标词匹配。应返回最接近的单词。

问题是我已经给出了一个包含 10,000 个目标词的列表,输入的源词也很大....那么在这里应用什么最短和高效的算法。每 n 个组合的编辑距离计算(蛮力逻辑)将非常耗时。

欢迎任何提示或想法。

最佳答案

我想这在一定程度上取决于单词的结构。例如this guy improved the implementation基于这样一个事实,他按顺序处理他的单词并且不重复计算公共(public)前缀。但是,如果您的 10,000 个单词都完全不同,那对您没有多大好处。它是用 python 编写的,因此可能需要一些工作才能移植到 C。

还有一些有点homebrew algorithms在那里(我的意思是没有关于它的官方论文)但这可能会成功。

关于c - 如何找到两个单词相差多少距离>>有没有最短的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5528909/

相关文章:

java - 生成字符数组的所有排列

algorithm - 如何统计最后一秒、一分钟、一小时的请求数?

algorithm - 给定两个未排序的数组,找到 A[i] > X 和 B[i] > Y 的对数

c - 从文件中读取值 - 有些是正确的,有些是不正确的

c - 使用方法链时释放指针的正确方法

c++ - 相同 '==' 条件下的两个 'if' 相等运算符未按预期工作

java - 从一个连续字符串中提取重复属性

c - 如何打开与程序位于同一目录中的 c 文件?

algorithm - 无法理解解决方案(Turing Machine & Reduction)

algorithm - 我在哪里可以找到分析历史股票价格的示例算法?