Diplomarbeit von Jochen Hagenström

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:

  1. Der Zeitaufwand, der für das Parsen eines Satzes erforderlich ist, soll verringert werden.
  2. Kann das CDG-System Tagging-Fehler korrigieren?
  3. 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:
Gewicht netsearch frobbing
0.000 36% 56%
0.100 71% 54%
0.999 96% 102%

Weitere Informationen zur Implementation des Experiments gibt es hier.

Resultate:
  1. 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.
  2. 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:
entropie-formel.gif
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:
mittlereMehrdeutigkeit.gif

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"

Experimente

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
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback