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