Laden...

Levenshtein-Algorithmus abwandeln: EINE Einfügung eines Zeichens ==> trotzdem 100% Ähnlichkeit

Erstellt von Eyegor vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.343 Views
E
Eyegor Themenstarter:in
3 Beiträge seit 2011
vor 12 Jahren
Levenshtein-Algorithmus abwandeln: EINE Einfügung eines Zeichens ==> trotzdem 100% Ähnlichkeit

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

G
538 Beiträge seit 2008
vor 12 Jahren

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)

E
Eyegor Themenstarter:in
3 Beiträge seit 2011
vor 12 Jahren

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

G
538 Beiträge seit 2008
vor 12 Jahren

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)

E
Eyegor Themenstarter:in
3 Beiträge seit 2011
vor 12 Jahren

Dankeschön!

Hab das grade irgendwie falsch interprätiert... Natürlich, so geht es!

Vielen Dank! 👍