Database Reference
In-Depth Information
Konvertierung von x 1 .. i 1 nach y 1 .. j 1 . Sind x i und y j nicht gleich, so bestehen
ausgehend von den erlaubten Edit-Operationen drei Möglichkeiten 32 :
1. Löschen von x i mit Kosten von 1 und Addition der Edit-Distanz für die
Konvertierung von x 1 .. i 1 nach y 1 .. j .
2. Einfügen von y i am Ende von x 1 .. i mit Kosten von 1 und Addition der Edit-
Distanz für die Konvertierung von x 1 .. i nach y 1 .. j 1 .
3. Ersetzen von x i durch y i mit Kosten von 1 und Addition der Edit-Distanz für
die Konvertierung von x 1 .. i nach y 1 .. j 1 .
Der Algorithmus zum Befüllen der Matrix arbeitet bottom-up. Die Matrix hat
|
x
| +
1 Spalten und
|
y
| +
1 Zeilen und wird zunächst mit den Randbedingungen
C i , 0 =
j befüllt. Anschließend können sukzessive die Werte derjeni-
gen Zellen berechnet werden, deren linker, oberer und linker-oberer Zellnachbar
bereits berechnet wurden. Dies kann beispielsweise spalten- oder zeilenweise er-
folgen. Die Komplexität des Algorithmus ist O
i und C 0 , j =
. Abbildung 2.2 zeigt dies
für die Zeichenketten „Levenshtein“ und „Meilenstein“. Die Pfeile zeigen den je-
weils optimalen Weg
Aus der Matrix kann anschließend das Transkript abgelesen werden, welches die
einzelnen Änderungsoperationen beschreibt 33 . Beginnend mit Zelle C | x |,| y | springt
man immer zu derjenigen Zelle links, oberhalb oder diagonal links-oben, deren
Zellwert plus die jeweiligen Schrittkosten den aktuellen Zellwert ergeben. Existie-
ren mehrere Alternativen, so handelt es sich um verschiedene valide Edit-Opera-
tionen. Sprünge ohne Edit-Operation bzw. Ersetzen-Operationen entsprechen ei-
nem diagonalen Sprung, Lösch-Operationen einem Sprung nach links und Einfü-
ge-Operationen einem Sprung nach oben. Abbildung 2.3 zeigt das Transkript für
das vorherige Beispiel. Hierbei bedeutet ein „=“ keine Operation, ein „+“ Einfü-
gen eines Buchstabens, ein „-“ Löschen eines Buchstabens und ein „x“ Ersetzen
eines Buchstabens.
Die Levenshtein-Distanz muss anschließend noch in ein Ähnlichkeitsmaß um-
gewandelt werden 34 . Hierfür erfolgt eine Normalisierung auf die längere Zeichen-
kette und anschließend wird der Wert von 1 subtrahiert.
( |
x
|·|
y
| )
ed
(
x
,
y
)
sim ed (
x
,
y
)
:
=
1
max
{|
x
|,|
y
|}
32 Die Kosten für Edit-Operation müssen nicht 1 sein, sondern können für eine verschiedene Gewich-
tung von Lösch-, Einfüge- und Änderungsoperationen abweichen.
33 vgl. hierzu und zum Folgenden [19]. S. 337
34 vgl. hierzu und zum Folgenden [19]. S. 337
 
Search WWH ::




Custom Search