0

可能重复:
Java 中的相似性字符串比较

大家好

我正在尝试使用Java找到两个字符串之间的部分匹配,当然,stackoverflow 上有很多问题和答案,但是,这些都不能满足我的要求。我有两个字符串(句子),例如“强大的 Java 编程”和“强大的编程技能”。现在我想测量这两个句子之间的相似度,例如25%而不仅仅是部分匹配= turefalse

谢谢

4

3 回答 3

6

您可以使用Levenshtein distanceJaro-Winkler等字符串距离确定算法。

于 2012-07-02T21:49:08.987 回答
3

只需使用 String API 和您自己的算法。像这样的东西:

public static double similarity(String a, String b) {
  double count = 0;
  String[] words = a.split();
  for(String word : words) {
    if(b.indexOf(word) != -1) {
      count++;
    }
  }
  return count / words.length;
}

问题是这不太正确——你想更好地查看 B 中的单词。我只是想让你大致了解你可能想要拥有的方法和结构。你还想清理你的输入——把它全部小写,删除标点符号,谁知道呢。

于 2012-07-02T21:49:23.353 回答
1

你可以看看这个库:SimMetrics

SimMetrics 是一个相似度度量库,例如从编辑距离(Levenshtein、Gotoh、Jaro 等)到其他度量(例如 Soundex、Chapman)。

于 2012-07-02T21:51:29.560 回答