String Ähnlichkeit -> Levenshtein Abstand

Ich verwende den Levenshtein-Algorithmus, um die Ähnlichkeit zwischen zwei Zeichenfolgen zu ermitteln. Dies ist ein sehr wichtiger Teil meines Programms, daher muss es effektiv sein. Das Problem ist, dass der Algorithmus die folgenden Beispiele nicht als ähnlich ansieht:

CONAIR
AIRCON

Der Algorithmus gibt einen Abstand von 6 zurück. Für dieses Wort mit 6 Buchstaben (Sie sehen das Wort mit der höchsten Buchstabenanzahl) beträgt der Unterschied 100% => die Ähnlichkeit beträgt 0%.

Ich muss einen Weg finden, um die Ähnlichkeiten zwischen zwei Saiten zu finden, aber auch Fälle wie die, die ich zuvor vorgestellt habe, berücksichtigen.

Gibt es einen besseren Algorithmus, den ich verwenden kann? Oder was empfehlen Sie mir?

EDIT: Ich habe mir auch den "Damerau-Levenshtein" -Algorithmus angesehen, der Transpositionen hinzufügt. Das Problem ist, dass diese Transpositionen nur für benachbarte Zeichen (und nicht für eine Anzahl von Zeichen) gelten.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage