8.1
 Wortarten-Tagging

Wortarten-Tagging 

Definition 8.1.1 (Wortarten-Tagger). Ein Wortarten-Tagger (engl. Part-of-Speech Tagger, kurz POS-Tagger) ist ein Programm, das für jedes Token eines Korpus die Wortart bestimmt, indem es ein Klassifikationskürzel als Tag zuordnet.

Beispiel 8.1.2 (Zeilenformat mit Schrägstrich).
Sonderrechte/NN für/APPR Minoritätenkollektive/NN widersprechen/VVFIN

N-Best-Tagging

Tagger, welche die Wortarten mit einer Wahrscheinlichkeit versehen zurückliefern, können für n-best-Tagging verwendet werden.

Tag-Sets für Englisch 

Definition 8.1.3 (Tag-Set). Ein Tag-Set (Menge der Tags) kodiert typischerweise nebst Wortarteninformation noch semantische, syntaktische oder morphologische Information. Die Grösse eines Tag-Sets kann stark variieren.


Tag-Set Grösse Beispiel

Bedeutung

Brown 87 (179) she/PPS

Pronoun, personal, subject, 3SG

Penn 45 she/PRP

Pronoun (personal or reflexive)

CLAWS c5 62 she/PNP

Pronoun personal

London-Lund 197 she’s/RA*VB+3

pronoun, personal, nominative + verb "to be", present tense, 3rd person singular


Tabelle 8.1: Übersicht: Tag-Sets für Englisch

Penn-Treebank-Tag-Set (PTTS)

Das wichtigste Tag-Set für Englisch ist eine vereinfachte Version des Brown-Tag-Sets, welches ab den 60-er Jahren in Amerika im Zusammenhang mit dem Brown-Korpus entstanden ist.

Anforderungen an ein Programm für Tagging 
Positive Eigenschaften eines Taggers nach [Cutting et al. 1992, 133]:

Was fehlt?

8.1.1
 Probleme des Taggings

Wortformen mit mehreren möglichen Tags 

Mehrdeutigkeit

Im Brown-Corpus sind 11% aller Wortformen ambig. Das entspricht jedoch 40% der Token.


pict
Tag-Ambiguität im Englischen


Baseline (Basis-Algorithmus)

Nimm für jedes Wort das Tag, mit dem es am häufigsten vorkommt. Ergibt ca. 90% richtige Entscheidungen.

Optimierungspotential

Berücksichtige den linken Kontext (Tags und/oder Wörter) und ev. den rechten Kontext (Wörter), um die Baseline-Entscheidung umzustossen.

Verwendeter Kontext des Trigramm-Taggers TnT 
Zum Bestimmen des Tags eines Tokens wn werden verwendet:


PIC

NLTK-Buch [Bird et al. 2009, 204]

Abbildung 8.1: Kontextmodell des Trigramm-Taggers tnt


Mehrdeutigkeit bei deutschen Wörtern 

Beispiel 8.1.4 (Verteilung der Mehrdeutigkeit).
Vorkommen in einem Korpus von ca. 80’000 Token

die ART 2351 PRELS 448 PDS 4  
Mehrheit NN 40  
bestimmt VVPP 7 VVFIN 4 ADV 1 ADJD 1

Mehrdeutigkeit in einem deutschen Testkorpus (STTS) 


pict

Abbildung 8.2: Ambiguitätsraten aus der Frankfurter Rundschau [Volk und Schneider 1998]

Dem Tagger unbekannte Wortformen haben die Ambiguitätsrate 0.

Unbekannte Wörter 
Kein Tagger-Lexikon kann vollständig sein (Eigennamen, Komposita, Zahlausdrücke). Wie kann ein Tagger sinnvolle Vorschläge machen?

Beispiel 8.1.5 (Morphologische Heuristiken für Englisch).

Nutzen und Anwendung des POS-Tagging 

Definition 8.1.6 (POS-Tagging (automatische Wortartenbestimmung)). POS-Tagging ist eine eigenständige und vielfältig benötigte sprachtechnologische Anwendung , welche effizient und zuverlässig funktioniert. Anwendungen: Lemmatisierung, Lexikographie, Sprachsynthese, Spracherkennung, Dokumentensuche, Bedeutungsdesambiguierung usw.

Beispiel 8.1.7 (Sprachsynthese/Bedeutungsdesambiguierung).

Beispiel 8.1.8 (Lemmatisierung).

Der Apostroph in der phonetischen Umschreibung steht vor der hauptbetonten Silbe.

8.1.2
 Fallstudie TnT-Tagger

Fallstudie TnT-Tagger: Übersicht 


pict

Abbildung 8.3: Training, Tagging und Evaluation mit dem TnT-Tagger

Fallstudie TnT-Tagger: Anpassbarkeit konkret 
Man nehme …[Clematide 2007]

1.
ein getaggtes Korpus (vertikalisierter Textformat)


$ head -n 3 ../../uis-vonabisz.tts
Studienführer           NN
"                       $(
Universität             NN
$ wc ../../uis-vonabisz.tts
9676  18154 118761 ../../uis-vonabisz.tts
2.
Produziere aus 9/10 davon ein Trainingskorpus, indem alle bis auf die letzten 965 Zeilen in eine neue Datei geschrieben werden.


$ head --lines -965  ../../uis-vonabisz.tts > training.tts
3.
Produziere aus dem restlichen 1/10 ein Testkorpus, indem die letzten 965 Zeilen in eine neue Datei geschrieben werden.


$ tail --lines 965  ../../uis-vonabisz.tts > test.tts
4.
Trainiere über dem Trainingskorpus


$ tnt-para training.tts
5.
Probiere aus, ob der Tagger was Vernünftiges tut.


$ tnt training /dev/stdin > out.tts
Der
Tagger
läuft
. [mit Control-D für Dateiende abschliessen
$ more out.tts
6.
Erstelle ein Testkorpus.


$ cut -f 1 test.tts > eval.txt
7.
Tagge das Testkorpus mit dem trainierten Modell.


$ tnt training eval.txt > eval.tts
8.
Evaluiere das getaggte Evaluationskorpus gegen das Testkorpus.


$ tnt-diff test.tts eval.tts