我有一个问题,我们可以通过将 e.d 值除以两个字符串的长度来标准化编辑距离吗?
我问这个问题是因为,如果我们比较两个长度不等的字符串,两个长度之间的差异也会被计算在内。
例如:
ed('有一个', '有一个球') = 4 和 ed('有一个', '有一个球是圆的') = 15。
如果我们增加字符串的长度,即使它们相似,编辑距离也会增加。
因此,我无法设置一个值,一个好的编辑距离值应该是多少。
是的,标准化编辑距离是将字符串之间的差异放在单一尺度上从“相同”到“没有共同点”的一种方法。
有几点需要考虑:
- 归一化距离是否能更好地衡量字符串之间的相似性取决于应用程序。如果问题是“这个单词拼写错误的可能性有多大?”,规范化是一种方法。如果是“自上一个版本以来此文档发生了多少变化?”,原始编辑距离可能是更好的选择。
- 如果你希望结果在范围内
[0, 1]
,您需要将距离除以给定长度的两个字符串之间的最大可能距离。那是,length(str1)+length(str2)
为了濒海战斗舰距离 https://en.wikipedia.org/wiki/Longest_common_subsequence_problem and max(length(str1), length(str2))
为了编辑距离 https://en.wikipedia.org/wiki/Levenshtein_distance.
- 归一化距离不是度量,因为它违反了三角不等式 https://en.wikipedia.org/wiki/Triangle_inequality.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)