Grundläggande textanalys, VT2013

Relevanta dokument
Korpuslingvistik vt 2007

Morfologi, särdrag, lexikon och syntax. När är det bra med morfologi? Vad är ett ord? Morfem. Stam och affix

Ordklasstaggning med funktionsordslexikon. Språklig ytanalys med regler. Jabberwocky (Källgren, 1992) Mer Jabberwocky (Lewis Carrol)

Korpuslingvistik vt 2007

Grundläggande textanalys, VT2012

Grundläggande textanalys. Joakim Nivre

ORDKLASSTAGGNING. Marco Kuhlmann Institutionen för datavetenskap

Två-nivåmodellen, TWOL. 2D1418 Språkteknologi, Nada KTH Höstterminen 2004 Lisa Lagerkvist, Me-01

Tekniker för storskalig parsning

Tekniker för storskalig parsning

Partiell parsning Parsning som sökning

Tekniker för storskalig parsning

TDDD02 Språkteknologi för informationssökning (2016) Ordklasstaggning. Marco Kuhlmann Institutionen för datavetenskap

Maskinöversättning och språkgranskning. F6: Grammatikkontroll

Innehåll. Morfologi Kan man inte bara köpa de här systemen och plugga in? Varför morfologisk analys?

Obesvarade frågor från F1

När är det bra med morfologi? Morfologi (formlära) Vad är ett ord? Ordbildning och ordböjning. Antal bokstäver i mamma? Morfem

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Tentamen Del A. Marco Kuhlmann

Språkgranskningsverktyg. Grammatikkontroll i Word

Statistisk grammatikgranskning

Varför är morfologi viktigt? Morfologisk analys och generering. Vad är ett ord (idag vs. i dag) Kan man inte lägga alla ord i en lexikonfil?

Tekniker för storskalig parsning: Grundbegrepp

Word- sense disambiguation

Parsningens olika nivåer

Tentamen Marco Kuhlmann

Grammatik för språkteknologer

Fil: /home/lah/undervisning/sprakteknologi/ohbilder/oh1_kv.odp. Tjänster

Föreläsning 5: Modellering av frasstruktur. 729G09 Språkvetenskaplig databehandling Lars Ahrenberg

Dependensregler - Lathund

Lösningsförslag till tentamen i Språkteknologi 2D1418,

Grundläggande textanalys, VT2013

Språkteknologi (SV2122) Föreläsning 7: Morfologi och ordklasser

Grundläggande textanalys, VT2013

Morfologi och automatisk morfologisk analys och generering. Varför är morfologi viktigt? Vad är ett ord (idag vs. i dag)

Bootstrapping för substantivtaggning

Perceptron som ordklasstaggare: ett fördjupningsarbete i 729G43 -Artificiell Intelligens

1 INTRODUKTION SUPERLÄNKAR SCOTS TEXTER ÖVERSÄTTNING RESURSER FÖR ÖVERSÄTTNINGSSYSTEMET

Innehåll. Syntax. Kan allt delas upp i små delar? Varför är syntax fascinerande? Olika språksyn. Vad är syntax?

Ordklasser. Särdrag, lexikon och syntax. Ordklasskriterier II. Ordklasskriterier. Öppna klasser. Slutna klasser

Parsningens olika nivåer

Korpusannotering. Beáta Megyesi. Uppsala universitet Institutionen för lingvistik och filologi Korpusannotering 1(31)

TDDD02 Språkteknologi för informationssökning (2016) Introduktion. Marco Kuhlmann Institutionen för datavetenskap

Marco Kuhlmann, Institutionen för datavetenskap, Linköpings universitet 17 mars 2014

Kursplaneöversättaren. Lina Stadell

Modellering med kontextfri grammatik Kontextfri grammatik - definition En enkel kontextfri grammatik Klasser av formella språk

DAB760: Språk och logik

Innehåll. Datorstöd för skrivande och grammatikkontroll Ola Knutsson DH2418 Språkteknologi. Datorstöd för skrivande. Vilka metoder finns?

729G09 Språkvetenskaplig databehandling

Grammatik för språkteknologer

MÖSG ht 2005 Maskinöversättningssystemet MATS

Särdrag, lexikon och syntax. Ordklasser. Ordklasskriterier II. Ordklasskriterier. Öppna klasser. Slutna klasser

Innehåll. Syntax. Kan allt delas upp i små delar? Varför är syntax fascinerande? Vad är syntax? Olika språksyn

Maskininlärning med boostrapping. Maskininlärningslabb i Språkteknologi

Datorlingvistisk grammatik

Johan Karlsson Johka490. Statistical machine translation JOHAN KARLSSON

Språkteknologi och Open Source

Grammatifix Svensk grammatikkontroll i MS Word

Introduktion till språkteknologi. Datorstöd för språkgranskning

TDDD02 Föreläsning 2 HT Reguljära uttryck och reguljära språk Lars Ahrenberg

Linköpings universitet Artificiell Intelligens II 729G11 HT Maskinöversättning. med hjälp av statistik. Erik Karlsson

Ord och morfologi. Morfologi

Skrivstöd. Joakim Nivre. Introduktion till språkteknologi. Skrivstöd. Inledning. Orsaker till stavfel. Detektering av icke-ord

International Olympiad in Informatics July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

TDDD02 Språkteknologi för informationssökning (2016) Ordpredicering. Marco Kuhlmann Institutionen för datavetenskap

