Tekniker för storskalig parsning: Grundbegrepp Joakim Nivre Uppsala Universitet Institutionen för lingvistik och filologi joakim.nivre@lingfil.uu.se Tekniker för storskalig parsning: Grundbegrepp 1(17)
Parsning Parsning Parsing (eng) Pars orationis (lat) Allmän betydelse: ta ut satsdelar Specialiserad betydelse inom datavetenskap/språkteknologi Mappningsproblem (jfr igenkänning): Indata: Språkligt uttryck (ord, sats, mening,... ) Utdata: Strukturell representation (sekvens, träd, graf,... ) Många olika typer av representationer: Linjära: morfem, ordklasstaggar, syntaktiska funktioner,... Hierarkiska: frasstrukturträd, dependensträd,... Tekniker för storskalig parsning: Grundbegrepp 2(17)
Två parsningsbegrepp Grammatikparsning: Exempel: CKY är en parsningsalgoritm för kontextfria grammatiker. Givet en grammatik G och en sträng x L(G), härled någon eller alla analyser för x enligt G Textparsning: Exempel: Projektet går ut på att utveckla en parser för svensk text. Givet en text T = x1,..., x n på språket L, härled den korrekta analysen för varje mening x i T Tekniker för storskalig parsning: Grundbegrepp 3(17)
En grammatik och två träd S NP VP PU VP VP PP VP VBD NP NP NP PP NP JJ NN NP JJ NNS PP IN NP PU. JJ Economic JJ little JJ financial NN news NN news NN effect NNS markets VBD had IN on S VP NP PP NP NP NP PU JJ NN VBD JJ NN IN JJ NNS Economic news had little effect on financial markets S VP VP PP NP NP NP PU JJ NN VBD JJ NN IN JJ NNS Economic news had little effect on financial markets.. Tekniker för storskalig parsning: Grundbegrepp 4(17)
Grammatikparsning Formellt väldefinierat (abstrakt) problem: Relation från indata till utdata definieras av formell grammatik Parsningsalgoritm beräknar denna relation Korrekthet bevisas utan att betrakta någon specifik indata: Sundhet: Endast korrekta analyser härleds (inga andra träd) Fullständighet: Alla korrekta analyser härleds (båda träden) Parsning implicerar igenkänning: Parse(G, x) är definierad endast om x L(G) Effektivitet karakteriseras med asymptotisk komplexitet: Tidskomplexiteten för CKY är O(n3 G ) Tekniker för storskalig parsning: Grundbegrepp 5(17)
Textparsning Problemet är inte formellt väldefinierat: Relation från indata till utdata saknar exakt definition Relationen kan studeras genom statistiska stickprov (korpusar) Korrekthet visas genom statistisk inferens: Stickprov av tolkade meningar = referenskorpus Korrekthet = överensstämmelse med referenskorpusen (träd 1) Parsning implicerar inte igenkänning: Ingen skarp gräns för det språk som accepteras Faktiskt förekommande meningar antas ingå i språket Parsningsrelationen är kontextberoende: En och samma mening kan tolkas olika i olika texter Tekniker för storskalig parsning: Grundbegrepp 6(17)
Strategier för textparsning Grammatikdriven textparsning: Textparsning genom grammatikparsning Datadriven textparsning: Textparsning genom statistisk inferens OBS: De två strategierna går att förena Tekniker för storskalig parsning: Grundbegrepp 7(17)
Grammatikdriven textparsning Metod: Utveckla grammatik G så att L(G) L Använd grammatikparsningsalgoritm för textparsning: Parse(x) = Parse(G, x) Potentiella problem: Robusthet Disambiguering Korrekthet Effektivitet Tekniker för storskalig parsning: Grundbegrepp 8(17)
Robusthet Vad händer när x L(G)? Två fall: x L bristande täckning x L robusthet i snäv mening Svår gränsdragning: Jag har inte sett honom Jag har inte sett han Jag har sett inte han Jag inte sett han Tekniker: Övergenererande grammatiker (constraint relaxation) Partiell parsning Tekniker för storskalig parsning: Grundbegrepp 9(17)
Disambiguering Vad händer när Parse(G, x) > 1? Två fall: Genuin ambiguitet (x har flera möjliga strukturer i L) G övergenererar Svår gränsdragning (jfr frasstrukturträd) Tekniker: Undergenererande grammatiker (för specifika domäner) Heuristiska regler för disambiguering Statistisk modell för disambiguering Tekniker för storskalig parsning: Grundbegrepp 10(17)
Korrekthet och effektivitet Korrekthet: Hur ofta får vi den korrekta analysen i slutänden? Grammatik garanterar lingvistiskt rimlig analys? Beroende av robusthet och disambiguering Effektivitet: Beroende på typ av grammatik Påverkas av tekniker för robusthet och disambiguering Tekniker för storskalig parsning: Grundbegrepp 11(17)
Datadriven textparsning Metod: Korpus av text T = x1,..., x n från L Formell modell M definierar möjliga analyser för x L Statistisk inferens över T rangordnar analyser för x L Princip: Inferens från (ändligt) stickprov T till (oändlig) population L Approximering: Inf [T ] L Potentiella problem: Robusthet Disambiguering Korrekthet Effektivitet Tekniker för storskalig parsning: Grundbegrepp 12(17)
Robusthet och disambiguering Datadrivna modeller är inte med nödvändighet mer robusta Statistisk inferens möjliggör radikal övergenerering: L(Inf [T ]) = Σ Disambigueringsproblemet ofta värre för datadrivna modeller Statistisk inferens med rangordning ger principiell metod: Jag har inte sett honom > Jag har inte sett han > Jag har sett inte han > Jag inte sett han Tekniker för storskalig parsning: Grundbegrepp 13(17)
Korrekthet och effektivitet Korrekthet: Hur ofta får vi den korrekta analysen i slutänden? Statistisk inferens garanterar sannolik analys? Avsaknad av grammatik tillåter orimlig analys? Effektivitet: Beroende på typ av representation och statistisk inferens Påverkas av tekniker för robusthet och disambiguering Tekniker för storskalig parsning: Grundbegrepp 14(17)
Utvärderingskriterier för textparsning Robusthet: Minst en analys per mening Disambiguering: Högst en analys per mening Korrekthet: Korrekt analys för varje mening Effektivitet: Rimlig tids- och minnesåtgång Tekniker för storskalig parsning: Grundbegrepp 15(17)
Optimeringsstrategier Kriterierna måste optimeras tillsammans Varför? Två extrema strategier: Grammatikdriven textparsning: Utgå från god korrekthet Förbättra robusthet och disambiguering Datadriven textparsning: Utgå från god robusthet och disambiguering Förbättra korrekthet I båda fallen: Bemästra effektivitet Tekniker för storskalig parsning: Grundbegrepp 16(17)
Textparsning Parsning: Indatarymd: X Utdatarymd: Y Mappning: X Y Parsningsmodell: Generativ komponent: GEN(x) = {y 1,..., y k } [x X, y i Y] Kan (men måste inte) vara en grammatik Evaluerande komponent: EVAL(y) R [y GEN(x)] Kan (men måste inte) bygga på statistisk inferens Tekniker för storskalig parsning: Grundbegrepp 17(17)