大家好
我试图使用 Java 找到两个字符串之间的部分匹配,当然,stackoverflow上有很多问题和答案,但是,这些都不符合我的要求。 我有两个字符串(句子),例如,“强大的java编程”和“强大的编程技巧”。 现在我想测量这两个句子之间的相似程度,如 25%,而不仅仅是部分匹配 = ture 或 false 。
感谢
答案 0 :(得分:6)
您可以使用字符串距离确定算法,例如Levenshtein distance或Jaro-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, 查普曼)。