Automatisk morfologisk segmentering för svenska substantiv

Språkpsykologi/psykolingvistik

Ord och morfologi. Morfologi

Maskininlärning. Regler eller ML?

2. Utgångspunkter och angreppssätt för automatisk språkgranskning

Grammatik för språkteknologer

Xenotag Probabilistisk uppmärkning av xenoglosser baserat på tecken-n-gram

Syntax S NP VP. AdjP. sleep. ideas. DH2418 Språkteknologi Johan Boye. Syntax

Statistisk Maskinöversättning eller:

- ett statistiskt fråga-svarsystem

Korpuslingvistik. Metoder och tillämpningar inom språkteknologin - ht 07. Innehåll. Vad är en korpus? Vad är korpuslingvistik?

Word2Vec. Högkvalitativa vektorrepresentationer av ord tränat på stora mängder data. Innehåll LINKÖPINGS UNIVERSITET. 1. Inledning...

Maskinöversättning möjligheter och gränser

1 Inledning 1. 4 Utvärdering 7. 5 Diskussion 7

Online MT output (EN-SE) Kriterier på bra översättning

språkgranskning, ht 2007

Frasstrukturgrammatik

729G09 Språkvetenskaplig databehandling

Grammatik för språkteknologer

729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap

Inlämningsuppgift: Pronomenidentifierare

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA

Ordklasser. Särdrag, lexikon och syntax. Öppna klasser. Slutna klasser. Vilka ord i lexikon? Vad skall man med en grammatik till?

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Parsning = analys. Parsningsalgoritmer. Användningsområden. L1: Introduktion

Språkgranskningsverktyg. Grammatikkontroll med Scarrie

Labb 2: Syntax och ordklasstaggning. Att arbeta med grammatiskt analyserade data

Neurolingvistik - Grammatik

Kungliga Tekniska Högskolan Patrik Dallmann

Informationssökning och -utvinning. Informationssökning och informationsutvinning. [IR & IE] Introduktion (1) [IR & IE] Introduktion (2)

Grafisk manual (kort version)

Corpus methods in linguistics and NLP: Introduktion till sökverktyget Korp

Grammatisk teori III Praktisk analys

poäng i del B Lycka till!

Grundläggande Textanalys VT Språkgranskning (2) Eva Pettersson

Transkript:

Grundläggande textanalys, VT2013 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv13/gta/ (Tack till Sofia Gustafson-Capkovâ för material.)

Idag - Ordklasstaggning (Sätta ordklass på ord) - Laboration 2 2

Kort repetition Meningssegmentering dela upp texten i dess meningar Exempel: Före meningssegmentering: Detta är en mening. Detta är en till mening. Efter meningssegmentering: Detta är en mening. Detta är en till mening. 3

Kort repetition Tokenisering Dela upp texten i ordbitar. Exempel: Före tokenisering: Detta är en mening. Efter tokenisering: Detta är en mening. 4

Kort repetition Morfologisk segmentering/analys dela upp orden i rotmorfen, prefix, suffix,etc Exempel (med transduktorer): Ytnivå : foxes Mellannivå : fox^s# Lexikalnivå : fox+n+pl# 5

Kort repetition Morfologisk segmentering/analys dela upp orden i rotmorfen, prefix, suffix,etc Exempel (med transduktorer): Ytnivå : foxes Mellannivå : fox^s# Lexikalnivå : fox+n+pl# Lemmatisering: Bryt ner ordet till dess rotform. Exempel: foxes fox 6

Kort repetition Morfologisk segmentering/analys dela upp orden i rotmorfen, prefix, suffix,etc Exempel (med transduktorer): Ytnivå : foxes Mellannivå : fox^s# Lexikalnivå : fox+n+pl# Lemmatisering: Bryt ner ordet till dess rotform. Exempel: foxes fox När vi kommit så här långt är det dags att bestämma vilken ordklass ordet har, detta kallas för ordklasstaggning. 7

Ordklasstaggning Part-of-Speech (PoS tagging) 8

Ordklasstaggning Part-of-Speech (PoS tagging) - Ordklasstaggning innebär att man annoterar varje token med sin ordklass. Exempel: Katten NN(substantiv) sover VB(verb) 9

Ordklasstaggning Part-of-Speech (PoS tagging) - Ordklasstaggning innebär att man annoterar varje token med sin ordklass. Exempel: Katten NN(substantiv) sover VB(verb) - Vad kan man göra efter att man har taggat alla ord med en ordklass? Hitta ickeöverlappande konstituenter av ord (chunking) Exempel: [NP en ovanlig ordklass] Hitta den syntaktiska strukturen (syntaktisk parsning) (frasstrukturer, dependensrelationer) 10

Ordklasstaggning Part-of-Speech (PoS tagging) - Det är enkelt att tagga ord som inte är flertydliga: Exempel: eller, till, från 11

Ordklasstaggning Part-of-Speech (PoS tagging) - Det är enkelt att tagga ord som inte är flertydliga: Exempel: eller, till, från - Det är svårare att tagga icke-triviala ord: Exempel: modern - kan vara substantiv eller adjektiv såg - kan vara verb eller substantiv För att lösa detta problem kan man titta på de taggar som finns runt om kring: Exempel: Modern såg flickan 12

