betreut von Prof. Dr. Wolfgang Menzel und Frank Schilder
abgegeben am 27.01.02:
Part--of--Speech Tagging als Vorverarbeitung zur Dependenzanalyse natürlicher Sprache Diplomarbeit. Informatik, Universität Hamburg. (
ps,
pdf)
Idee
Inhalt der Diplomarbeit ist es, einen POS-Tagger in den CDG-Parser zu integrieren. Die Idee ist, die zu verarbeitenden Sätze (evtl. auch Wortgraphen), vor dem Parsen vom
Tagger annotieren zu lassen, in der Annahme, daß Tagging-Informationen wertvoll für den Parsing-Prozeß sind. Dies kann verschiedene positive
Auswirkungen auf den Prozeß des Parsens haben:
- Der Zeitaufwand, der für das Parsen eines Satzes erforderlich ist, soll verringert werden.
- Kann das CDG-System Tagging-Fehler korrigieren?
- Kann das CDG-System unter mit POS-Tagger etwas, was es vorher nicht konnte? Wirkt die Verwendung des POS-Taggers sich positiv auf die Qualitaet der Ergebnisse aus?
Architektur
Die Integrationsarchitektur wurde so gewählt, daß es grundsätzlich möglich ist unterschiedliche POS-Tagger mit verschiedenen Grammatiken zu verwenden. Die Prozeßkommunikation zwischen Parser und Tagger durch ein einfaches Kommunikationsprotokoll geregelt.
Eine Tabelle implementiert die Übersetzung der Ausgaben des POS-Taggers in die Sprache der verwendeten Grammatik. Dadurch wird es möglich unterschiedliche Tagger zu verwenden und gleichzeitig unabhängig von einer bestimmten Grammatik zu sein, da die Anpassung der Abbildungstabelle mit geringem Aufwand möglich ist. Die Abbildung wird mittels eines Perl-Programms implementiert.
Abbildung des STTS-Tagsets auf die Kategorien der Stellingen-Grammatik
Da der Stellingen-Korpus zu klein ist, um einen probabilistischen
Tagger darauf zu trainieren, und es kein großes Korpus gibt, daß das
dieselbe Menge an Kategoriesymbolen, sog. Tags, verwendet. Deshalb
wurde der Tagger auf dem Negra-Korpus, das das sog. STTS-Tagset
verwendet, dessen Tags dem Stellingen-Korpus sehr ähnlich sind,
verwendet, um das Sprachmodell des Taggers zu trainieren. Damit das
CDG-System die Symbole des Negra-Korpus verarbeiten kann, werden diese
durch ein Programm, den sog. Mapper, auf das Stellingen-Korpus abgebildet.
Die Abbildung des STTS-Tagsets auf die Stellingengrammatik bedeutet
eine Verkleinerung der Tag-Menge, da STTS eine größere Zahl
möglicher Tags als die Stellingen-Grammatik verwendet.
Das liegt an der Tatsache, daß das STTS-Tagset für die
deutsche Sprache im allgemeinen, die Stellingengrammatik jedoch nur
für Terminabsprachedialoge konzipiert wurde, was bedeutet,
daß STTS- in der Regel genauer ist (Ausnahme: Artikel, STTS
unterscheidet im Gegensatz zur Stellingen-Grammatik nicht zwischen
bestimmten und unbestimmten Artikeln).
Simulation eines perfekten Taggers durch Einführung zusätzlicher Constraints
Um das Potential der Verwendung eines POS-Taggers für CDG
abzuschätzen, wurde getestet, wie sich die für das Parsen benötigte
Zeit entwickelt, wenn zusätzliche Constraints eingeführt werden, die,
die in den Annotationen vorhandenen Kategorien, kodieren. Dies
entspricht in etwa dem, was ein perfekter POS-Tagger, dh ein
POS-Tagger, der keine Fehler macht, leistet. Darüber hinaus wurde untesucht, ob und wie stark sich die Scores unterscheiden.
Ergebnisse:
Weitere Informationen zur Implementation des Experiments gibt es
hier.
Resultate:
- Das Experiment zeigt, daß der Parsingprozeß erheblich durch die Verwendung von Tagging-Informationen beschleunigt werden kann. Die hier verwendeten Tagging Informationen wurden aus den Annotationen der geparsten Sätze gewonnen, d.h. die obengenannten Ergebnisse, (zu vergleichen mit dem, was ein perfekter, also ein 100%er POS-Tagger leistet) sind besser, als die von einem echten Tagger zu erwartenden. Die Ergebnisse sind trotzdem ein guter Anhaltspunkt, da ein guter POS-Tagger ca 97% der Worte richtig zuordnet. Das bedeutet, daß eine Beschleunigung in der Größenordnung der obenstehenden Ergebnisse realistisch ist.
- Die Qualität der vom Parser ermittelten Ergebnisse unterscheidet sich nicht wesentlich. Ungefähr 90% der zu parsenden Sätze erhalten den gleichen Score. Offensichtlich kann die Suche mit netsearch besser von den Tagging-Informationen profitieren, als 'Frobbing'. Netsearch kam unter Verwendung von Tagginginformationen mit harten Constraints in 15 von 225 Fällen zu einem besseren und in 7 Fällen zu einem schlechterem Ergebnis, während sich die Verbesser- und Verschlechterungen unter Verwendung des Frobbing-Algorithmus' ungefähr die Waage halten (10 bzw. 9 Verbesserungen gegenüber 9 Verschlechterungen ). Verschlechterungen gibt es, wenn die Größe Suchraums die erlaubte Größe überschreitet, so daß der Zeitpunkt zu dem abgebrochen wurde, die Qualität der Lösung bestimmt, dh. die gefundene Lösung ist nicht zwangsläufig die beste, oder, der Score der in der Annotation angegebenen Lösung wird, ohne zusätzliche Constraints, von einer weiteren jedoch falschen Lösung übertroffen. In diesem Fall ist eine Verschlechterung des Parsing-Scores eine Verbesserung des Parsing-Ergebnisses.
Vorschlag von Kilian: Verify durchführen, um zu sehen, wie gut die
Ergebnisse wirlich sind. Unterschiedliche Parses können gleiche Scores
haben. In der von verify erzeugten ausgabe, steht die Korrektheit in
Prozent. Das ist besser als Scores zu verwenden.
Diese Experimete kann man auch prima mit yada machen.
Prozeßkommunikation
Die Kommunikation zwischen Parser und Tagger wird durch ein einfaches Protokoll implementiert. Bei der Implementation wurde Wert darauf gelegt, dieses so einfach wie möglich zu halten. Mehr Informationen zum Protokoll, der Ein- und Ausgabesprache gibt es
hier.
mittlere Tag-Mehrdeutigkeit und Entropie der Korpora
Entropie H, Maß für Informationsgehalt. Definiert die minimale Anzahl an Bits, die pro Wort notwendig sind, um die Tagsequenz des Korpus zu kodieren:
P(t):Wahrscheinlichkeit eines jeden Tags im Trainingsset, dh: (Häufigkeit des Tags) / (Anzahl der Worte im Korpus)
mittlere Tag-Mehrdeutigkeit A, Maß für die durchschnittliche Mehrdeutigkeit der Tags im Korpus (w_1...w_n) unter der (
unzutreffenden) Annahme, daß ein vollständiges Lexikon existiert:
Negra-Corpus: mittlere Mehrdeutigkeit: 1.734228 Entropie 4.070311
Stellingen: mittlere Mehrdeutigkeit: 1.228020 Entropie 3.763864
Diese Werte wurden wie folgt mit dem Perl-Programm entropie.pl berechnet (sieh Anhnag).
commando:
"cat ../Corpus/negra-corpus.cok | ./entropie.pl"
Offene Fragen:
- Wie taggt man Wortgraphen?
- Wie vielversprechend ist die Verwendung von POS-Tagging im Vergleich zu anderen Techniken[z.B. chunks], die ebenfalls die zu parsenden Daten anreichern, um dadurch die Analyse zu verbessern?
siehe auch
Papa-Status-Meeting 15. Nov. 2001
Page Preferences
--
JochenHagenstroem - 09 Nov 2001