Ho lavorato con Double Metaphone e Caverphone2 per confronti con String e funzionano bene su nomi, indirizzi, ecc. (Caverphone2 funziona meglio per me). Tuttavia, essi producono troppi falsi positivi quando si arriva a valori numerici, come numeri di telefono, indirizzi IP, numeri di carte di credito, eccNumeri di corrispondenza fuzzy
Così ho guardato gli algoritmi Luhn e Verhoeff e descrivono in sostanza quello che Voglio, ma non del tutto. Sembrano validi in fase di validazione, ma non sembrano costruiti per la corrispondenza fuzzy. C'è qualcosa che si comporta come Luhn e Verhoeff, che potrebbe rilevare errori a una cifra e errori di trasposizione che coinvolgono due cifre adiacenti, per scopi di codifica e confronto simili agli algoritmi di stringa fuzzy?
Mi piacerebbe codificare un numero, quindi confrontarlo con altri 100.000 numeri per trovare corrispondenze strettamente identiche. Quindi qualcosa come 7041234 corrisponderebbe a 7041324 come possibile errore di trascrizione, ma qualcosa come 4213704 non lo farebbe.
Ingenua domanda: non sarebbe Levenshtein distanza farlo? –
Sì, potrebbe funzionare molto bene. In particolare la distanza di Damerau-Levenshtein potrebbe essere esattamente quello che sto cercando! – JeffG