Ordklasstaggning Part-of-Speech (PoS tagging) - Det är enkelt att tagga ord som inte är flertydliga: Exempel: eller, till, från - Det är svårare att tagga icke-triviala ord: Exempel: modern - kan vara substantiv eller adjektiv såg - kan vara verb eller substantiv För att lösa detta problem kan man titta på de taggar som finns runt om kring: Exempel: Modern såg flickan - Det är svårt att tagga ord man inte sett tidigare 13

Ordklasstaggning - Metoder Manuella metoder: Problem: tidskrävande, inkonsekventa fel Automatiska metoder: - Snabba, konsekventa fel - Tekniker: regelbaserade (SWETWOL, ENGCL) Datadrivna/Statistiska (TnT, Hunpos) Hybridsystem(Brill) 14

Regelbaserad vs datadrivna ansatser - Regelbaserade: Baseras på en regeluppsättning Kräver expertkunskap Vanliga fram till 90-talet Användes till: tokenisering, morfologisk parsning, ordklasstaggning, syntaktisk parsning 15

Regelbaserad vs datadrivna ansatser - Regelbaserade: Baseras på en regeluppsättning Kräver expertkunskap Vanliga fram till 90-talet Användes till: tokenisering, morfologisk parsning, ordklasstaggning, syntaktisk parsning - Datadrivna: Skapar automatiskt en språkmodell Kräver träningsdata Supervised learning: Man lär sig med hjälp av en instruktör Unsupervised learning: Man lär sig utan hjälp av en instruktör Kan lätt användas för olika domäner Snabb, effektiv, robust Man kan kombinera system 16

Maskininlärning Datadrivna metoder - En autmatisk inlärning av en struktur givet data Man får exempel och lär sig strukturen - Olika typer av algoritmer: Statistiska transformationsbaserade, exempelbaserade vektorbaserade m.m. 17

Kända datadrivna metoder i NLP - Transformation-Based Error Driven Learning (Brill, 1992) 18

Kända datadrivna metoder i NLP - Transformation-Based Error Driven Learning (Brill, 1992) - Memory-based learning (Daelemans, 1996) Spara undan information i en tabell och använd informationen i tabellen för att göra nya slutsatser (icke-parametriserade metoder) 19

Kända datadrivna metoder i NLP - Transformation-Based Error Driven Learning (Brill, 1992) - Memory-based learning (Daelemans, 1996) Spara undan information i en tabell och använd informationen i tabellen för att göra nya slutsatser (icke-parametriserade metoder) - Informations teoretiska ansatser: Maximum Entropy modelling(ratnaparkhi, etc) Hidden Markov Model (Charniak, Brants, etc) 20

Kända datadrivna metoder i NLP - Transformation-Based Error Driven Learning (Brill, 1992) - Memory-based learning (Daelemans, 1996) Spara undan information i en tabell och använd informationen i tabellen för att göra nya slutsatser (icke-parametriserade metoder) - Informations teoretiska ansatser: Maximum Entropy modelling(ratnaparkhi, etc) Hidden Markov Model (Charniak, Brants, etc) - Decision trees (Quinlan, Daelemans) 21

Kända datadrivna metoder i NLP - Transformation-Based Error Driven Learning (Brill, 1992) - Memory-based learning (Daelemans, 1996) Spara undan information i en tabell och använd informationen i tabellen för att göra nya slutsatser (icke-parametriserade metoder) - Informations teoretiska ansatser: Maximum Entropy modelling(ratnaparkhi, etc) Hidden Markov Model (Charniak, Brants, etc) - Decision trees (Quinlan, Daelemans) - Inductive Logic Programming (Cussems, Lindberg & Eineborg, etc) Man gör slutsatser utifrån givna regler Exempel: IF Mother(x,y) AND MALE(y) THEN SON(y) 22

Kända datadrivna metoder i NLP - Transformation-Based Error Driven Learning (Brill, 1992) - Memory-based learning (Daelemans, 1996) Spara undan information i en tabell och använd informationen i tabellen för att göra nya slutsatser (icke-parametriserade metoder) - Informations teoretiska ansatser: Maximum Entropy modelling(ratnaparkhi, etc) Hidden Markov Model (Charniak, Brants, etc) - Decision trees (Quinlan, Daelemans) - Inductive Logic Programming (Cussems, Lindberg & Eineborg, etc) Man gör slutsatser utifrån givna regler Exempel: IF Mother(x,y) AND MALE(y) THEN SON(y) Support Vector Machines (Vapnik, Joachims, etc) 23

Regelbaserade taggare 24

Regelbaserade taggare - Metod: 1. Använd ett lexikon för att ge varje ord en uppsättning av möjliga taggar 2. För att avgöra vilket alternativ av taggar som ska användas, använder man en handskriven regelmängd. - Man kan göra lexikonet och regelmängden större. - Olösta ambiguiteter kan lämnas kvar för att lösas manuellt. 25

Regelbaserade taggare - Lingvister konstruerar reglerna för hand - Ofta lämnas ambiguiteter kvar vid osäkerhet till exempel hos TWOL, ENGTWOL, SWETWOL - Första ordklassarna skapades: Harris 1962 Klein och Simmons 1963 Green och Rubin 1971 26

Regelbaserade taggare TWOL / SWETWOL / ENGTWOL - Består av handskrivna regler som kompileras till finita automater 27

Regelbaserade taggare TWOL / SWETWOL / ENGTWOL - Består av handskrivna regler som kompileras till finita automater - För att minimera taggningsfelen kan en lingvist ändra på reglerna (iterativt) 28

