我一直在使用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