EMZETT.
Login

Levenshtein-Distanz

Kurz: Die Levenshtein-Distanz zählt die minimale Zahl an Einfügungen, Löschungen und Ersetzungen einzelner Zeichen, um ein Wort in ein anderes zu verwandeln.

Genauer: „kitten” → „sitting” hat die Distanz 3 (k→s, e→i, g anhängen). Sie ist die Grundlage für Rechtschreibkorrektur, „Meintest du …?” und unscharfe Suche.

Im Detail

  • Verfahren: Dynamische Programmierung mit einer Tabelle d[i][j] für die Distanz der ersten i Zeichen von A und der ersten j Zeichen von B.
  • Rekurrenz: d[i][j] = min(d[i-1][j]+1, d[i][j-1]+1, d[i-1][j-1] + (a[i]≠b[j])).
  • Aufwand: O(m·n) Zeit, mit Rollen von nur zwei Zeilen O(min(m, n)) Speicher.
  • Varianten: Damerau-Levenshtein zählt auch das Vertauschen benachbarter Zeichen. Die Hamming-Distanz gilt nur für gleich lange Wörter.
  • Praxis: Für große Wörterbücher nutzt man Indexe wie BK-Bäume oder n-Gramme, statt jedes Wort einzeln zu vergleichen.

Siehe auch: Textsuche-Algorithmen