Korpusbaserad datorlingvistik eller datorbaserad korpuslingvistik? Joakim Nivre Uppsala Universitet Växjö Universitet Institutionen för lingvistik och filologi Matematiska och system-tekniska institutionen
Disposition Skilda världar? Korpusbaserad datorlingvistik Datorbaserad korpuslingvistik Likheter och skillnader Förutsättningar för samarbete Korpusbaserad datorlingvistik – ett exempel Dependensbaserad syntaktisk analys Minnesbaserad inlärning
Skilda världar?
Korpusar och datorer Den ”empiriska revolutionen” i (dator)lingvistik: Ökad användning av empiriska data Uppbyggnad av stora korpusar Annotering av korpusdata (syntaktiskt, semantiskt) Bakomliggande orsaker: Teknisk utveckling: Ökad tillgång på maskinläsbar text (och digitaliserat tal) Förbättrad datorkapacitet Lagring Bearbetning Vetenskaplig perspektivförskjutning: Ifrågasättande av ”länstolslingvistik” Utveckling av statistiska språkmodeller
Datorbaserad korpuslingvistik Mål: Kunskap om språket Deskriptiv kartläggning Teoretisk hypotestestning Medel: Korpusdata som källa till kunskap om språket Deskriptiv statistik Statistisk inferens för hypotestestning Datorprogram för bearbetning av korpusdata Korpusuppbyggnad och annotering Sökning och visualisering (för människor) Statistisk bearbetning (för deskriptiv statistik och hypotestestning)
Korpusbaserad datorlingvistik Mål: Datorprogram som bearbetar naturligt språk Praktiska tillämpningar (översättning, sammanfattning, …) Modeller av språkinlärning och -användning Medel: Korpusdata som källa till kunskap om språket: Statistisk inferens för modellparametrar (skattning) Datorprogram för bearbetning av korpusdata Korpusuppbyggnad och annotering Sökning och informationsextraktion (för datorprogram) Statistisk bearbetning (för skattning/maskininlärning)
Korpusbearbetning 1 Korpusuppbyggnad: Annotering: Standardmetodologi: Tokenisering (minimala enheter, ord m.m.) Segmentering (på flera nivåer) Normalisering (t.ex. förkortningar, stavning, flerordsuttryck; grafiska element, metainformation m.m.) Annotering: Ordklasstaggning (ord ordklass) Lemmatisering (ord grundform/lemma) Syntaktisk analys (mening syntaktisk representation) Semantisk analys (ord betydelse, mening argumentroller) Standardmetodologi: Automatisk analys (ofta baserad på andra korpusdata) Manuell validering (och rättning)
Korpusbearbetning 2 Sökning och sortering: Visualisering: Sökmetoder: Strängsökning Reguljära uttryck Dedicerade sökspråk Specialskrivna program Resultat: Konkordanser Frekvenstabeller Visualisering: Textuellt: Konkordanser m.m. Grafiskt: Diagram, syntaxträd m.m.
Korpusbearbetning 3 Statistisk bearbetning: Deskriptiv statistik Frekvenstabeller och diagram Statistisk inferens Hypotestestning (t-test, 2, Mann-Whitney, Wilcoxon etc.) Inlärning: Probabilistisk: Skatta sannolikhetsfördelningar Diskriminativ: Approximera mappning indata-utdata Induktion av lexikala och grammatiska resurser (t.ex. kollokationer, valensramar)
Användarkrav Korpuslingvister Datorlingvister Programvara Utdata Tillgänglig Lättanvänd Generell Utdata Lämpad för människor Gärna grafisk visualisering Funktioner Specifik sökning Deskriptiv statistik Datorlingvister Programvara Effektiv Specifik Modifierbar Utdata Lämpad för datorer Väldefinierad struktur (uppmärkt text) Funktioner Uttömmande sökning Statistisk inlärning
Sammanfattning Olika mål: … ger (delvis) olika krav: Studera språk Skapa datorprogram … ger (delvis) olika krav: Tillgängligt och användbart (för människor) Effektivt och standardiserat (för datorer) … men (delvis) samma behov: Korpusuppbyggnad och annotering Sökning, sortering och statistisk bearbetning
Symbios? Vad kan datorlingvister göra för korpuslingvister? Teknisk och allmänlingvistisk kompetens Program för automatisk analys (annotering) Vad kan korpuslingvister göra för datorlingvister? Lingvistisk och språkspecifik kompetens Manuell validering av automatisk analys Vad kan datorlingvister och korpuslingvister åstadkomma tillsammans? Automatisk annotering ger ökad precision i korpuslingvistik Manuell validering ger ökad precision i datorlingvistik En positiv spiral?
Korpusbaserad datorlingvistik – ett exempel
Dependensanalys 1 2 3 4 5 6 7 8 9 Economic news had little effect on ROOT OBJ PMOD NMOD SBJ NMOD NMOD NMOD 1 2 3 4 5 6 7 8 9 Economic news had little effect on financial markets . JJ NN VBD IN NNS
Induktiv dependensanalys Deterministisk syntaxanalys: Algoritm för att härleda dependensstruktur Kräver beslutsmekanism i valsituationer Alla beslut är oåterkalleliga Induktiv maskininlärning: Beslutsmekanism baserad på tidigare erfarenhet Generalisera från exempel (successiv förfining) Exempel = Analyserade meningar (”trädbank”) Ingen grammatik – bara analogi
Algoritm Datastrukturer: Starttillstånd: Algoritmsteg: Kö av oanalyserade ord (next = först i kön) Stack av delvis analyserade ord (top = överst i stacken) Starttillstånd: Tom stack Alla ord i kön Algoritmsteg: Shift: Lägg next överst på stacken (push). Reduce: Ta bort top (pop). Right: Lägg next överst på stacken (push); top next Left: Ta bort top (pop); next top
Algoritmexempel RA(NMOD) LA(NMOD) RA(OBJ) RA(P) SHIFT RA(PMOD) ROOT RA(NMOD) LA(NMOD) RA(OBJ) RA(P) SHIFT RA(PMOD) LA(NMOD) LA(NMOD) REDUCE REDUCE LA(SBJ) REDUCE SHIFT SHIFT SHIFT SHIFT OBJ PMOD NMOD SBJ NMOD NMOD NMOD 1 2 3 4 5 6 7 8 9 Economic news had little effect on financial markets . JJ NN VBD IN NNS
Guide Icke-determinism: Guide = Funktion (Kö, Stack, Graf) Steg Möjliga metoder: Grammatik? Induktiv generalisering! RA(ATT)? RE? äter glass med … OBJ
Maskininlärning Guide: Modell: Klassificerare: Inlärning: Funktion (Kö, Stack, Graf) Steg Modell: Funktion (Kö, Stack, Graf) (f1, …, fn) Klassificerare: Funktion (f1, …, fn) Steg Inlärning: Funktion { ((f1, …, fn), Steg) } Klassificerare
Modell Ordklasser: t1, top, next, n1, n2, n3 hd ld rd . th next top n1 … n2 n3 t1 Ordklasser: t1, top, next, n1, n2, n3 Dependenstyper: t.hd, t.ld, t.rd, n.ld Ordformer: top, next, top.hd, n1 Stack Kö
Minnesbaserad inlärning Minnesbaserad inlärning och klassificering: Inlärning är lagring av erfarenheter i minnet. Problemlösning åstadkoms genom att återanvända lösningar från liknande problem som lösts tidigare. TIMBL (Tilburg Memory-Based Learner): Utgångspunkt: k-nearest neighbor Parametrar: Antal grannar (k) Distansmått Viktning av attribut, värden och instanser
Inlärningsexempel Instansbas: Ny instans: Distanser: k-NN: (a, b, a, c) A (a, b, c, a) B (b, a, c, c) C (c, a, b, c) A Ny instans: (a, b, b, a) Distanser: D(1, 5) = 2 D(2, 5) = 1 D(3, 5) = 4 D(4, 5) = 3 k-NN: 1-NN(5) = B 2-NN(5) = A/B 3-NN(5) = A
Experimentell utvärdering Induktiv dependensanalys: Deterministisk algoritm Minnesbaserad guide Data: Engelska: Penn Treebank, WSJ (1M ord) Konvertering till dependensstruktur Svenska: Talbanken, Professionell prosa (100k ord) Dependensstruktur och dependenstyper baserade på anonotering enligt MAMBA
Resultat Engelska: Svenska: 87,3% av alla ord fick rätt huvudord 85,6% av alla ord fick rätt huvudord och funktion Svenska: 85,9% av alla ord fick rätt huvudord 81,6% av alla ord fick rätt huvudord och funktion
Dependenstyper: Engelska Hög precision (86% F): VC (hjälpverb huvudverb) 95.0% NMOD (attribut) 91.0% SBJ (verb subjekt) 89.3% PMOD (prepositionskomplement) 88.6% SBAR (subjunktion verb) 86.1% Medelprecision (73% F 83%): ROOT 82.4% OBJ (verb objekt) 81.1% VMOD (verb- och satsadverbial) 76.8% AMOD (bestämning till adj/adv) 76.7% PRD (predikativ) 73.8% Låg precision (F 70%): DEP (övrigt)
Dependenstyper: Svenska Hög precision (84% F): IM (infinitivmärke infinitiv) 98.5% PR (preposition substantiv) 90.6% UK (subjunktion verb) 86.4% VC (hjälpverb huvudverb) 86.1% DET (substantiv determinator) 89.5% ROOT 87.8% SUB (verb subjekt) 84.5% Medelprecision (76% F 80%): ATT (attribut) 79.2% CC (samordning) 78.9% OBJ (verb objekt) 77.7% PRD (verb predikativ) 76.8% ADV (adverbial) 76.3% Låg precision (F 70%): INF, APP, XX, ID
Korpusannotering Hur bra är 85%? Hur kan precisionen förbättras? Tillräckligt bra för att spara tid och arbete vid manuell annotering Tillräckligt bra för att effektivisera sökning efter syntaktiska fenomen Hur kan precisionen förbättras? Genom annotering av nya data, som möjliggör bättre maskininlärning Genom förfinad lingvistisk analys av de strukturer som ska analyseras och de fel som görs
MaltParser Programvara för induktiv dependensanalys: Fritt tillgänglig för forskning och undervisning (http//w3.msi.vxu.se/~jha/MaltParser.html) Utvärderad på 20 olika språk Används för syntaktisk analys av svenska och turkiska i korpusprojekt vid Uppsala universitet