我一直在使用Double Metaphone和Caverphone2进行字符串比较,它们在名称,地址等方面的工作很好(Caverphone2对我来说最合适)。然而,它们产生太多的误报,当你到的数值,如电话号码,IP地址,信用卡号码等模糊匹配编号
所以我看了看Luhn和Verhoeff算法和他们本质上描述什么我想要,但不完全。他们似乎擅长验证,但似乎并不适合模糊匹配。有没有像Luhn和Verhoeff那样的行为,可以检测到包含两个相邻数字的单位错误和转置错误,用于类似于模糊字符串算法的编码和比较目的?
我想对一个数字进行编码,然后将其与100,000个其他数字进行比较,以找到完全相同的匹配。所以像7041234这样的东西可能会与7041324匹配成为一个可能的转录错误,但是像4213704这样的东西不会。
天真的问题:Levenshtein距离不会那么做吗? – 2011-12-28 15:56:21
是的,这可能工作得很好。特别是Damerau-Levenshtein距离可能正是我所期待的! – JeffG 2011-12-28 16:21:02