Regelbaserade taggare TWOL / SWETWOL / ENGTWOL - Består av handskrivna regler som kompileras till finita automater - För att minimera taggningsfelen kan en lingvist ändra på reglerna (iterativt) - Vid varje iteration körs reglerna på korpusen och för att korrigera de allvarligaste felen, ändras reglerna. 29

Regelbaserade taggare TWOL / SWETWOL / ENGTWOL - Består av handskrivna regler som kompileras till finita automater - För att minimera taggningsfelen kan en lingvist ändra på reglerna (iterativt) - Vid varje iteration körs reglerna på korpusen och för att korrigera de allvarligaste felen, ändras reglerna. - Om man vill skapa egna regler kan man använda PCKIMMO: www.sil.org/pckimmo 30

Regelbaserade taggare TWOL / SWETWOL / ENGTWOL - Består av handskrivna regler som kompileras till finita automater - För att minimera taggningsfelen kan en lingvist ändra på reglerna (iterativt) - Vid varje iteration körs reglerna på korpusen och för att korrigera de allvarligaste felen, ändras reglerna. - Om man vill skapa egna regler kan man använda PCKIMMO: www.sil.org/pckimmo - Utvecklat av Kimmo Koskenniemi 1983 31

Regelbaserade taggare TWOL / SWETWOL / ENGTWOL - Består av handskrivna regler som kompileras till finita automater - För att minimera taggningsfelen kan en lingvist ändra på reglerna (iterativt) - Vid varje iteration körs reglerna på korpusen och för att korrigera de allvarligaste felen, ändras reglerna. - Om man vill skapa egna regler kan man använda PCKIMMO: www.sil.org/pckimmo - Utvecklat av Kimmo Koskenniemi 1983 - Lauri Karttungen implementerade detta för engelska 1983 32

Regelbaserade taggare TWOL / SWETWOL / ENGTWOL - Består av handskrivna regler som kompileras till finita automater - För att minimera taggningsfelen kan en lingvist ändra på reglerna (iterativt) - Vid varje iteration körs reglerna på korpusen och för att korrigera de allvarligaste felen, ändras reglerna. - Om man vill skapa egna regler kan man använda PCKIMMO: www.sil.org/pckimmo - Utvecklat av Kimmo Koskenniemi 1983 - Lauri Karttungen implementerade detta för engelska 1983 - Fredik Karlsson utvecklade detta för svenska 1992 www.ligsoft.fi/swetwol 33

TWOL - bygger på tvånivåmorfologi - Abstrakta lexikonformer med 2 nivåer: ortografisk: ytnivå lexikal-morfologisk: djupnivå - Finite-state-system: De två nivåerna relateras med transduktorer - Möjliggör analys och generering 34

Transduktor repetition En transduktor består av två parallella band med symboler: - ett för den övre nivån - ett för den undre nivån Exempel: lexikal nivå mellannivå f S o S x S1 f 2 o 3 x 4 ε 5 6 +Sg # S +N S +Pl ^s# S Lexikal nivå :fox+n+sg Mellannivå: fox# resultatet när vi kört färdigt transduktorn på fox+n+sg 35

Transduktor repetition En transduktor består av två parallella band med symboler: - ett för den övre nivån - ett för den undre nivån Exempel: mellannivå ytnivå f S o S x S1 f 2 o 3 x 4 ε 5 6 S ^ s s S S7 # ε S Mellannivå: fox# # ε Ytnivå : fox resultatet när vi kört färdigt transduktorn på fox# 36

Transduktor repetition - De övre och den undre symbolerna kan paras ihop med : : Exempel: f:f o:o x:o +N:ε +Sl:# 37

Transduktor Exempel Övre band: aab Undre band: ab Notation: <aab, ab> Kan läsas på olika sätt: a:a a:b b:ε a:a a:ε b:b a:ε a:a b:b a:ε a:ε b:ε ε:a ε:b: 38

De två nivåerna Morfolgisk gräns: + eller ^ Null character : 0, Ø, eller? Strängslut : # Lexikalisk : bil+ar+na+s Ortografisk : bil0ar0na0s Korresponderande par: b:b i:i l:l +:0 a:a r:r +:0 n:n a:a +:0 s:s 39

Tvånivåmorfologi - Tvånivåregler - Syntax: <realisering> <operator> <kontext> X:x LC_RC X:x realiseras som x om vänsterkontexten är LC och högerkontexten är RC Exempel: fågel fåglar Abstrakt lexikalform: E:0 V(C)C_L+V V vokal C - konsonant E:e annars Lexikal nivå: fågel+ar Ortografisk nivå: 40

Tvånivåmorfologi - Tvånivåregler - Syntax: <realisering> <operator> <kontext> X:x LC_RC X:x realiseras som x om vänsterkontexten är LC och högerkontexten är RC Exempel: fågel fåglar Abstrakt lexikalform: E:0 V(C)C_L+V V vokal C - konsonant E:e annars Lexikal nivå: fågel+ar Ortografisk nivå: 41

Tvånivåmorfologi - Tvånivåregler - Syntax: <realisering> <operator> <kontext> X:x LC_RC X:x realiseras som x om vänsterkontexten är LC och högerkontexten är RC Exempel: fågel fåglar Abstrakt lexikalform: E:0 V(C)C_L+V V vokal C - konsonant E:e annars Lexikal nivå: fågel+ar Ortografisk nivå: fåg0l0ar 42

