字符串部分匹配

时间:2012-07-02 21:45:47

标签: java string partial matching

  

可能重复:
  Similarity String Comparison in Java

大家好

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

感谢

3 个答案:

答案 0 :(得分:6)

您可以使用字符串距离确定算法,例如Levenshtein distanceJaro-Winkler

答案 1 :(得分: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中的单词。我只是想让你大致了解一下你的方法和结构可能想拥有。您还需要清理您的输入 - 将其全部小写,删除标点符号,谁知道。

答案 2 :(得分:1)

您可以查看此库:SimMetrics

  

SimMetrics是一个相似度量标准库,例如从编辑距离   (Levenshtein,Gotoh,Jaro等)其他指标,(例如Soundex,   查普曼)。