Berechne die Levenshtein-Distanz zwischen zwei Strings und sieh, wie viele Zeichenänderungen benötigt werden. Direkt im Browser, komplett clientseitig.
Dieses Beispiel berechnet die Levenshtein-Distanz aus den String-Tools, vorausgefüllt mit dem klassischen Vergleich von „kitten“ zu „sitting“. Gib zwei Zeichenfolgen ein und sieh die Mindestanzahl einzelner Zeichenänderungen, die nötig ist, um eine in die andere umzuwandeln.
Die Levenshtein-Distanz nutzt dynamische Programmierung. Es wird eine Matrix aufgebaut, in der jede Zelle die Editierdistanz zwischen Teilzeichenfolgen darstellt. Der Algorithmus füllt die Matrix, indem er an jeder Position drei Operationen betrachtet:
| Operation | Beschreibung | Kosten |
|---|---|---|
| Einfügen | Zeichen hinzufügen | 1 |
| Löschen | Zeichen entfernen | 1 |
| Ersetzen | Zeichen austauschen | 1 (wenn verschieden) |
Der Endwert in der Zelle unten rechts der Matrix ist die Levenshtein-Distanz.
Das klassische Beispiel erfordert 3 Änderungen:
Distanz = 3.
Der Algorithmus läuft in O(m x n) Zeit und Speicher, wobei m und n die Längen der beiden Zeichenfolgen sind. Für die meisten praktischen Textvergleiche (unter 1000 Zeichen) läuft das im Browser sofort.
Mehrere Algorithmen passen Levenshtein für bestimmte Anwendungsfälle an:
Die maximale Distanz ist die Länge der längeren Zeichenfolge, was passiert, wenn eine Zeichenfolge komplett leer ist und du jedes Zeichen einfügen musst. Für zwei Zeichenfolgen der Längen m und n beträgt die Distanz höchstens max(m, n).
Der Vergleich unterscheidet Groß- und Kleinschreibung. Hello und hello haben die Distanz 1 (der H/h-Unterschied). Wandle für einen groß-/kleinschreibungsunabhängigen Vergleich beide Zeichenfolgen zuerst in Kleinbuchstaben um.
Ja. Die Levenshtein-Distanz wird in der Bioinformatik häufig verwendet, um die Ähnlichkeit zwischen DNA- oder Proteinsequenzen zu messen. Jedes Zeichen steht für ein Nukleotid oder eine Aminosäure, und die Editierdistanz spiegelt die Anzahl der Mutationen zwischen den Sequenzen wider.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.