TWOL - Körexempel "<sticksugna>" "stick#suga" V PCP2 UTR/NEU DEF SG NOM "stick#suga" V PCP2 UTR/NEU DEF/INDEF PL NOM "stick#sugen" A UTR/NEU DEF SG NOM "stick#sugen" A UTR/NEU DEF/INDEF PL NOM "<getingarna>" "geting" N UTR DEF PL NOM Källa: http://www2.lingsoft.fi/cgi-bin/swetwol 43

Regelbaserade taggare - Constraint grammar 44

Regelbaserade taggare Constraint grammar - Man använder en anpassad variant av TWOL 45

Regelbaserade taggare Constraint grammar - Man använder en anpassad variant av TWOL - Fred Karlsson, 1992 46

Regelbaserade taggare Constraint grammar - Man använder en anpassad variant av TWOL - Fred Karlsson, 1992 - www.lingsoft.fi/swetwol 47

Regelbaserade taggare Constraint grammar - Man använder en anpassad variant av TWOL - Fred Karlsson, 1992 - www.lingsoft.fi/swetwol - behandlar alla aspekter av böjningsmorfologi 48

Regelbaserade taggare Constraint grammar - Man använder en anpassad variant av TWOL - Fred Karlsson, 1992 - www.lingsoft.fi/swetwol - behandlar alla aspekter av böjningsmorfologi - behandlar de mest produktiva avledningar 49

Regelbaserade taggare Constraint grammar - Man använder en anpassad variant av TWOL - Fred Karlsson, 1992 - www.lingsoft.fi/swetwol - behandlar alla aspekter av böjningsmorfologi - behandlar de mest produktiva avledningar - man gör en sammansättningsanalys 50

Regelbaserade taggare Constraint grammar - Man använder en anpassad variant av TWOL - Fred Karlsson, 1992 - www.lingsoft.fi/swetwol - behandlar alla aspekter av böjningsmorfologi - behandlar de mest produktiva avledningar - man gör en sammansättningsanalys - kärnvokabulären består av 30 000 50 000 ord 51

Regelbaserade taggare Constraint grammar - Man använder en anpassad variant av TWOL - Fred Karlsson, 1992 - www.lingsoft.fi/swetwol - behandlar alla aspekter av böjningsmorfologi - behandlar de mest produktiva avledningar - man gör en sammansättningsanalys - kärnvokabulären består av 30 000 50 000 ord - De flesta ordformerna får en morfologisk analys 52

Regelbaserade taggare - Constraint Grammar Exempel: EngCG tagger (Voutolainen 1995, 1999) Varje ord körs igenom en lexikon/morfologisk analys, t. ex. TWOL Resultat: Man får potentiella taggar för varje ord Om ordet inte finns i lexikonet använder man en morfologisk heuristisk För att disambiguera använder man en regelmängd av villkor 53

Regelbaserade taggare - Constraint grammar Exempel: Constraint/villkor (@w=0 VFIN (-1 TO)) Om ett ord får analysen VFIN (finit verb) och om ordet före är TO så ska analysen för ordet tas bord 54

Regelbaserade taggare Regelutvecklingen för EngCG: - Består av kontextfria regler - För att förbättra taggningen, korrigerar en lingvist ordningen för regeltillämpningen (löpande) - Vid varje iteration förändras reglerna förändringarna baseras på taggningsfelen 55

Constraint Grammar EngCG för morfologisk disambiguering av PoS och morfologi: - 1 100 grammatisk baserade villkor för disambiguering - Accuracy: 99,7 100 % - 3-6 % morfologisk ambiguitet lämnas kvar - För att lösa 50 % av de kvarvarande ambiguiteterna används 200 heuristiska villkor 56

Constraint Grammar - Exempel I started work Annoterad text: "<*i>" "i" <*> <NonMod> PRON PERS NOM SG1 SUBJ @SUBJ "<started>" "start" <SV> <SVO> <P/on> V PAST VFIN @+FMAINV "<work>" "work" N NOM SG @OBJ Källa: http://www2.lingsoft.fi/cgi-bin/engcg 57

Constraint Grammar - Andra tillämpningar - Svenska (SWECG) - PALAVRAS parser för portugisiska (Bick 2000) finns med generaliserade dependensmarkörer och semantiska prototyptaggar - DanGram - The Oslo-Bergen Tagger (Bokmål och nynorsk) - Samiska, franska, tyska, katalan, estniska, spanska, esperando etc 58

Constraint Grammar nyare versioner av CG - CG2 (Tapanainen 1996) och VISL CG2 - VISL CG3 möjlighet till dependensparsning http://visl.sdu.dk/constraint_grammar.html 59

Datadriven ordklasstaggare 60

Datadriven ordklasstaggare Övervakad inlärning (suvervised learning) - Man utgår från en färdigtaggad korpus och lär ett program hur man taggar en text. 61

Datadriven ordklasstaggare Övervakad inlärning (suvervised learning) - Man utgår från en färdigtaggad korpus och lär ett program hur man taggar en text. - Inlärningsfasen: Man använder en algoritm för att hitta den bästa förklaringen på det man observerar i korpusen. 62

Datadriven taggning Mål Varje ord i en text tilldelas en unik ordklass Steg Input: text Lexikonuppslagning: taggning med default-taggar Disambiguering: tvetydliga och okända ord får en rätt tagg 63

