Der VITERBI-Algorithmus Hauptseminar Parsing Sommersemester 2002 Lehrstuhl für Computerlinguistik Universität Heidelberg Thorsten Beinhorn http://janus.cl.uni-heidelberg.de/~beinhorn
2 Inhalt Ziel des Projekts Vorstellung des Viterbi-Algorithmus Beschreibung der Implementierung Vorstellung des Programms VTAG Evaluierung Literatur
3 Ziel des Projekts Implementierung eines Part-of-Speech Taggers mit Hilfe des Viterbi-Algorithmus
4 Zu lösende Probleme Erstellen einer geeigneten Datenbasis Planung der Programmstruktur Anpassung des Algorithmus an Zielsprache (Visual Basic) Training / Evaluierung
5 Sprachliche Phänomene Satzende-Problematik: Behandlung von Satzzeichen, speziell dem Punkt, um das Ende eines Satzes zu finden Diese Aufgabe übernimmt in diesem Projekt der Sentenizer
6 Beispielanwendungen des Viterbi- Algorithmus Part-of-Speech Tagging Muster-Erkennung
7 Funktion des Viterbi-Algorithmus I Der Zweck des Algorithmus besteht darin, auf effiziente Weise die beste verborgene Pfadsequenz durch ein Hidden Markov Modell (HDM) zu finden
8 Funktion des Viterbi-Algorithmus II Voraussetzungen: Eine gegebene Beobachtung Ein gegebenes Modell Ergebnis: Der beste Pfad durch das Übergangsnetzwerk
9 Haenelt, 2002f,10 Funktion des Viterbi-Algorithmus III Dieses Beispiel zeigt die Vorgehensweise des Viterbi-Algorithmus. Ausgehend vom Startsymbol wird der wahrscheinlichste Pfad durch das gegebene Hidden Markov Modell gefunden. wir Adje 0 wir AuxV 0. O wir KopV 0 wir Nomn 0.06 wir Part 0 werden Adje 0 werden AuxV 0.0072 werden KopV 0.009 werden Nomn0 werden Part 0 geschickt Adje geschickt AuxV geschickt KopV geschickt Nomn geschickt Part 0.00036 0 0 0 0.00057
Formale Spezifikation des Viterbi- Algorithmus 0 1 comment: Given: a sentence of length n 2 comment: Initialization 3 d 1 (O) = 1.0 4 d 1 (t) = 0.0 for t? O 5 comment: Induction 6 for i := 1 to n step 1 do 7 for all tags t j do 8 d i+1 (t j ) := max 1=k=T [di(t k ) x P(w i+1 t j ) x P(t j t k )] 9? i+1 (t j ) := arg max 1=k=T [di(t k ) x P(w i+1 t j ) x P(t j t k )] 10 end 11 end 12 comment: Termination and path-readout 13 X n+1 = arg max 1=j=T d n+1 (j) 14 for j := n to 1 step -1 do 15 X j =? j+1 (X j+1 ) 16 end 17 P(X 1,, X n ) = max 1=j=T d n+1 (t j ) Manning/Schütze, 2000: 350
1 Haenelt, 2002f,19 Formale Spezifikation des Viterbi- Algorithmus: Funktion d d i+1 (t j ) := max 1=k=T [d i (t k ) x P(w i+1 t j ) x P(t j t k )] berechnet für jeden Punkt im Gitter (trellis) die Wahrscheinlichkeit des wahrscheinlichsten Pfades, der zu diesem Knoten führt
2 Haenelt, 2002f,21 Formale Spezifikation des Viterbi- Algorithmus: Funktion?? i+1 (t j ) := arg max 1=k=T [d i (t k ) x P(w i+1 t j ) x P(t j t k )] ermittelt für jeden Punkt im Gitter (trellis) den Vorgängerknoten auf dem wahrscheinlichsten Pfad, der zu diesem Knoten führt
3 Beschreibung der Implementierung I Implementierung in Visual Basic 6.0 Datenbasis: Training: Ausgabe: MS-Access 2000 Datenbank Auszüge aus Ätna-Korpus Getaggter Text (Html-Stil)
4 Beschreibung der Implementierung II Datenbasis (Tabellen) reltaglex Emissionswahrscheinlichkeiten: Tag - Wort reltransmission Übergangswahrscheinlichkeiten zwischen den Tags tbllexicon Vollformen-Lexikon tbltagset STTS-Tagset SEQSCORE Hidden Markov Modell (temporär, nur für einen Satz gültig) BACKPTR Beinhaltet die Pfadsequenzen (temporär, nur für einen Satz gültig)
5 Beschreibung der Implementierung III Module basdatabasefunctions Steuert die Datenbank-Zugriffe basfilefunctions Behandelt die Datei-Zugriffe (Öffnen / Speichern) basglobals Globale Variablen basviterbi Der eigentliche Viterbi-Algorithmus TextFunctions Sentenizer / Tokenizer
6 Beschreibung der Implementierung IV graphische Darstellung Eingabe Satz/Text Sentenizer Jeder Satz Tokenizer Jedes Token Lexikon TagSet Emissions- /Übergangswahrscheinlichkeiten Viterbi-Algorithmus Training Ausgabe als Textdatei Bildschirmausgabe
7 Das Programm VTAG 2002 Eingabe eines neuen Textes in VTAG
8 Das Programm VTAG 2002 Ausgabe eines getaggten Textes in VTAG
9 Das Programm VTAG 2002 Auszug aus der Tabelle SEQSCORE nach einem Tag-Vorgang
0 Evaluierung I Qualität der Ausgabe Die Qualität der Ausgabe ist stark vom Trainingsumfang abhängig Nach einführendem Training nimmt die Erkennungsrate schnell zu, da bereits gelernte Übergangswahrscheinlichkeiten wiederverwendet werden können Die Ausgabe bei Texten mit vielen unbekannten Wörtern führt zu eher unbefriedigenden Ergebnissen, allerdings reicht oft ein einmaliges Training aus, um diese neuen Texte korrekt zu taggen
1 Evaluierung II Satzende-Problem Bis auf Abkürzungen und Folge-Pünktchen ist es uns gelungen das Satzende in ca. 90% der Fälle richtig zu erkennen. Bei den Trainingsdaten aus dem Ätna-Korpus war die Erkennung sogar noch höher, da es sich um sehr einfach aufgebaute Sätze handelt. Die oben genannten Sonderfälle stellen allerdings ein schwierig zu lösendes Problem dar, da das Satzende durch reguläre Ausdrücke unter umständen nicht zu finden ist. Beispiel: ging er nach Hause... Dann kochte er Kaffee
2 Evaluierung III Komplexität / Effizienz Pro Durch die Verwendung der Besten-Pfad -Methode ergibt sich auch bei großen Datenmengen eine relativ kurze Verarbeitungsgeschwindigkeit Die Gefahr des Over-Learnings ist relativ gering (durch Trennung der Emissions- und Übergangswahrscheinlichkeiten) Contra Datenbankzugriffe kosten sehr viel Zeit Für jedes neue Wort muss eine neue Emissionswahrscheinlichkeit angelegt werden (auch wenn sie null ist), bei diesem Tagset (55 Tags) ergeben sich demnach 55 Datenbankzugriffe pro neuem Wort nicht sehr performant
3 Literatur Haenelt, Karin (2002s): Der Viterbi-Algoritmus. Eine Erläuterung der formalen Spezifikation am Beispiel des Part-of-Speech Tagging. Kursskript. 11.05.2002 http://www.darmstadt.gmd.de/kontext/haenelt/kurs/folien/viterbi- Tutor.doc Haenelt, Karin (2002f): Der Viterbi-Algoritmus im Part-of-Speech Tagging. Kursfolien. 11.06.2002 http://www.darmstadt.gmd.de/kontext/haenelt/kurs/folien/viterbi- Algorithmus.ppt Manning, Christoph D.: Schütze, Hinrich (1999): Foundations of Statistical Natural Language Procesing. Camebridge, Mass., London: The MIT Press. (vgl.:http://www.sultry.arts.usyd.edu.au/fsnlp)