相似度得分-Levenshtein
我用Java实现了Levenshtein算法,现在可以通过算法进行更正,也就是成本。这确实有一点帮助,但并没有太大帮助,因为我希望将结果表示为百分比。
所以我想知道如何计算那些相似点。
我也想知道你们的人民是如何做的以及为什么。
回答:
两个字符串之间的Levenshtein距离定义为将一个字符串转换为另一个字符串所需的最小编辑次数,允许的编辑操作为单个字符的插入,删除或替换。(维基百科)
- 因此,Levenshtein距离为0意味着:两个字符串相等
- Levenshtein的最大距离(所有字符不同)为max(string1.length,string2.length)
因此,如果需要一个百分比,则必须使用该百分比来缩放。例如:
“ Hallo”,“ Hello”-> Levenstein距离1这两个字符串的最大Levenstein距离为:5.因此20%的字符不匹配。
String s1 = "Hallo";String s2 = "Hello";
int lfd = calculateLevensteinDistance(s1, s2);
double ratio = ((double) lfd) / (Math.max(s1.length, s2.length));
以上是 相似度得分-Levenshtein 的全部内容, 来源链接: utcz.com/qa/410273.html