Datadriven taggning Vi behöver bestämma följande: Vilken inlärningsmetod vi vill använda Representera taggarna (taggset) Eventuellt inkludera särdrag/attribut Bestämma datamängderna: --- Träningsmängd --- Testmängd --- Valideringsmängd Utvärderingsmetod 64

Exempel på klassrepresentationer Pelle PM_NOM NP00N@0S tillfrågades VB_PRT_SFO V@IIPS inte AB RG0S i PP SPS frågan NN_UTR_SIN_DEF_NOM NCUSN@DS. MAD FE 65

Särdrag/Attribut Info TBL TnT ord + + suffix 4 10 prefix 4 - versalisering + + siffror - - ord före 3 - Ord efter 3 - Tagg före 3 2 Tagg efter 3-66

Transformationsbaserad inlärning(tbl) 67

Transformationsbaserad inlärning(tbl) - Eric Brill 1992, 1995 - En av de mest sprida och använda datadrivna taggarna i världen. - Transformation-Based Error-Driven Learning - Bygger på regler eller transformationer - Systemet lär sig genom att upptäcka fel - Grammatiken härleds direkt från en träningskorpus supervised learning 68

Transformationsbaserad taggning - Grundprincipen Lexikonuppslagning: - välj den tagg med högst frekvens för ett ord enligt ett lexikon. om det saknas använd heuristik Disambiguering: - titta på kontexten och ändra på den initiala taggen Trigger: - Kontextuella och lexikala särdrag utlöser transformationsregler Transformationer: - omskrivningsregler som ändrar en tagg vid en viss trigger 69

Transformationsbaserad taggning - Man använder två typer av regler: lexikala regler: för att annotera okända ord kontextuella regler: för att förbättra taggningen av den lexikala modulen Regelformen: - Lexikal: om villkor, tagga ordet med taggen T - villkor: - ordet innehåller tecken X. - ordet har prefix/suffix som är max 4 tecken långa och om dem tas bort/läggs till får man ett känt ord 70

Transformationsbaserad taggning - regelmallar - Kontextuell: om villkor byt tagg T1 mot T2 Villkor: ordet i fråga, taggarna eller orden i kontexten schema t i 3 t i 2 t i 1 t i t i+1 t i+2 t i+3 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * Tabell 10.7, M&S s. 363 71

Transformationsbaserad taggning Transformationsregler: ursprungstagg ersättsningstagg trigger NN VB Föregående tagg är TO: to go to school VBP VB En av föregående taggar är MD: can cut VBP VB Föregående ord är en av n't eller don't Tabell 10.8 M&S s. 363 72

Transformationsbaserad taggning - Hur skapar vi reglerna? från en taggad korpus supervised maskininlärning 1. Definiera omskrivningsmönster 2. Träna på en träningskorpus 73

Transformationsbaserad inlärning 1. Initialisera modellen: - Varje ord i korpusen får den mest frekventa taggen. 2. Undersök alla transformationer och välj den som mest reducerar antalet taggningsfel ( error rate = antal feltaggade ord) 3. Använd den valda transformationen och tillämpa den på korpusen. Om det blev förbättring så fortsätter man med steg 2. 4. Spara reglerna i samma ordning som de användes och avsluta inlärningsprocessen. 74

Transformationsbaserad inlärning - Resultat - inlärningsresultat: ordnade omskrivningsregler reglerna kan läsas och modifieras långsam inlärning precisionen för taggningen är ungefär densamma som för de statistiska taggarna 75

