Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Wortarten-Tagging für Nomen Markus Gündert Einleitung.

Ähnliche Präsentationen


Präsentation zum Thema: "Wortarten-Tagging für Nomen Markus Gündert Einleitung."—  Präsentation transkript:

1 Wortarten-Tagging für Nomen Markus Gündert Einleitung

2 Wortarten - Tagging Einleitung: 1. Was versteht man unter Wortarten-Tagging ? Definition Beispiel 2. Motivation für Wortarten-Tagging Wofür dient Wortarten-Tagging? 3. Tags & Tagsets Tag – Begriffserklärung TagSet – Begriffserklärung STTS – Tagset 4. Lemmatisierung Begriffserklärung Probleme und Lösungsideen Inhalt der Präsentation Seite 2

3 Wortarten - Tagging Projekt Modul 2 : Nomen-Tagging: 5. Projektbeschreibung Aufgabenstellung & Rahmenbedingungen Input & gewünschter Output 6. Vorüberlegung & Programmablauf Vorüberlegung Nomenerkennung Übersicht Programmablauf 7. Implementierung (Pseudocode) Aufbau des Lexikons Einlesen der tokenisierten Datei Nomenerkennung für Wörter, die NICHT am Satzanfang stehen Nomenerkennung für Wörter, die am Satzanfang stehen Tags setzen und in die Datei zurückschreiben Präsentation des Perl-Programms 8. Evaluierung AWK-Skript Vergleich mit Tree-Tagger Ergebnisse Inhalt der Präsentation Seite 3

4 1. Was versteht man unter Wortarten-Tagging zu deutsch: Wortartenannotation Anreicherung der Wortformen um grammatische Informationen Genauer: Zuweisung von Wortarten-Kennungen (Tags) an Tokens im Text Token: eine durch Leerzeichen abgegrenzte Buchstabenfolge Wortarten: Adjektive, Adverben, Konjunktionen, Nomen, Partizipien, Präpositionen, Pronomen,Verben... Ein System das eine solche Analyse und Generierung leistet heißt PART-OF-SPREECH TAGGER (POS) 1.1 Definition: Seite 4

5 1. Was versteht man unter Wortarten-Tagging TokenPOS - TagLemma ImAPPRARTim FalleNNFall|Falle vonAPPRvon familiärenADJAfamiliär ZwischenfällenNNZwischenfall oderKONoder gesundheitlichenADJAgesundheitlich ProblemenNNProblem sindVAFINsein jedochADVjedoch AusnahmenNNAusnahme möglichADJDmöglich 1.2 Ein getaggter Beispielsatz: Seite 5

6 2. Motivation für Wortarten-Tagging Suche in Korpora wenn nicht explizit vermerkt ist, welche Wortart ein Wort hat, kann man nur nach Buchstabenfolgen suchen würde zu vielen ungewollten Suchtreffer führen Beispiel: Suche von Eigennamen Der Mann heißt mit Nachnamen Herr Mann Maschinelle Übersetzung Voraussetzung für das Parsing (Syntaxanalyse) 2.1 Wozu dient Wortarten-Tagging? Seite 6

7 3. Tags & Tagsets Tag = Kürzel zur Benennung der Wortart bzw. Unterwortart bezieht sich immer auf genau ein Token beim Tagging-Vorgang wird jedem Token ein Tag zugeordnet 3.1 Tag - Beriffserklärung Seite 7

8 3. Tagsets Ein Tagset ist eine definierte Menge an Tags, die annotiert werden können Anzahl der Tags schwankt je nach Sprache, Korpus undEntwicklungsstand zwischen 45 (Penn Treebank Tagset) und über 160 (C6 Tagset) geringe Anzahl an Tags geringe Fehlerrate; lässt allerdings keine feine linguistischen Unterscheidungen zu Große Anzahl an Tags Ambiguität und Fehlerrate steigt kodieren außer Wortarteninformation noch semantische, syntaktische oder morphologische Information 3.2 Tagset - Begriffserklärung Seite 8

9 3. Tagsets STTS = Stuttgart-Tübingen-TagSet Tagset für die deutsche Sprache umfasst 54 Tags jedes Tag gehört zu einer von elf Hauptwortarten (Nomen, Verben, Artikel, Adjektive usw.) oder ist ein spezielles Tag, z.B. für Satzzeichen hierarchischer Aufbau: Sieben Hauptwortarten sind weiter unterteilt in Unterwortarten Bsp. Nomen: Aufteilung in NN und NE bis zu 3 Hierarchieebenen 3.3 STTS - Tagset Seite 9

10 3. Tagsets 3.4 Auszug aus dem STTS Seite 10

11 4. Lemmatisierung Lemma = Grundform eines Wortes Lemmatisierung: Reduktion auf die Grundform eines Wortes Lemma von Nomen: Nominativ Singular Beispiel: Autos Auto Flugzeuge Flugzeug 4.1 Begriffserklärung Seite 11

