【问题标题】:Shortest Levenshtein Distance? Do I need it?最短的 Levenshtein 距离?我需要吗?
【发布时间】:2013-06-24 11:17:41
【问题描述】:

我想在 String[] 中查找 String 以获得查询的最佳匹配。我听说过Levenshtein Distance。但我无法确定我是否需要它。

假设,我有一个String query = "Examples"

String[] arrayStr = new String[] {"The Examples String", "The Example String", "Example", "Examples String", "Example String", "Examplestring"};

现在,我想从String[] 中获得Example 作为最佳匹配。

那么,我需要 Levenshtein Distance 吗?

另外,如果有人能指出我的 Levenshtein Distance for Java 的快速实现,那就太好了。我想检查它是否适用于我拥有的所有类型的字符串。 (基本上我有大约 10k 个字符串可以从 10k 个数组中匹配。)

【问题讨论】:

  • 列文斯坦距离只是您必须添加/删除/更改以将一个刺痛转换为另一个刺痛的字符数量。它并不能真正说明比赛的质量。例如。 “示例”->“非常流行的 sting 操作示例”-> 距离 34 和“示例”->“预期的 & 课”-> 距离 18。我怀疑最短的列文斯坦距离总是会给你最好的匹配
  • @MarcoForberg 你错了,因为确实如此。
  • 好吧,如果你这么说,我想你是对的。从未以这种方式尝试过这种算法。 @Writwick:如果您不想自己实现它,您也可以使用 Apache commons 中的实现 StringUtils: commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/…

标签: java android string levenshtein-distance


【解决方案1】:

是的,Levenshtein Distance 是用于此的 goto 算法。 您可以在以下位置找到包括 Java 在内的多种语言的实现 http://rosettacode.org/wiki/Levenshtein_distance

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-20
  • 1970-01-01
  • 2014-04-14
  • 2014-08-04
  • 2015-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多