Ich arbeite mit Fuzzy Wuzzy in Python und während es behauptet, dass es mit einem Levenshtein Abstand arbeitet, finde ich, dass viele Strings mit einem einzigen Zeichen unterschiedliche Ergebnisse produzieren. Beispielsweise.Pythons Fuzzywuzzy liefert unvorhersagbare Ergebnisse
>>>fuzz.ratio("vendedor","vendedora")
94
>>>fuzz.ratio("estagiário","estagiária")
90
>>> fuzz.ratio("abcdefghijlmnopqrst","abcdefghijlmnopqrsty")
97
>>>fuzz.ratio("abc","abcd")
86
>>>fuzz.ratio("a","ab")
67
Ich denke, levenshtein Abstand gleich sein sollte, da es ein einzelne Zeichen Abstand in allen Beispielen ist, aber ich verstehe, das ist nicht einfach erreichbar, es irgendeine Art von „Gleichheit Prozentsatz“ ist von einer Art.
Ich habe versucht zu verstehen, wie es funktioniert, aber ich kann nicht zu verstehen scheinen. Meine sehr lange Saite gibt eine 97 und die sehr kurze 67. Ich denke, es würde bedeuten, je größer die Saite ist, desto geringer ist die Auswirkung auf ein einzelnes Zeichen. Jedoch für den "vendedor", "vendedora" und "estagiário", "estagiária" Beispiel ist das nicht der Fall, da letzterer größer als der erstere ist.
Wie funktioniert das?
Ich bin gerade dabei, Benutzereingabe Jobtitel, versuchen, falsch eingegebene Namen mit korrekt eingegebenen Namen usw. zu verbinden gibt es ein besseres Paket für meine Aufgabe?
'fuzz.ratio' gibt einen Prozentsatz der Ähnlichkeit der Strings basierend auf der Levenshtein-Distanz zurück. –