He estado trabajando con Double Metaphone y Caverphone2 para las comparaciones de cadenas y funcionan bien en cosas como nombres, direcciones, etc. (Caverphone2 funciona mejor para mí). Sin embargo, producen demasiados falsos positivos cuando llega a valores numéricos, como números de teléfono, direcciones IP, números de tarjetas de crédito, etc.Fuzzy Matching Numbers
Así que he observado los algoritmos Luhn y Verhoeff y describen esencialmente qué Quiero, pero no del todo. Parecen buenos para la validación, pero no parecen estar diseñados para la coincidencia difusa. ¿Hay algo que se comporte como Luhn y Verhoeff, que podría detectar errores de un dígito y errores de transposición que involucran dos dígitos adyacentes, con fines de codificación y comparación similares a los algoritmos de la secuencia difusa?
Me gustaría codificar un número, luego compararlo con otros 100.000 números para encontrar coincidencias idénticas. Entonces algo como 7041234 podría coincidir con 7041324 como un posible error de transcripción, pero algo como 4213704 no lo haría.
pregunta ingenua: ¿No lo haría Levenshtein distancia? –
Sí, eso podría funcionar muy bien. ¡En particular, la distancia Damerau-Levenshtein podría ser exactamente lo que estoy buscando! – JeffG