Transformationsbaserad inlärning Implementationer: - fntbl (Grace Ngai & Florian Radu 2000) snabb - µtbl(lager, 2000) Implementerat i Prolog (logikprogrammering) (http://www.ling.gu.se/~lager/mutbl.html) 76

Transformationsbaserad inlärning - Egenskaper Fördelar: rikt system med lexikala och kontextuella mallar man kan lägga till nya mallar reglerna är tolkningsbara reglerna kan ändras enkel att förstå Nackdelar: reglerna är ordnade långsam 77

Stokastiska taggare 78

Stokastiska taggare - Använd en träningskorpus för lära sannolikeheten att ett ord har en viss tagg i en given kontext. - Hidden Markov Model eller HMM-tagger HMM-taggning innebär att man väljer den sekvens av taggar som har högst sannolikhet Taggning blir ett klassificeringsproblem: Vad är den bästa sekvens av taggar som motsvarar en viss ordsekvens? 79

Hur fungerar en HMM-taggare? - Givet: Alla möjliga sekvenser av taggar En sekvens av n ord - Algoritmen för en HMM-taggare väljer den taggsekvens som maximerar produkten av dessa två termer: sannolikheter för ord-tagg-kombination sannolikhet för taggsekvensen: argmax t 1 n n i=1 P (w i t i ) P(t i t i 1 ) 80

Hur fungerar en HMM-taggare? - Räkna fram taggfrekvenser för varje tagg - Räkna fram sannolikheterna,, talar om sannolikheten för att en given tagg är kopplat till ordet w i P (w i t i ) t i - Räkna fram sannolikheterna för en taggsekvens (bigramfrekvenser) P (t i t i 1 ) - Räkna fram produkten av lexikala sannolikheter och kontextuella sannolikheter och välj den tagg med högst sannolikhet 81

Den mest sannolika taggsekvensen Secretariat/NNS is/vbz expected/vbn to/to race/vb tomorrow/nr Exempel: race/vb eller race/nn? - NNS VBZ VBN TO VB NR - NNS VBZ VBN TO NN NR - Ambiguiteten löses global och den taggsekvens med högst sannolighet avgör. 82

Den mest sannolika taggsekvensen t 1 n =argmax t 1 n P (t 1 n w 1 n ) - Av alla taggsekvenser med längden n letar vi efter den taggsekvens som maximerar t 1 n P (t 1 n w 1 n ) - PROBLEM: Vi känner inte till P (t 1 n w 1 n ) 83

Den mest sannolika taggsekvensen t 1 n =argmax t 1 n P (t 1 n w 1 n ) - Vi kan skriva om formeln med bayes lag: t 1 n =argmax t 1 n P (w 1 n t 1 n ) P (t 1 n ) P(w 1 n ) P (w 1 n ) - Då inte påverkas av taggsekvensen, kan vi utesluta den: t 1 n =argmax t 1 n P (w 1 n t 1 n ) P (t 1 n ) PROBLEM: Vi kan inte räkna ut det här så vi behöver förenkla ytterligare 84

Den mest sannolika taggsekvensen - Förenklingar - Sannolikheten för ett ord beror endast på dess egna ordklass och inte på de ord/ordklasser runt omkring: P (w 1 n t 1 n ) i=1 n P (w i t i ) - The bigram assumption : Sannolikheten för en tagg är endast beroende av den föregående taggen (snarare än hela sekvensen av taggar). n P (t 1 n ) i=1 P(t i t i 1 ) Vi kan nu skriva om formeln så här: t 1 n =argmax t 1 n P (t 1 n w 1 n ) argmax t 1 n n i=1 P (w i t i ) P (t i t i 1 ) 85

Den mest sannolika taggsekvensen - Vad är sannolikheten att race har VB eller NN som PoS-tagg? P (w i t i ) - De lexikala sannolikheterna kan vi räkna fram utifrån korpusen: P (race NN )=0.00057 (Hur stor är sannolikheten att substantivet är race?) P (race VB)=0.00012 (Hur stor är sannolikheten att verbet är race?) 86

Den mest sannolika taggsekvensen - Hur stor är sannolikheten för VB respektive NN givet den föregående taggen (TO)? P (t i t i 1 )= C (t i 1,t i ) C (t i 1 ) =#(t i 1,t i ) #(t i 1 ) - Vi härleder den maximala sannolikheten (maximum likelihood estimate) för taggövergången från korpusen: P ( NN TO)= P (VB TO)= C (TO, NN ) =0.00047 C (TO) C (TO,VB) =0.83 C (TO) 87

Den mest sannolika taggsekvensen - Vad är sannolikheten för den efterföljande taggen (tomorrow/nr)? - Vi härleder den maximala sannolikheten (maximum likelihood estimate) för taggövergången från korpusen: P ( NR VB)= P ( NR NN )= P (t i t i 1 )= C (t i 1,t i ) C (t i 1 ) =#(t i 1,t i ) #(t i 1 ) C (VB, NR) =0.0027 C (VB) C ( NN, NR) =0.0012 C ( NN ) 88

Den mest sannolika taggsekvensen - Vi får följande resultat: argmax t 1 n n i=1 P(w i t i ) P(t i t i 1 ) - TO VB NR - sekvensen: P (race VB) P (VB TO) P( NR VB) = 0.00012 * 0.83 * 0.0027 = 0.00000027 - TO NN NR sekvensen: P (race NN ) P( NN TO) P ( NR NN ) = 0.00057 * 0.00047 * 0.0027 = 0.00000000032 - Sannolikheten för sekvensen med taggen VB är högre, vilket medför att race taggas med VB. 89

Den mest sannolika taggsekvensen - Vi får följande resultat: argmax t 1 n n i=1 P(w i t i ) P(t i t i 1 ) - TO VB NR - sekvensen: P (race VB) P (VB TO) P( NR VB) = 0.00012 * 0.83 * 0.0027 = 0.00000027 - TO NN NR sekvensen: P (race NN ) P( NN TO) P ( NR NN ) = 0.00057 * 0.00047 * 0.0027 = 0.00000000032 - Sannolikheten för sekvensen med taggen VB är högre, vilket medför att race taggas med VB. Detta hände trots att den lexikala sannolikheten för att race är ett verb är lägre. 90

Ordklasstaggning är grundläggande i NLP Taggning är ett standardproblem Det finns olika typer av taggare för många språk Samma princip gäller för andra uppgifter: --- Maskinöversättning --- Informationsextraktion (IE: Information extraction) --- parsning --- Fråge-svarssystem (QA: question answering) --- Information retrieval (IR) --- Text-till-tal system (TTS: Text-to-Speech System) --- Namnigenkänning (named entity recognition) 91

Utvärdering 92

Utvärdering - När man tränat en taggare, exekverar man den på en testmängd som består av ord. resultat: orden blir tilldelad en varsin tagg - Vid utvärdering jämför man en taggares utdata med en guldstandard(facit) för de taggade orden. - Man använder följande mått: Accuracy, Precision, Täckning och F-measure 93

Utvärdering - mått Accuracy Den procentdel där taggningen i utdatan och guldstandarden stämmer överens. 94

Utvärdering - mått Precision: procentandelen korrekt annoterade taggar jämfört med alla annoterade taggar. Precision= # korrekt taggade token med PoStag X totalt # taggade token med PoStag X 95

Utvärdering - mått Täckning: procentandelen korrekt annoterade taggar jämfört med guldstandarden. Recall= # korrekt taggade token med PoStag X totalt # taggade token med PoStag X i guldstandard 96

Utvärdering - mått F-measure: Det harmoniska medelvärdet, ett sätt att kombinera Precision och Täckning. F β = (β2 +1) Precision Recall β 2 ( Precision+Recall ) - Parametern β viktar precision och täckning om β<1 betonas precision om β>1 betonas recall om β=1 viktas precision och recall lika kallas för - measure F 1 F 1 = 2 Precision Recall Precision+Recall F = 2 P R P+R 97

Utvärdering - Exempel Taggarens analys av Maria såg en bra film på TV. Maria/N såg/n en/d bra/adv film/n på/p TV/N./F Guldstandard: Maria/N såg/v en/d bra/a film/n på/p TV/N./F Accuracy: 6/8 = 0,75 98

Utvärdering - Exempel Taggarens analys av Maria såg en bra film på TV. Maria/N såg/n en/d bra/adv film/n på/p TV/N./F Guldstandard: Maria/N såg/v en/d bra/a film/n på/p TV/N./F N: Precision = 3/4 = 0,75 Recall = 3/3 = 1 F = 2 * 0,75 * 1 / (0,75 +1) = 0,86 D: Precision = 1/1 = 1,0 Recall = 1/1 = 1,0 F = 2 * 1 * 1 / (1 +1) = 1 99

Utvärdering - Exempel Taggarens analys av Maria såg en bra film på TV. Maria/N såg/n en/d bra/adv film/n på/p TV/N./F Guldstandard: Maria/N såg/v en/d bra/a film/n på/p TV/N./F Adv: Precision = 0/1 = 0 Recall = 0/0 = - F = 2 * 0 * 0 / (0 +0) = - P: Precision = 1/1 = 1,0 Recall = 1/1 = 1,0 F = 2 * 1 * 1 / (1 +1) = 1 100

Utvärdering - Exempel Taggarens analys av Maria såg en bra film på TV. Maria/N såg/n en/d bra/adv film/n på/p TV/N./F Guldstandard: Maria/N såg/v en/d bra/a film/n på/p TV/N./F F: Precision = 1/1 = 1 Recall = 1/1 = 1 F = 2 * 1 * 1 / (1 +1) = 1 A: Precision = 0/0 = - Recall = 0/1 = 0 F = 2 * 0 * 0 / (0 +0) = 0 101

Utvärdering - Metod - Ange en baseline, dvs det värde som systemet bör klara av utan någon specifik kunskap. - Dela upp korpusen i följande delar: träningsdel (80%) : --- används när man tränar taggaren testdel (10 %) : --- Används när man testar hur bra taggaren skulle kunna fungera i verkligheten valideringsdel(10 %): --- Används när man försöker hitta vilka inställningar som fungerar bäst för taggaren, Exempel: När man vill komma fram till vilken storlek på n-grammen som är bäst 102

Testmängd vs valideringsmängd Verkligheten baseline: kör på testmängden Optimering baseline: kör på valideringsmängden - ändra en inställning - kör på valideringsmängden - jämför med baseline om bättre, kom ihåg den nya inställningen - upprepa tills du är nöjd med resultatet - använd de nya inställningarna och kör på testmängden - jämför med baseline 103

Utvärdering - Metod Man kan använda n-fold-cross validation när det är meningsfullt och lämpligt. Exempel ( n=5): 1. Dela upp träningsmängden i 5 lika stora delar 2. Skapa nya träningsmängder och utvärdera enligt följande mall: Träningsmängd: 1,2,3,4 Utvärdera på del: 5 Träningsmängd: 1,2,3,5 Utvärdera på del: 4 Träningsmängd: 1,2,4,5 Utvärdera på del: 3 Träningsmängd: 1,3,4,5 Utvärdera på del: 2 Träningsmängd: 2,3,4,5 Utvärdera på del: 1 3. Beräkna medelvärde på utvärderingsresultaten 104

Viktiga saker att tänka på: - Storleken på korpus, ju större korpus desto bättre - Storleken på taggset - Typ av tränings- och testmängd 105

Resultat för ordklasstaggning av svenska ACCURACY TBL TNT Total(%) 89,06 93,55 Known(%) 94,35 95,50 Unknown(%) 58,52 82,29 Accuracy för alla ord, och accuracy för kända och okända ord uppdelat på olika taggar. Åtskilda tränings- och taggset, 100k tokens, taggset 139 taggar. 106

Vanligaste felen Korrekt adjektiv(aqpnsnis) partikel(qs) Felaktig tagg adverb(rgps) preposition(sps) Substantiv pluralis(ncnpnis) Substantiv singularis(ncnsnis) Adjective singularis(a...s...) adverb(rg0s) Adjectiv pluralis(a...p...) partikel(qs) 107

Resultat size TBL TnT 1000 61,10 67,98 2000 63,44 74,87 5000 70,49 81,72 10000 74,62 85,05 20000 80,32 88,25 50000 85,33 91,34 100000 89,84 93,23 200000 92,40 94,41 500000 93,45 95,39 1000000 92,74 95,89 108

Nästa gång: - Stavningskontroll - Laboration 3 - Fördjupningsuppgift 109