Hallo Leute,
bin neu hier im Forum und möchte zu beginn gleich eine Frage stellen:
Ich stehe vor dem Problem,dass ich zwei Strings vergleichen will. Bin auch auf den sog. Levenshtein-Algorithmus gestoßen um ein "Ähnlichkeitsmaß" für die Strings zu bekommen.
Für eine spezielle Anwendung möchte ich jetzt jedoch diesen Algorithmus abändern, so dass EINE Einfügung eines Zeichens quasi "erlaubt" ist und trotzdem 100% Ähnlichkeit herauskommen.
Bsp: String 1: Teststring String 2: Tststring => 100% Ähnlichkeit
als Vorlagecode habe ich dieses Snippet hier verwendet:
Fuzzy Suche
Es benutzt, soweit ich mich informiert habe die "dynamische Programmierung"
Habe schon ein bisschen rumprobiert, aber bekomme es nicht hin, dass nur eine Einfügung (also die Abweichung von den Strings zu einem Buchstaben) tolertiert wird.
Über Hilfestellungen und/oder Tipps wäre ich dankbar! 👍
Eyegor
Ich würde sagen: Prüfe Länge von s1 und von s2 - ist der unterschied 1, berechne die Levenshtein Distanz und prüfe, ob das ergebnis auch 1 ist, wenn ja, dann gib 100% zurück.
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Danke für die Antwort!
Das ist ein guter Ansatz, den habe ich auch schon erdacht, aber leider können zum Vergleichen auch Strings in Frage kommen, die zwar die gleiche Länge haben, aber dennoch komplett anderen Inhalt haben...
Bei denen soll der Algorithmus dann eben die entsprechende Distanz berechnen
Und wo ist das Problem?
Du kannst ja wenn es eben nicht LevDist = 1 und Längenunterschied = 1 hat einfach normal die LEvenshtein-Dist berechnen (bzw. nutzen) und einen %-Wert generieren
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Dankeschön!
Hab das grade irgendwie falsch interprätiert... Natürlich, so geht es!
Vielen Dank! 👍