Der Viterbi Algorithmus

Ähnliche Dokumente
Hidden Markov Models

Hidden Markov Models (HMM)

Tagging mit Hidden Markov Models und Viterbi-Algorithmus

Einführung in die Computerlinguistik

Der Viterbi-Algorithmus.

Part-Of-Speech-Tagging mit Viterbi Algorithmus

Hidden Markov Modelle

Hidden Markov Models (HMM) Karin Haenelt

Elementare Begriffe der Wahrscheinlichkeitstheorie für die Sprachverarbeitung

Friedrich-Alexander-Universität Professur für Computerlinguistik. Nguyen Ai Huong

Part-of-Speech Tagging. Stephanie Schuldes

Hidden Markov Models

Einführung in die Computerlinguistik POS-Tagging

Maschinelle Sprachverarbeitung: Part-of-Speech-Tagging

Grundbegriffe der Wahrscheinlichkeitstheorie. Karin Haenelt

Probabilistische kontextfreie Grammatiken

Constanze Tschöpe und Matthias Wolff Fraunhofer IZFP Dresden, BTU Cottbus

Aufabe 7: Baum-Welch Algorithmus

Operationen auf endlichen Automaten und Transduktoren

Wortdekodierung. Vorlesungsunterlagen Speech Communication 2, SS Franz Pernkopf/Erhard Rank

Bayes sche Klassifikatoren. Uwe Reichel IPS, LMU München 16. Juli 2008

Einführung in die Computerlinguistik Statistische Grundlagen

Mathematische Grundlagen der Computerlinguistik III: Statistische Methoden Probeklausur

5.4 Endliche Automaten

Übung zu Drahtlose Kommunikation. 9. Übung

Algorithmen & Komplexität

HMM/KNN zur Spracherkennung

Hidden Markov Model (HMM)

Endliche Automaten. Grundlagen: Alphabet, Zeichenreihe, Sprache. Karin Haenelt

Überführung regulärer Ausdrücke in endliche Automaten

Kapitel 2: Spracherkennung Automatisches Verstehen gesprochener Sprache

Programmierkurs Python II

11. Übung Algorithmen I

Gliederung. Algorithmen und Datenstrukturen II. Problem: Längste gemeinsame Teilsequenz. Problem: Längste gemeinsame Teilsequenz

Operationen auf endlichen Akzeptoren und Transduktoren

Überführung regulärer Ausdrücke in endliche Automaten

5.4 Das Rucksackproblem

Domenico Strigari, Byambasuren Terbish, Bilal Erkin

TnT - Statistischer Part-of- Speech Tagger

Hidden Markov Models in Anwendungen

Signalverarbeitung 2. Volker Stahl - 1 -

Natürlichsprachliche Systeme I Materialien zur Vorlesung

Automaten und Formale Sprachen

Statistische Verfahren in der Computerlinguistik

Einführung in die Informatik

16. All Pairs Shortest Path (ASPS)

15. Elementare Graphalgorithmen

Übung zu Drahtlose Kommunikation. 7. Übung

Datenstrukturen & Algorithmen

Algorithmen und Datenstrukturen. Organisatorisches. Christian Komusiewicz Ernst-Abbe-Platz 2, R3315

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Probe-Klausur zur Vorlesung Multilinguale Mensch-Maschine Kommunikation 2013

Teil 2: Graphenalgorithmen

Bioinformatik. HMM Algorithmen Viterbi Forward-Backward Baum-Welch. Ulf Leser Wissensmanagement in der. Bioinformatik

Greedy Algorithmen. Grundlegendes. Organisatorisches. VL-21: Greedy Algorithmen. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