12 4. Lemmatisierung Idee: Lemmatisierung durch Streichung der en-Endung Beispiele: Felsen Fels Situationen Situation Techniken Technik Aber: Aufgaben Aufgab Gruppen Grupp Maßnahmen Maßnahm 4.2 Probleme und Lösungsideen Seite 12

13 4. Lemmatisierung Lemmatisierung durch Streichung der en-Endung Zusatzbedingung: Wort endet auf -ten Beispiele: Aktivitäten Aktivität Piloten Pilot Schriftarten Schriftart Aber: Experten Expert Geschichten Geschicht Raketen Raket 4.2 Probleme und Lösungsideen Seite 13

14 4. Lemmatisierung Lemmatisierung durch Streichung der en-Endung Zusatzbedingung: Wort endet auf -nten Beispiele: Agenten Agent Präsidenten Präsident Studenten Student Aber: Renten Rent Komponenten Komponent Konten Kont 4.2 Probleme und Lösungsideen Seite 14

15 4. Lemmatisierung Lemmatisierung durch Streichung der en-Endung Zusatzbedingung: Wort endet auf -eiten Beispiele: Arbeiten Arbeit Fähigkeiten Fähigkeit Zeiten Zeit Aber: Seiten Seit 4.2 Probleme und Lösungsideen Seite 15

16 4. Lemmatisierung Zusatzbedingung: Wort endet auf -keiten Beispiele: Möglichkeiten Möglichkeit Schwierigkeiten Schwierigkeit Tätigkeiten Tätigkeit Gleiches gilt für Wörter, die auf -heiten enden: Einheiten Einheit Gegebenheiten Gegebenheit Wahrheiten Wahrheit 4.2 Probleme und Lösungsideen Seite 16

17 4. Lemmatisierung schwierig, allgemeine Lemmatisierungsregeln zu finden für manche Nomen lassen sich dennoch Regeln definieren Regel 1: Lösche die en-Endung raus, wenn Nomen auf –keiten, –heiten oder –ungen endet Beispiel: Schwierigkeiten Schwierigkeit Einheiten Einheit Schwingungen Schwingung 4.2 Probleme und Lösungsideen Seite 17

18 4. Lemmatisierung Regel 2: Lösche die e-Endung raus, wenn Wort auf –teile endet Beispiel: Vorteile Vorteil Anteile Anteil Ersatzteile Ersatzteil 4.2 Probleme und Lösungsideen Seite 18

19 Wortarten-Tagging für Nomen Markus Gündert Projekt Modul 2

20 Wortarten - Tagging Projekt Modul 2 : Nomen-Tagging: 5. Projektbeschreibung Aufgabenstellung & Rahmenbedingungen Input & gewünschter Output 6. Vorüberlegung & Programmablauf Vorüberlegung Nomenerkennung Übersicht Programmablauf 7. Implementierung (Pseudocode) Aufbau des Lexikons Einlesen der tokenisierten Datei Nomenerkennung für Wörter, die NICHT am Satzanfang stehen Nomenerkennung für Wörter, die am Satzanfang stehen Tags setzen und in die Datei zurückschreiben Präsentation des Perl-Programms 8. Evaluierung AWK-Skript Vergleich mit Tree-Tagger Ergebnisse Inhalt der Präsentation Seite 20

21 5. Projektbeschreibung Ziel: Erstellung eines regel- und lexikonbasierten Wortarten-Taggers in Perl Anforderungen an den Tagger: automatische Erkennung und Lemmatisierung von Nomen Tagset, der verwendet werden soll: STTS (Stuttgart-Tübingen TagSet) Nomen werden als NN (Normales Nomen) getagged (1 tab Abstand) Eigennamen (NE) werden ebenfalls als NN getagged Evaluierung: mit Hilfe eines AWK-Skripts Vergleich mit dem Ergebnis des TreeTaggers (AWK-Skript) 5.1 Aufgabenstellung & Rahmenbedingungen Seite 21

22 5. Projektbeschreibung Input:Output: ZeitungenZeitungenNNZeitunginformierenüberaktuelle GeschehnisseGeschehnisseNNGeschehnisinder PolitikPoilitikNN. 5.2 Input & gewünschter Output Seite 22

23 6. Programmablauf & Algorithmus Nomenerkennung anhand Großschreibung Problem: Satzanfang Abhilfe: Wörter am Satzanfang gegen ein Nomen – Lexikon abgleichen Alternative Möglichkeiten, wenn Wort nicht im Lexikon vorkommt: Nomenerkennung anhand von Endungen: -ung,-ungen, -keit, -keiten, -sel, -urm, ürme, io Ausschließungsprinzip anhand von Kontext: 2 Nomen meistens nicht hintereinander am Satzanfang Bsp: Das Haus ist groß 6.1 Vorüberlegung Nomenerkennung Seite 23

