Nau*_*lid 6 algorithm edit-distance ranking string-matching levenshtein-distance
我有一个问题,我们可以用ed值除以两个字符串的长度来归一化levenshtein编辑距离吗?我之所以这样问是因为,如果我们比较两个长度不相等的字符串,那么两个长度之间的差异也将被计算在内。例如:ed('has a','has a ball')= 4,而ed('has a','has a ball the round')=15。如果我们增加字符串的长度,则编辑距离即使它们相似,也会增加。因此,我无法设置一个值,好的编辑距离值应该是多少。
Ant*_*ton 11
是的,归一化编辑距离是一种将字符串之间的差异从“相同”到“没有共同点”的单一标度的方法。
需要考虑的几件事:
[0, 1],则需要将距离除以给定长度的两个字符串之间的最大可能距离。即,length(str1)+length(str2)对于LCS距离和max(length(str1), length(str2))对于Levenshtein距离。小智 5
我成功地使用了以下内容:
len = std::max(s1.length(), s2.length());
// normalize by length, high score wins
fDist = float(len - levenshteinDistance(s1, s2)) / float(len);
Run Code Online (Sandbox Code Playgroud)
然后选择最高分。1.0 表示完全匹配。