转换两个字符串,使输入字符串之间的距离在输出字符串之间的距离“反映”?

时间:2012-04-05 14:39:31

标签: algorithm hash string-matching

我有一个很长的用户标识符列表。每次带有HTTP请求时,标识符可能不完全相同,因此我使用模糊字符串比较来验证用户。由于这个原因,我无法对标识符进行散列,因为我的模糊字符串比较算法不适用于散列值,因为即使稍微不同的普通文本在散列时也会产生完全不同的值。现在是否存在一些算法algx,使得距离(s1,s1')在某种程度上与距离(algx(s1),algx(s1'))成比例?或者还有其他方法可以解决这个问题吗? 注意:此意义上的距离意味着将一个文本转换为另一个文本所需的编辑量。

3 个答案:

答案 0 :(得分:0)

您可以使用类似Levenshtein distance的内容来衡量两个字符串之间的差异。还有一个同名的PHP function

答案 1 :(得分:0)

听起来像是在寻找locality-sensitive hashing

答案 2 :(得分:0)

一种解决方案是保持每个字母的计数并比较计数数组。计数之间的不匹配意味着字符串肯定不相似。