24 6. Programmablauf & Algorithmus 1.Aufbau eines Nomen-Lexikons (einmalig) wenn möglich, Lemma gleich mit ablegen 2.tokenisierte Textdatei von Modul 1 einlesen 3.Wörter, die nicht am Satzanfang stehen, auf Großschreibung untersuchen falls groß geschrieben, Lexikon um dieses Wort eventuell ergänzen 4.Wörter am Satzanfang gegen Lexikon abgleichen oder alternativ auf Kontext und Endung überprüfen 5. NN-Tags setzen 6.2 Übersicht über den Programmablauf Seite 24

25 7. Implementierung Grundlage für das Lexikon: Textfiles mit bereits über enhaltenen Nomen: Vorverarbeitung nötig: Leerzeichen und Ziffern rauslöschen 7.1 Aufbau des Lexikons - Pseudocode Seite 25

26 7. Implementierung Pseudocode: read (all nomen_textfiles) { var Nomen = aktuelleZeile; //schreibt den aktuellen Zeileninhalt in die Variable bereinige(Nomen); //Leerzeichen und Zahlen rauslöschen (if Endung == -heiten or –keiten or –ungen or –teile { lemma = lemmatisiere(Nomen); //Anwendung der Lemmatisierungsregeln HashDBM.add(Nomen, lemma); } else { HashDBM.add(Nomen); } 7.2 Aufbau des Lexikons und Lemmatisierung Seite 26

27 7. Implementierung Pseudocode: read (tokenisierte_Datei.txt) { var wort = aktuelleZeile; //lies jede Zeile der Datei ein if(/ | | /) { //falls neuen Satzanfang erreicht merk_dir_pos(wort); //merk dir, welche Wörter am } Satzanfang stehen } 7.3 Einlesen der tokenisierten Datei Seite 27

28 7. Implementierung Pseudocode: If (wort.position != satzanfang && wort.großgeschrieben == true) { istNomen[i] = true; //merke dir, dass dieses Wort ein Nomen ist //falls gefundenes Nomen noch nicht vorhanden in der Hash-DBM if(/not exists HashDBM(aktuellesWort)/) { lemma = lemmatisiere(aktuellesWort); //ergänze HashDBM HashDBM.add(aktuelles_Wort, lemma); } i++; } 7.4 Nomenerkennung für Wörter, die NICHT am Satzanfang stehen Seite 28

29 7. Implementierung Pseudocode: If (Wort.position == Satzanfang && nextWord is not Nomen) { //Kontextberücksichtigen If (exists HashDBM{Wort} ) { istNomen[i] = true; //merke dir, dass dieses Wort ein Nomen ist } else //alternative Nomenerkennung anhand von Endungen if (Wort.endung== /ung$|ungen$|keit$|keiten$|sel$|urm$|ürme$|io$/) { istNomen[i] = true; } else { istNomen[i] = false; } 7.5 Nomenerkennung für Wörter, die am Satzanfang stehen Seite 29

30 7. Implementierung Pseudocode: For(i=0; i

31 7. Implementierung 7.7 Präsentation des Perl - Programms Seite 31

32 8. Evaluierung Vergleich des Tagging-Ergebnisses mit dem des TreeTaggers Awk-Skript: // kopiert Tagging-Ergebnisse in eine gemeinsame Datei awk NR==FNR{a[FNR]=$1\"\t\"$2;next} {print a[FNR] \"\t\" $2}" treetagger.txt myresult.txt > vergleich.txt // vergleicht Tagging-Ergebnisse awk $2 ~ /NN/ {gesamt++} $2==$3 && $1!~/ | / {korrekt++} $2 ~ /NE/ {ne++} END{print \"Treetager hat \"gesamt\" Nomen erkannt\n\MyTagger hat davon \"korrekt\" Nomen korrekt erkannt\n\Erkennungsquote: \"korrekt*100/gesamt\"%\n\"ne\" NE wurden der Einfachheitshalber als NN getagged\"}" vergleich.txt 8.1 AWK-Skript Seite 32

33 8. Evaluierung Tokenisierte Beispiel-Textdatei mit 1420 Tokens beispiel.txt TreeTagger erkannte darunter 296 Nomen Mein Tagger erkannte davon 291 Nomen korrekt Erkennungsrate: 98,31% 54 NE wurden einfachheitshalber als NN getagged 8.2 Vergleich mit TreeTagger - Ergebnisse Seite 33

34 8. Evaluierung 8.2 Vergleich mit TreeTagger - Ergebnisse Seite 33


Herunterladen ppt "Wortarten-Tagging für Nomen Markus Gündert Einleitung."

Ähnliche Präsentationen


Google-Anzeigen