Parsing mit NLTK. Parsing mit NLTK. Parsing mit NLTK. Parsing mit NLTK. Beispiel: eine kleine kontextfreie Grammatik (cf. [BKL09], Ch. 8.

Übung 15: Faltungscodierung

Ein (7,4)-Code-Beispiel

Teil VIII. Dekodierung mit HMMs. SPEZIELLE MUSTERANALYSESYSTEME Schrift- und Spracherkennung mit Hidden-Markov-Modellen

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen

Information Retrieval and Semantic Technologies

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Algorithmische Bioinformatik 1

Datenstrukturen und Algorithmen

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

7. Musterlösung zu Mathematik für Informatiker I, WS 2003/04

Kognitive Systeme. Übung 4

Wahlalgorithmen auf beliebigen Netzstrukturen. Verteilte Algorithmen (VA), WS 2003/04 43

Wann sind Codes eindeutig entschlüsselbar?

Informatik-Grundlagen

Lösungsvorschlag Hausübung 8

Typischerweise sind randomisierte Algorithmen einfacher zu beschreiben und zu implementieren als deterministische Algorithmen.

Pr[X t+1 = k] = Pr[X t+1 = k X t = i] Pr[X t = i], also. (q t+1 ) k = p ik (q t ) i, bzw. in Matrixschreibweise. q t+1 = q t P.

Algorithmen und Datenstrukturen Heapsort

Endliche Automaten. Endliche Automaten J. Blömer 1/23

Datenstrukturen und Algorithmen D-INFK

WS 2009/10. Diskrete Strukturen

Einführung in Quantenalgorithmen

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

2.7 Der Shannon-Fano-Elias Code

Operationen auf endlichen Automaten und Transduktoren

Transkript:

M. 23.Juli.2007

Gliederung 1 2 3

Erfinder Andrew J. Viterbi 1967 zur Dekodierung von Faltungscodes entwickelt Auf Basis von entwickelt

Erfinder Andrew J. Viterbi 1967 zur Dekodierung von Faltungscodes entwickelt Auf Basis von entwickelt

Erfinder Andrew J. Viterbi 1967 zur Dekodierung von Faltungscodes entwickelt Auf Basis von entwickelt

Funktion Findet die beste Pfadsequenz in einem HMM zu einer gegebenen Beobachtung sogenannter Viterbi-Pfad

Funktion Findet die beste Pfadsequenz in einem HMM zu einer gegebenen Beobachtung sogenannter Viterbi-Pfad

Anwendungsbereiche Vielfältige Anwendungmöglichkeiten wie zum Beispiel: Worterkennung POS-Tagging Entzerrung und Fehlerkorretur bei Datenübertragung, Beispielsweise bei Mobilfunkgeräten Kryptografie Mustererkennung

Anwendungsbereiche Vielfältige Anwendungmöglichkeiten wie zum Beispiel: Worterkennung POS-Tagging Entzerrung und Fehlerkorretur bei Datenübertragung, Beispielsweise bei Mobilfunkgeräten Kryptografie Mustererkennung

Anwendungsbereiche Vielfältige Anwendungmöglichkeiten wie zum Beispiel: Worterkennung POS-Tagging Entzerrung und Fehlerkorretur bei Datenübertragung, Beispielsweise bei Mobilfunkgeräten Kryptografie Mustererkennung

Anwendungsbereiche Vielfältige Anwendungmöglichkeiten wie zum Beispiel: Worterkennung POS-Tagging Entzerrung und Fehlerkorretur bei Datenübertragung, Beispielsweise bei Mobilfunkgeräten Kryptografie Mustererkennung

Anwendungsbereiche Vielfältige Anwendungmöglichkeiten wie zum Beispiel: Worterkennung POS-Tagging Entzerrung und Fehlerkorretur bei Datenübertragung, Beispielsweise bei Mobilfunkgeräten Kryptografie Mustererkennung

Wiederholung von HMMs I Ein HMM ist ein Fünftupel λ = (S, K, π, A, B) S = {s 1,..., s N } Menge aller Zustände K = {k 1,..., k M } Ausgabealphabet N π = {π i }, i S i=1 π i = 1 Wahrscheinlichkeiten der Startzustände N A = {a ij }, i, j S j=1 a ij = 1 Wahrscheinlichkeiten der Zustandsübergänge M B = {b ijk }, i, j S, k K k=1 b ijk = 1 Wahrscheinlichkeiten der Symbolemissionen

Wiederholung von HMMs I Ein HMM ist ein Fünftupel λ = (S, K, π, A, B) S = {s 1,..., s N } Menge aller Zustände K = {k 1,..., k M } Ausgabealphabet N π = {π i }, i S i=1 π i = 1 Wahrscheinlichkeiten der Startzustände N A = {a ij }, i, j S j=1 a ij = 1 Wahrscheinlichkeiten der Zustandsübergänge M B = {b ijk }, i, j S, k K k=1 b ijk = 1 Wahrscheinlichkeiten der Symbolemissionen

Wiederholung von HMMs I Ein HMM ist ein Fünftupel λ = (S, K, π, A, B) S = {s 1,..., s N } Menge aller Zustände K = {k 1,..., k M } Ausgabealphabet N π = {π i }, i S i=1 π i = 1 Wahrscheinlichkeiten der Startzustände N A = {a ij }, i, j S j=1 a ij = 1 Wahrscheinlichkeiten der Zustandsübergänge M B = {b ijk }, i, j S, k K k=1 b ijk = 1 Wahrscheinlichkeiten der Symbolemissionen

Wiederholung von HMMs I Ein HMM ist ein Fünftupel λ = (S, K, π, A, B) S = {s 1,..., s N } Menge aller Zustände K = {k 1,..., k M } Ausgabealphabet N π = {π i }, i S i=1 π i = 1 Wahrscheinlichkeiten der Startzustände N A = {a ij }, i, j S j=1 a ij = 1 Wahrscheinlichkeiten der Zustandsübergänge M B = {b ijk }, i, j S, k K k=1 b ijk = 1 Wahrscheinlichkeiten der Symbolemissionen

Wiederholung von HMMs I Ein HMM ist ein Fünftupel λ = (S, K, π, A, B) S = {s 1,..., s N } Menge aller Zustände K = {k 1,..., k M } Ausgabealphabet N π = {π i }, i S i=1 π i = 1 Wahrscheinlichkeiten der Startzustände N A = {a ij }, i, j S j=1 a ij = 1 Wahrscheinlichkeiten der Zustandsübergänge M B = {b ijk }, i, j S, k K k=1 b ijk = 1 Wahrscheinlichkeiten der Symbolemissionen

Wiederholung von HMMs I Ein HMM ist ein Fünftupel λ = (S, K, π, A, B) S = {s 1,..., s N } Menge aller Zustände K = {k 1,..., k M } Ausgabealphabet N π = {π i }, i S i=1 π i = 1 Wahrscheinlichkeiten der Startzustände N A = {a ij }, i, j S j=1 a ij = 1 Wahrscheinlichkeiten der Zustandsübergänge M B = {b ijk }, i, j S, k K k=1 b ijk = 1 Wahrscheinlichkeiten der Symbolemissionen

Wiederholung von HMMs II Es gibt arc-emission HMMs und state-emission HMMs: arc-emission: Das ausgegebene Symbol hängt von den Zeitpunkten t und t 1 ab. state-emission: Das ausgegebene Smbol hängt nur vom Zeitpunkt t ab. Beispiel für ein state-emission Modell aus Wikipedia x: hidden states y: Ausgabe a: Übergangswahrscheinlichkeit b: Ausgabewahrscheinlichkeit

Wiederholung von HMMs II Es gibt arc-emission HMMs und state-emission HMMs: arc-emission: Das ausgegebene Symbol hängt von den Zeitpunkten t und t 1 ab. state-emission: Das ausgegebene Smbol hängt nur vom Zeitpunkt t ab. Beispiel für ein state-emission Modell aus Wikipedia x: hidden states y: Ausgabe a: Übergangswahrscheinlichkeit b: Ausgabewahrscheinlichkeit

Wiederholung von HMMs II Es gibt arc-emission HMMs und state-emission HMMs: arc-emission: Das ausgegebene Symbol hängt von den Zeitpunkten t und t 1 ab. state-emission: Das ausgegebene Smbol hängt nur vom Zeitpunkt t ab. Beispiel für ein state-emission Modell aus Wikipedia x: hidden states y: Ausgabe a: Übergangswahrscheinlichkeit b: Ausgabewahrscheinlichkeit

Wiederholung von HMMs II Es gibt arc-emission HMMs und state-emission HMMs: arc-emission: Das ausgegebene Symbol hängt von den Zeitpunkten t und t 1 ab. state-emission: Das ausgegebene Smbol hängt nur vom Zeitpunkt t ab. Beispiel für ein state-emission Modell aus Wikipedia x: hidden states y: Ausgabe a: Übergangswahrscheinlichkeit b: Ausgabewahrscheinlichkeit

Die Problemstellung Wir wollen wissen, welches der wahrscheinlichste Pfad in einer Sequenz von verborgenen Zuständen ist, der zu unserer Eingabe führt. Das könnte man lösen, indem alle Pfade ausprobiert werden und aus dieser Menge der wahrscheinlichste herausgefiltert wird. Mittels Rekursion kann man dies verbessern.

Die Problemstellung Wir wollen wissen, welches der wahrscheinlichste Pfad in einer Sequenz von verborgenen Zuständen ist, der zu unserer Eingabe führt. Das könnte man lösen, indem alle Pfade ausprobiert werden und aus dieser Menge der wahrscheinlichste herausgefiltert wird. Mittels Rekursion kann man dies verbessern.

Die Problemstellung Wir wollen wissen, welches der wahrscheinlichste Pfad in einer Sequenz von verborgenen Zuständen ist, der zu unserer Eingabe führt. Das könnte man lösen, indem alle Pfade ausprobiert werden und aus dieser Menge der wahrscheinlichste herausgefiltert wird. Mittels Rekursion kann man dies verbessern.

Beispiel I Time flies like arrows. Die Zeit vergeht so schnell, wie Pfeile fliegen. Zeitfliegen mögen Pfeile. Miss die Zeit, die Fliegen brauchen, so schnell wie Pfeile. etc.

Beispiel I Time flies like arrows. Die Zeit vergeht so schnell, wie Pfeile fliegen. Zeitfliegen mögen Pfeile. Miss die Zeit, die Fliegen brauchen, so schnell wie Pfeile. etc.

Beispiel I Time flies like arrows. Die Zeit vergeht so schnell, wie Pfeile fliegen. Zeitfliegen mögen Pfeile. Miss die Zeit, die Fliegen brauchen, so schnell wie Pfeile. etc.

Beispiel I Time flies like arrows. Die Zeit vergeht so schnell, wie Pfeile fliegen. Zeitfliegen mögen Pfeile. Miss die Zeit, die Fliegen brauchen, so schnell wie Pfeile. etc.

Beispiel II Symbolemissionen Time flies like arrows Nom 0.4 0.25 0 0.35 NomC 0.3 0.45 0 0.25 Verb 0 0.76 0.24 0 Prep 0 0 1 0 Das Trellis-Diagramm für den Beispielsatz.

Beispiel III Zustandsübergangs- und Startwahrscheinlichkeiten Nom NomC Verb Prep π 0.35 0.2 0.25 0.2 Nom 0.1 0.3 0.45 0.15 NomC 0.01 0.29 0.5 0.2 Verb 0.2 0.1 0.25 0.45 Prep 0.5 0.05 0.25 0.2

Vorgehensweise des Algorithmus besteht aus drei Teilen Initialisierung Induktion mit den Funktionen δ und ψ Terminierung und Pfadausgabe und hat zwei wichtige Datenstrukturen, die Arrays der Größe K N sind, wobei N die Anzahl der Wörter in der Eingabe und K die Zahl der lexikalischen Kategorien repräsentieren. SEQSCORE(k,n), speichert die Wahrscheinlichkeiten für die beste Sequenz zur Position n, die mit einem Wort aus der lexikalischen Kategorie endet. BACKPTR, speichert für jede Kategorie an der Position n die Kategorie der besten Sequenz an Position n 1.

Vorgehensweise des Algorithmus besteht aus drei Teilen Initialisierung Induktion mit den Funktionen δ und ψ Terminierung und Pfadausgabe und hat zwei wichtige Datenstrukturen, die Arrays der Größe K N sind, wobei N die Anzahl der Wörter in der Eingabe und K die Zahl der lexikalischen Kategorien repräsentieren. SEQSCORE(k,n), speichert die Wahrscheinlichkeiten für die beste Sequenz zur Position n, die mit einem Wort aus der lexikalischen Kategorie endet. BACKPTR, speichert für jede Kategorie an der Position n die Kategorie der besten Sequenz an Position n 1.

Vorgehensweise des Algorithmus besteht aus drei Teilen Initialisierung Induktion mit den Funktionen δ und ψ Terminierung und Pfadausgabe und hat zwei wichtige Datenstrukturen, die Arrays der Größe K N sind, wobei N die Anzahl der Wörter in der Eingabe und K die Zahl der lexikalischen Kategorien repräsentieren. SEQSCORE(k,n), speichert die Wahrscheinlichkeiten für die beste Sequenz zur Position n, die mit einem Wort aus der lexikalischen Kategorie endet. BACKPTR, speichert für jede Kategorie an der Position n die Kategorie der besten Sequenz an Position n 1.

Vorgehensweise des Algorithmus besteht aus drei Teilen Initialisierung Induktion mit den Funktionen δ und ψ Terminierung und Pfadausgabe und hat zwei wichtige Datenstrukturen, die Arrays der Größe K N sind, wobei N die Anzahl der Wörter in der Eingabe und K die Zahl der lexikalischen Kategorien repräsentieren. SEQSCORE(k,n), speichert die Wahrscheinlichkeiten für die beste Sequenz zur Position n, die mit einem Wort aus der lexikalischen Kategorie endet. BACKPTR, speichert für jede Kategorie an der Position n die Kategorie der besten Sequenz an Position n 1.

Vorgehensweise des Algorithmus besteht aus drei Teilen Initialisierung Induktion mit den Funktionen δ und ψ Terminierung und Pfadausgabe und hat zwei wichtige Datenstrukturen, die Arrays der Größe K N sind, wobei N die Anzahl der Wörter in der Eingabe und K die Zahl der lexikalischen Kategorien repräsentieren. SEQSCORE(k,n), speichert die Wahrscheinlichkeiten für die beste Sequenz zur Position n, die mit einem Wort aus der lexikalischen Kategorie endet. BACKPTR, speichert für jede Kategorie an der Position n die Kategorie der besten Sequenz an Position n 1.

Vorgehensweise des Algorithmus besteht aus drei Teilen Initialisierung Induktion mit den Funktionen δ und ψ Terminierung und Pfadausgabe und hat zwei wichtige Datenstrukturen, die Arrays der Größe K N sind, wobei N die Anzahl der Wörter in der Eingabe und K die Zahl der lexikalischen Kategorien repräsentieren. SEQSCORE(k,n), speichert die Wahrscheinlichkeiten für die beste Sequenz zur Position n, die mit einem Wort aus der lexikalischen Kategorie endet. BACKPTR, speichert für jede Kategorie an der Position n die Kategorie der besten Sequenz an Position n 1.

Vorgehensweise des Algorithmus besteht aus drei Teilen Initialisierung Induktion mit den Funktionen δ und ψ Terminierung und Pfadausgabe und hat zwei wichtige Datenstrukturen, die Arrays der Größe K N sind, wobei N die Anzahl der Wörter in der Eingabe und K die Zahl der lexikalischen Kategorien repräsentieren. SEQSCORE(k,n), speichert die Wahrscheinlichkeiten für die beste Sequenz zur Position n, die mit einem Wort aus der lexikalischen Kategorie endet. BACKPTR, speichert für jede Kategorie an der Position n die Kategorie der besten Sequenz an Position n 1.

Initialisierung SEQSCORE(i,1) wird in unserem Beispiel mit dem Ergebnis folgender Formel gefüllt: P(Time k i ) P(k i π) Somit ergibt sich mit unserem Beispiel für SEQSCORE: 1 (Nom) 2 (NomC) 3 (Verb) 4 (Prep) 1 0.14 0.06 0 0 2 0 0 0 0 3 0 0 0 0 4 0 0 0 0

Initialisierung SEQSCORE(i,1) wird in unserem Beispiel mit dem Ergebnis folgender Formel gefüllt: P(Time k i ) P(k i π) Somit ergibt sich mit unserem Beispiel für SEQSCORE: 1 (Nom) 2 (NomC) 3 (Verb) 4 (Prep) 1 0.14 0.06 0 0 2 0 0 0 0 3 0 0 0 0 4 0 0 0 0

Induktion Mit δ wird die Wahrscheinlichkeit des wahrscheinlichsten Pfades berechnet Die Ergebnisse von δ werden in SEQSCORE gespeichert Mit ψ wird der Vorgänger auf dem wahrscheinlichsten Pfad ermittelt Die Ergebnisse von ψ werden in BACKPTR gespeichert

Induktion Mit δ wird die Wahrscheinlichkeit des wahrscheinlichsten Pfades berechnet Die Ergebnisse von δ werden in SEQSCORE gespeichert Mit ψ wird der Vorgänger auf dem wahrscheinlichsten Pfad ermittelt Die Ergebnisse von ψ werden in BACKPTR gespeichert

Induktion Mit δ wird die Wahrscheinlichkeit des wahrscheinlichsten Pfades berechnet Die Ergebnisse von δ werden in SEQSCORE gespeichert Mit ψ wird der Vorgänger auf dem wahrscheinlichsten Pfad ermittelt Die Ergebnisse von ψ werden in BACKPTR gespeichert

Induktion Mit δ wird die Wahrscheinlichkeit des wahrscheinlichsten Pfades berechnet Die Ergebnisse von δ werden in SEQSCORE gespeichert Mit ψ wird der Vorgänger auf dem wahrscheinlichsten Pfad ermittelt Die Ergebnisse von ψ werden in BACKPTR gespeichert

Induktion δ δ i+1 (n j ) = max 1 k K [δ i (n k ) P(w i+1 n j ) P(n j n k )] n j : j-tes Tag im Tagset n k : Nachfolger von n j w i+1 : Wort an Position i+1 Um die zweite Zeile in SEQSCORE zu berechnen, setzt man in die Formel also folgendes ein: 0.14 P(flies Nom) P(Nom Nom) = 0.14 0.25 0.1 = 3, 5 10 3 Damit erhält man den Wert für flies, wenn es sich dabei um ein Nomen handelt.

Induktion δ δ i+1 (n j ) = max 1 k K [δ i (n k ) P(w i+1 n j ) P(n j n k )] n j : j-tes Tag im Tagset n k : Nachfolger von n j w i+1 : Wort an Position i+1 Um die zweite Zeile in SEQSCORE zu berechnen, setzt man in die Formel also folgendes ein: 0.14 P(flies Nom) P(Nom Nom) = 0.14 0.25 0.1 = 3, 5 10 3 Damit erhält man den Wert für flies, wenn es sich dabei um ein Nomen handelt.

Induktion δ δ i+1 (n j ) = max 1 k K [δ i (n k ) P(w i+1 n j ) P(n j n k )] n j : j-tes Tag im Tagset n k : Nachfolger von n j w i+1 : Wort an Position i+1 Um die zweite Zeile in SEQSCORE zu berechnen, setzt man in die Formel also folgendes ein: 0.14 P(flies Nom) P(Nom Nom) = 0.14 0.25 0.1 = 3, 5 10 3 Damit erhält man den Wert für flies, wenn es sich dabei um ein Nomen handelt.

Induktion δ, SEQSCORE SEQSCORE sieht dann so aus: 1 (Nom) 2 (NomC) 3 (Verb) 4 (Prep) 1 (Time) 0.14 0.06 0 0 2 (flies) 3, 5 10 3 18.9 10 3 47.88 10 3 0 3 0 0 0 0 4 0 0 0 0

Induktion ψ Mit dieser Funktion wird der Vorgängerknoten gespeichert ψ i+1 (n j ) = argmax 1 k K [δ i (n k ) P(w i+1 n j ) P(n j n k )] argmax speichert das Vorgängerelement, das das Maximum in δ lieferte BACKPTR erhält diese Werte: 1 (Nom) 2 (NomC) 3 (Verb) 4 (Prep) 1 (Time) 0 0 0 0 2 (flies) 1 1 1 0 3 0 0 0 0 4 0 0 0 0

Induktion ψ Mit dieser Funktion wird der Vorgängerknoten gespeichert ψ i+1 (n j ) = argmax 1 k K [δ i (n k ) P(w i+1 n j ) P(n j n k )] argmax speichert das Vorgängerelement, das das Maximum in δ lieferte BACKPTR erhält diese Werte: 1 (Nom) 2 (NomC) 3 (Verb) 4 (Prep) 1 (Time) 0 0 0 0 2 (flies) 1 1 1 0 3 0 0 0 0 4 0 0 0 0

Induktion ψ Mit dieser Funktion wird der Vorgängerknoten gespeichert ψ i+1 (n j ) = argmax 1 k K [δ i (n k ) P(w i+1 n j ) P(n j n k )] argmax speichert das Vorgängerelement, das das Maximum in δ lieferte BACKPTR erhält diese Werte: 1 (Nom) 2 (NomC) 3 (Verb) 4 (Prep) 1 (Time) 0 0 0 0 2 (flies) 1 1 1 0 3 0 0 0 0 4 0 0 0 0

Induktion ψ Mit dieser Funktion wird der Vorgängerknoten gespeichert ψ i+1 (n j ) = argmax 1 k K [δ i (n k ) P(w i+1 n j ) P(n j n k )] argmax speichert das Vorgängerelement, das das Maximum in δ lieferte BACKPTR erhält diese Werte: 1 (Nom) 2 (NomC) 3 (Verb) 4 (Prep) 1 (Time) 0 0 0 0 2 (flies) 1 1 1 0 3 0 0 0 0 4 0 0 0 0

Induktionsschleife Diese Schritte werden wiederholt, bis die gesamte Eingabe analysiert worden ist.

Ende der Induktionsschleife I SEQSCORE: 1 (Nom) 2 (NomC) 3 (Verb) 4 (Prep) 1 (Time) 0.14 0.06 0 0 2 (flies) 3, 5 10 3 18.9 10 3 47.88 10 3 0 3 (like) 0 0 2.87 10 3 21.55 10 3 4 (arrows) 3.77 10 3 0.27 10 3 0 0

Ende der Induktionsschleife II BACKPTR: 1 (Nom) 2 (NomC) 3 (Verb) 4 (Prep) 1 (Time) 0 0 0 0 2 (flies) 1.1 1.1 1.1 0 3 (like) 0 0 3.2 3.2 4 (arrows) 4.3 4.3 0 0 1.1 bedeutet: Nom gibt Time aus.

Terminierung Zuletzt wird mit Hilfe von BACKPTR der beste Pfad ausgegeben. In der letzen Zeile von SEQSCORE wird das höchste Ergebnis von δ gesucht. In unserem Beispiel: 3.77*10 3 Von hier aus kann der Algorithmus mit Hilfe von BACKPTR die Analyse des Satzes zurückverfolgen In unserem Beispiel: Time (Nom) flies (Verb) like (Prep) arrows (Nom).

Terminierung Zuletzt wird mit Hilfe von BACKPTR der beste Pfad ausgegeben. In der letzen Zeile von SEQSCORE wird das höchste Ergebnis von δ gesucht. In unserem Beispiel: 3.77*10 3 Von hier aus kann der Algorithmus mit Hilfe von BACKPTR die Analyse des Satzes zurückverfolgen In unserem Beispiel: Time (Nom) flies (Verb) like (Prep) arrows (Nom).

Terminierung Zuletzt wird mit Hilfe von BACKPTR der beste Pfad ausgegeben. In der letzen Zeile von SEQSCORE wird das höchste Ergebnis von δ gesucht. In unserem Beispiel: 3.77*10 3 Von hier aus kann der Algorithmus mit Hilfe von BACKPTR die Analyse des Satzes zurückverfolgen In unserem Beispiel: Time (Nom) flies (Verb) like (Prep) arrows (Nom).

Terminierung Zuletzt wird mit Hilfe von BACKPTR der beste Pfad ausgegeben. In der letzen Zeile von SEQSCORE wird das höchste Ergebnis von δ gesucht. In unserem Beispiel: 3.77*10 3 Von hier aus kann der Algorithmus mit Hilfe von BACKPTR die Analyse des Satzes zurückverfolgen In unserem Beispiel: Time (Nom) flies (Verb) like (Prep) arrows (Nom).

Algorithmus Datenstrukturen initialisieren for i=1 to N: SEQSCORE(i,1)=P(Time k i ) P(k i π) BACKPTR(i,1)=0 for i=1 to K: for j=1 to N: SEQSCORE(j,i+1)=max 1 k K [δ i (n k ) P(w i+1 n j ) P(n j n k )] BACKPTR(i,i+1)=argmax 1 k K [δ i (n k ) P(w i+1 n j ) P(n j n k )] for j=k to 1: Suche in SEQSCORE das höchste Ergebnis und verfolge dieses mit BACKPTR zurück. Ergebnis ausgeben

Weiterführend Allen, James (1995): Natural Language Unterstanding. 2 n d edition. Addison-Wesley Publishing Co. Haenelt, Karin: Der Viterbi-Algorithmus. Eine Erläuterung der formalen Spezifikationen am Beispiel des Part-of-Speech Tagging. Kursskript. 16.06.2007 http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-tutor.pdf Haenelt,Karin: Der Viterbi-Algorithmus im Part-of-Speech Tagging. Kursfolien. 16.06.2007. http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-algorithmus.pdf Manning, Christopher D. - Schütze, Hinrich (1999): Foundations of Statistical Natural Language Processing. Cambridge, Mass., London: The MIT Press Viterbi, Andrew J. (1967): Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. In: IEEE Transactions on Information Theory IT-13, S. 1260-1269. Wikipedia

Weiterführend Allen, James (1995): Natural Language Unterstanding. 2 n d edition. Addison-Wesley Publishing Co. Haenelt, Karin: Der Viterbi-Algorithmus. Eine Erläuterung der formalen Spezifikationen am Beispiel des Part-of-Speech Tagging. Kursskript. 16.06.2007 http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-tutor.pdf Haenelt,Karin: Der Viterbi-Algorithmus im Part-of-Speech Tagging. Kursfolien. 16.06.2007. http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-algorithmus.pdf Manning, Christopher D. - Schütze, Hinrich (1999): Foundations of Statistical Natural Language Processing. Cambridge, Mass., London: The MIT Press Viterbi, Andrew J. (1967): Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. In: IEEE Transactions on Information Theory IT-13, S. 1260-1269. Wikipedia

Weiterführend Allen, James (1995): Natural Language Unterstanding. 2 n d edition. Addison-Wesley Publishing Co. Haenelt, Karin: Der Viterbi-Algorithmus. Eine Erläuterung der formalen Spezifikationen am Beispiel des Part-of-Speech Tagging. Kursskript. 16.06.2007 http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-tutor.pdf Haenelt,Karin: Der Viterbi-Algorithmus im Part-of-Speech Tagging. Kursfolien. 16.06.2007. http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-algorithmus.pdf Manning, Christopher D. - Schütze, Hinrich (1999): Foundations of Statistical Natural Language Processing. Cambridge, Mass., London: The MIT Press Viterbi, Andrew J. (1967): Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. In: IEEE Transactions on Information Theory IT-13, S. 1260-1269. Wikipedia

Weiterführend Allen, James (1995): Natural Language Unterstanding. 2 n d edition. Addison-Wesley Publishing Co. Haenelt, Karin: Der Viterbi-Algorithmus. Eine Erläuterung der formalen Spezifikationen am Beispiel des Part-of-Speech Tagging. Kursskript. 16.06.2007 http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-tutor.pdf Haenelt,Karin: Der Viterbi-Algorithmus im Part-of-Speech Tagging. Kursfolien. 16.06.2007. http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-algorithmus.pdf Manning, Christopher D. - Schütze, Hinrich (1999): Foundations of Statistical Natural Language Processing. Cambridge, Mass., London: The MIT Press Viterbi, Andrew J. (1967): Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. In: IEEE Transactions on Information Theory IT-13, S. 1260-1269. Wikipedia

Weiterführend Allen, James (1995): Natural Language Unterstanding. 2 n d edition. Addison-Wesley Publishing Co. Haenelt, Karin: Der Viterbi-Algorithmus. Eine Erläuterung der formalen Spezifikationen am Beispiel des Part-of-Speech Tagging. Kursskript. 16.06.2007 http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-tutor.pdf Haenelt,Karin: Der Viterbi-Algorithmus im Part-of-Speech Tagging. Kursfolien. 16.06.2007. http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-algorithmus.pdf Manning, Christopher D. - Schütze, Hinrich (1999): Foundations of Statistical Natural Language Processing. Cambridge, Mass., London: The MIT Press Viterbi, Andrew J. (1967): Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. In: IEEE Transactions on Information Theory IT-13, S. 1260-1269. Wikipedia

Weiterführend Allen, James (1995): Natural Language Unterstanding. 2 n d edition. Addison-Wesley Publishing Co. Haenelt, Karin: Der Viterbi-Algorithmus. Eine Erläuterung der formalen Spezifikationen am Beispiel des Part-of-Speech Tagging. Kursskript. 16.06.2007 http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-tutor.pdf Haenelt,Karin: Der Viterbi-Algorithmus im Part-of-Speech Tagging. Kursfolien. 16.06.2007. http://kontext.fraunhofer.de/haenelt/kurs/folien/haenelt_viterbi-algorithmus.pdf Manning, Christopher D. - Schütze, Hinrich (1999): Foundations of Statistical Natural Language Processing. Cambridge, Mass., London: The MIT Press Viterbi, Andrew J. (1967): Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. In: IEEE Transactions on Information Theory IT-13, S. 1260-1269. Wikipedia