Tekniker för storskalig parsning Introduktion till projektet Joakim Nivre Uppsala Universitet Institutionen för lingvistik och filologi joakim.nivre@lingfil.uu.se Tekniker för storskalig parsning 1(17)
Datadriven dependensparsning Givet: Träningsdata: D = {(S1, T 1 ),..., (S m, T m )} Parametriserad parsningsmodell M Träning: Optimera M:s parametrar med hjälp av D ger parser M(D) Utvärdering: Hur väl fungerar M(D) på meningar som inte ingår i D? Tekniker för storskalig parsning 2(17)
Träningsdata Swedish Treebank: Syntaktiskt annoterad korpus av skriven svenska Två delar: Talbanken: 100 000 ord svensk bruksprosa Stockholm-Umeå Corpus: 1,2 miljoner ord (balanserad) För vårt projekt: Dependensversion av Talbanken Uppdelning: Träningsdata (ca 80%) Testdata (20%) senare Tekniker för storskalig parsning 3(17)
Representation grafiskt För varje ord: Ordklass (PP, NN,... ) Morfosyntaktiska särdrag (syns ej nedan) Syntaktiskt huvud (bågar) Syntaktisk funktion (AA, SS,... ) Tekniker för storskalig parsning 4(17)
Representation textformat (CoNLL) Ett ord per rad Blankrad mellan meningar Tabbseparerade kolumner (6 indata, 2 utdata) ID FORM LEM CPOS POS FEATS HEAD DEPREL 1 Genom PR PR 3 AA 2 skattereformen NN NN UTR SIN DEF NOM 1 PA 3 införs VB VB PRS SFO 0 ROOT 4 individuell JJ JJ POS UTR SIN IND NOM 5 AT 5 beskattning NN NN UTR SIN IND NOM 3 SS 6 av PP PP 5 ET 7 arbetsinkomster NN NN UTR PLU IND NOM 6 PA 8. IP IP 3 IP Tekniker för storskalig parsning 5(17)
MaltParser MaltParser: Språkoberoende system för data-driven dependensparsning Utvecklat i Växjö och Uppsala Fritt tillgängligt med öppen källkod URL: http://maltparser.org/ Parametrar: Parsningsalgoritm Särdragsmodell Inlärningsalgoritm Tekniker för storskalig parsning 6(17)
Parsningsalgoritmer MaltParser är en transitionsbaserad dependensparser En parsningsalgoritm definieras av: Ett transitionssystem: En mängd C av konfigurationer En mängd R av transitioner En initial konfiguration för varje mening S En mängd terminala konfigurationer för varje mening S En sökstrategi (deterministisk bäst-först i MP 1.2) Tekniker för storskalig parsning 7(17)
Exempel: StackProjective Konfiguration: (S, B, A) [S = Stack, B = Buffer, A = Arcs] Initial: ([ROOT], [w 1,..., w n ], { }) Terminal: ([ROOT], [ ], A) Shift: ([...], [w i,...], A) = ([..., w i ], [...], A) Right-Arc(l): ([..., w i, w j ], [...], A) = ([..., w i ], [...], A {(w i, w j, l)}) Left-Arc(l): ([..., w i, w j ], [...], A) = ([..., w j ], [...], A {(w j, w i, l)}) Tekniker för storskalig parsning 8(17)
Särdragsmodeller Parserträning: Problem: Förutsäga nästa transition r R givet c C Särdragsrepresentation: f(c) = f1 (c), f 2 (c),..., f k (c) MaltParser tillåter användardefinierade särdrag Exempel på särdrag: InputColumn(POSTAG, Stack[0]) Ordklass hos ordet överst på stacken InputColumn(FORM, Input[1]) Ordklass hos ord nummer två i bufferten OutputColumn(DEPREL, ldep(stack[0])) Dependensrelation för vänster barn till ordet överst på stacken Tekniker för storskalig parsning 9(17)
Inlärningsalgoritmer Klassificeringsproblem: Instans: f(c) Klass: r R Träningsdata: {(f(c1 ), r 1 ),... (f(c m ), r m )} Inlärningsalgoritmer i MaltParser: Generaliserade linjära klassificerare Lär in vikter wi ( 1 w +1) för varje f i (c) och r Summering över alla fi (c) f(c) ger vikten för r i f(c) Den transition r som får högst vikt vinner Vi ska använda: Linjär multi-klass-svm Tekniker för storskalig parsning 10(17)
Parsningsmodell GEN(x): Mängden av alla (projektiva) dependensträd y för x över L EVAL(y): Girig deterministisk sökning, guidad av klassificerare Robusthet: Ja, tack vare GEN(x) Disambiguering: Ja, tack vare deterministisk sökning Effektivitet: Beror på transitionssystem och klassificerare Tekniker för storskalig parsning 11(17)
Optimering och utvärdering Optimering: Upprepad träning och utvärdering Systematisk variation av parametrar Utvärdering på valideringsdata Utvärdering: Slutgiltig utvärdering av optimerat system Utvärdering på testdata Testdata skilda från tränings- och valideringsdata Tekniker för storskalig parsning 12(17)
Iterativ optimering Metod: Träna modell M 0 Utvärdera modell M0 med resultat R 0 (baseline) För i = 1 till N: 1. Modifiera M i 1 till M i 2. Träna modell M i 3. Utvärdera modell M i med resultat R i 4. Om R i är sämre än R i 1, låt M i = M i 1 Att specificera: Hur modifiera M i 1 till M i (parametrar) Hur mäta resultat R i : Utvärderingsmått Valideringsmetod Tekniker för storskalig parsning 13(17)
Utvärderingsmått Korrekthet: Labeled attachment score (LAS): Procent ord som har rätt HEAD och DEPREL Unlabeled attachment score (UAS): Procent ord som har rätt HEAD Effektivitet: Träningstid Parsningstid Tekniker för storskalig parsning 14(17)
Valideringsmetoder Enkel validering: Dela upp D i DT (80 90%) och D V (10 20%) Träna Mi på D T Utvärdera Mi på D V Korsvalidering: Dela upp D i k delar D1,..., D k. Träna M j i på D D j (k modeller) Utvärdera M j i på D j (k modeller) Beräkna medelvärdet av R 1 i,..., Ri k (k mått) Tekniker för storskalig parsning 15(17)
Utvärderingsverktyg eval.pl: Enkelt skript utvecklat för CoNLL 2006 Standardmått: LAS, UAS, LA MaltEval: Utvärderingssystem utvecklat i Växjö URL: http://w3.msi.vxu.se/users/jni/malteval/ Många alternativa utvärderingsmått Stöd för olika dataformat (bl.a. CoNLL) Grafisk viewer för dependensträd Tekniker för storskalig parsning 16(17)
Laborationer Laborationer: 1. Grundläggande optimeringsmetodik och preparering av data 2. Grundläggande särdragsoptimering 3. Särdragsinteraktion 4. Utvärdering av korrekthet och effektivitet Vid varje tillfälle: 1. Kort muntlig rapport av förra veckans deluppgift 2. Genomgång av veckans deluppgift 3. Praktiskt arbete med veckans deluppgift i liten skala 4. Genomgång av vad som ska göras till nästa gång Tekniker för storskalig parsning 17(17)