18.09.2013 Aufrufe

Sprachliche Mensch-Maschine-Kommunikation

Sprachliche Mensch-Maschine-Kommunikation

Sprachliche Mensch-Maschine-Kommunikation

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

164 11. Erkennung dynamischer Sprachsignale<br />

entspricht einem DP-Zustand. Editieren bedeutet, die Matrix von links unten<br />

nach rechts oben zu durchlaufen, wobei als Editierschritte, die in Abb. 11.6<br />

dargestellten möglich sind. Bezeichnen wir mit C(i, j) die minimale Editierdistanz<br />

zwischen x1, . . . xi und y1, . . .yi. Dann können wir C(i, j) mit Hilfe der<br />

Kenntnis von xi, yj, C(i−1, j), C(i, j−1) und C(i−1, j−1) berechnen gemäß:<br />

⎧<br />

⎨ cd +C(i − 1, j)<br />

C(i, j) = min c<br />

⎩ i +C(i, j − 1)<br />

δxi,yj · cs +C(i, j − 1)<br />

(11.1)<br />

wobei δxi,yj das Kronecker-Delta ist. c d bezeichnet die Kosten für das<br />

Auslassen (delete) eines Zeichens c i die Kosten für das Einfügen (insert) und<br />

cs (substitute) die Kosten für das Ersetzen eines Zeichens durch ein anderes.<br />

Im einfachsten Fall setzt man ce = c i = cs = 1.<br />

yi<br />

yi−1<br />

xi−1<br />

xi<br />

C(i, j) xi−1 auslassen<br />

Abb. 11.6. Kostenberechnung für einen Editierschritt<br />

xi ggf. mit<br />

yi überschreiben<br />

yi einfügen<br />

Wenn das Ziel nicht nur die Berechnung der minimal Anzahl der Editierschritte<br />

sein soll, sondern auch noch die Folge dieser Schritte selbst, dann ist<br />

es nötig, daß zu jedem Zustand der beste Vorgängerzustand abgespeichert<br />

wird. Für diese Referenzen wird oft der Ausdruck Rückwärtszeiger (englisch<br />

backpointer) verwendet, und die Menge aller Rückwärtszeiger als Tabelle der<br />

Rückwärtszeiger (englisch: backpointer table). Der Rückwärtszeiger des Zu-<br />

stands (i, j) berechnet sich analog zu Gl. 11.1 als:<br />

R(i, j) = argmin<br />

{(i−1,j), (i−1,j−1), (i,j−1)}<br />

⎧<br />

⎨ cd +C(i − 1, j)<br />

c<br />

⎩ i +C(i, j − 1)<br />

δxi,yj · cs +C(i, j − 1)<br />

(11.2)<br />

Schließlich gibt R(n, m) den letzen Editierschritt an. Ist R(n, m) =<br />

(n − 1, m), so heißt dies, daß im letzten Schritt xn ausgelassen werden muß.<br />

R(n, m) = (n, m − 1), dann muß im letzten Schritt ym eingefügt werden.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!