Pracuję z Double Metaphone i Caverphone2 dla porównania String i działają dobrze na takich rzeczach, jak nazwiska, adresy, itp. (Caverphone2 działa najlepiej dla mnie). Jednak produkują zbyt wiele fałszywych alarmów, kiedy dojdziesz do wartości numerycznych, takich jak numery telefonów, adresy IP, numery kart kredytowych itpFuzzy Matching Numbers
Więc szukałem na algorytmach Luhn i Verhoeff i opisują zasadniczo co Chcę, ale nie całkiem. Wydaje się, że są dobre w sprawdzaniu poprawności, ale nie wydają się być budowane dla dopasowania rozmytego. Czy istnieje coś, co zachowuje się jak Luhn i Verhoeff, które mogą wykrywać jednocyfrowe błędy i transpozycję z udziałem dwóch sąsiednich cyfr, do celów kodowania i porównywania podobnych do algorytmów rozmytych ciągów znaków?
Chciałbym zakodować numer, a następnie porównać go z 100 000 innych liczb, aby znaleźć dokładnie identyczne dopasowania. Tak więc coś w rodzaju 7041234 byłoby zgodne z 7041324 jako możliwym błędem transkrypcji, ale coś takiego jak 4213704 nie byłoby.
Naiwne pytanie: Czy odległość Levenshteina nie byłaby wystarczająca? –
Tak, to może zadziałać bardzo dobrze. W szczególności odległość Damerau-Levenshtein może być dokładnie tym, czego szukam! – JeffG