Statistisk grammatikgranskning

Relevanta dokument
Bootstrapping för substantivtaggning

Grundläggande textanalys, VT2013

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?

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

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

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

ORDKLASSTAGGNING. Marco Kuhlmann Institutionen för datavetenskap

Lingvistiskt uppmärkt text

Lingvistiskt uppmärkt text

Fraser, huvuden och bestämningar

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

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

Grammatik för språkteknologer

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

Majoritetsgranskaren ett sätt att förbättra grammatikgranskare genom att kombinera dem LINDA NORELIUS

Grammatik för språkteknologer

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

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

Automatisk identifiering av konstruktionskandidater för ett svenskt konstruktikon

Grim. Några förslag på hur du kan använda Grim. Version 0.8

Grammatisk teori III Praktisk analys

Datorlingvistisk grammatik

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

En vanlig uppgift är att bestämma max resp min för en trigonometrisk funktion och de x- värden för vilka dessa antas.

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

Grundläggande textanalys. Joakim Nivre

Ordklasser och satsdelar

Karp. Övningar Språkbankens höstworkshop oktober 2016

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

Skrivstöd. Varför bry sig om stavning? Hur används stavningskontroll? Christian Hardmeier

Korp. Övningar Språkbankens höstworkshop oktober 2016

Tentamen Marco Kuhlmann

Inlämningsuppgift: Pronomenidentifierare

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

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

Ryska pronomen. Pronomen är en sluten ordklass som består av många undergrupper. Pronomina kan fungera självständigt eller förenat

Obesvarade frågor från F1

Automatisk extraktion av idiom ur text ANDREAS PETTERSSON

Innehåll. Grammatikkontroll i Granska. Problemställning. Datorstöd för skrivande. Vilka metoder finns? Granskas uppbyggnad

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

MÅL OCH BETYGSKRITERIER I SVENSKA

Grammatik för språkteknologer

Har/hade-bortfall i svenskan Hur finit är ett naket supinum?

MEIJERBERGS ARKIV SVENSK ORDFORSKNING GÖTEBORG 2014 FÖR UTGIVET AV STYRELSEN FÖR MEIJERBERGS INSTITUT VID GÖTEBORGS UNIVERSITET GENOM BO RALPH

Språkliga strategier för att minnas och lära, till exempel tankekartor och stödord. Mål:

Gränssnitt för FakeGranska. Lars Mattsson

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

Linköpings universitet. Kognitionsvetenskap. Instutitionen för datavetenskap. Kandidatuppsats 15 ECTS. CogFLUX

729G09 Språkvetenskaplig databehandling

Innehåll GRAMMATIKKONTROLL I GRANSKA. Datorstöd för skrivande. Problemställning. Ola Knutsson

Språkteknologi och Open Source

Semantik. Semantik och språkteknologi

Pennskaftet ORDLISTA ELIN WÄGNER ARBETSMATERIAL FÖR ELEVEN

Facit för diagnostiska provet i grammatik

Semantik VT Introduktion. Dagens föreläsning. Morfem-taxonomi forts. Morfem-taxonomi. Lexikal semantik: studerar ords betydelse

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

Vidareutvecklat korpusverktyg med Granska som grund EMMA JOHANSSON

Tentamen i Digitalteknik, EIT020

Kursinformation och schema för Lingvistik 6 hp 729G08

Datum: Date: Provkodr: KTR1 Exam code:

Taggning av räkneord som årtal eller andra räkneord, Språkteknologi 2D1418, HT 01 Jonas Sjöbergh, , 15 oktober 2001


Svenskans struktur, 7,5 hp Tentamensexempel 1

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

TDDC74 Programmering: Abstraktion och modellering Dugga 2, Tid: kl 08-10, Datum:

Tekniker för storskalig parsning

Kort och gott Svenskt basordförråd. Katarina Mühlenbock, DART

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas?

ORDKLASSERNA I. Ett sätt att sortera våra ord

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

Inte billigt precis. En konstruktionsgrammatisk undersökning. Damir Dizdar

Syfte: o statistiska test om parametrar för en fördelning o. förkasta eller acceptera hypotesen

Hemtentamen HT13 Inlämning senast Lärare: Tora Hedin

Elevintervju, elevsvar Namn: Ålder:

Tentamen i Grundläggande programmering STS, åk 1 fredag

Lingvistiska grundbegrepp

TDDC89 LINGVISTIK måndag 20 oktober 2008

Har adjektivets a och e former någon reell betydelse i dagens svenska? Om den så kallade sexusböjningen. Theres Brännmark Grammatikdagen 17 mars 2017

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

Lexikon: ordbildning och lexikalisering

Tentamen i. TDDC67 Funktionell programmering och Lisp

Välkommen att träna skriva!

Del 18 Autocalls fördjupning

Grammatifix Svensk grammatikkontroll i MS Word

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

Datorlingvistisk grammatik

Föreläsning 8. Kapitel 9 och 10 sid Samband mellan kvalitativa och kvantitativa variabler

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

Statistisk Maskinöversättning eller:

Grammatisk teori II Attributvärdesgrammatik

TDDD02 Föreläsning 7 HT-2013

PAROLE Exempel Förklaring SUC. PARTICIP AF00000A tf particip förkortning PC AN. pluralis obestämd/bestämd genitiv. pluralis obestämd/bestämd nominativ

Satslogik grundläggande definitioner 3. Satslogik. Uppgift 1. Satslogikens syntax (välformade formler) Satslogikens semantik (tolkningar)

Korpuslingvistik vt 2007

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

Perl. ~ Redovisning. Alla filer som behövs för att lösa uppgifterna finns dels på ~martin/pubperl/ på mumin, samt på

Kort presentation av Korp, Sveriges nationalkorpus

INNEHÅLLSFÖRTECKNING... 1 INLEDNING ORDBOKEN I VERKTYGSLISTEN ORDBOKEN... 3

Dependensregler - Lathund

Att upptäcka plagiering. FELICIA DENBU WILHELMSSON och EMILIA HILLERT

Transkript:

Statistisk grammatikgranskning Johnny Bigert johnny@nada.kth.se

Traditionell grammatikgranskning Hitta stavningsfel och grammatiska fel: Regler Lexikon

Traditionell grammatikgranskning Fördelar: Säkert och beprövat Bra resultat på många feltyper Exempel: Den lilla huset är gult. det.utr adj.utr/neu subst.neu vb adj.utr

Traditionell grammatikgranskning Problem: Regler innebär mycket manuellt arbete Vissa feltyper är svåra att beskriva med regler och lexikon Exempel på svåra fel: Steve förstod, i motsatts till sina konkurrenter, att om Att Compaq han före IBM med att lansera Några år senare skev han sin första bok

Statistiska metoder Statistiska metoder: All information hämtas från korpus Mindre eller inget manuellt arbete Ofta jämförbar prestanda med regelbaserade metoder Exempel: disambiguering av ordklasser Jag såg en en en dag.

Språknorm Statistisk information finns t.ex. i normalspråkskorpusar: Stora mängder text Innehåller implicit given information om språknormen

Språknorm Observationer: Grammatiska fel bryter mot språknormen Grammatiska konstruktioner som inte observerats i korpus är förmodligen felaktiga

Jämför språknormen Alltså: Jämför texten med den språknorm som ges av korpus!

Jämför språknormen Grammatikgranskning: Okända konstruktioner är förmodligen ogrammatiska ( Förmodligen eftersom korpus alltid är för liten)

Jämför språknormen Problem: Hur kan man representera normen som ges av korpus? Kompromiss: Titta endast på lokal information

Lokal information Lokal information: n-gram Se indatat som en ström av element n på varandra följande element bildar ett n-gram Exempel: Ord (tokens): Den svarta katten satt på det lilla bordet. Taggar: (dt.utr.sin.def) (jj.pos.utr/neu.sin.def.nom) (nn.utr.sin.def.nom) (vb.prt.akt) (pp) (dt.neu.sin.def) (jj.pos.utr/neu.sin.def.nom) (nn.neu.sin.def.nom) (mad)

Lokal information Informationssamling: Man vill behålla så mycket information som möjligt, dvs helst n-gram av ord Dock har man otillräcklig storlek på korpus för detta

Lokal information Informationssamling: Man använder n-gram av taggar Bibehåller ingen semantik (innebörd) Bibehåller syntax (struktur)

Lokal information Vår tagguppsättning: 149 taggar Exempel: Kattens (nn.utr.sin.def.gen) Äpplen (nn.neu.plu.ind.nom) 25 substantiv, 26 verb, 15 adjektiv, 4 adverb osv.

Trigram av taggar n-gram av taggar med befintligt korpus: För litet n ger för lite men säker information (n = 1, 2) För stort n ger för gles och därför osäker information (n >= 4) Vi använder n = 3, dvs trigram av taggar

Trigram av taggar Befintliga korpusar: Stockholm-Umeå korpus (SUC): 1M ord och 95000 unika trigram (ger 2.9% av 149³) Parole: 22M ord och 261000 unika trigram (ger 7.9% av 149³) Observation: Antalet unika trigram ökar med storleken på korpus

En första statistisk grammatikgranskare Algoritm: För varje position i i indataströmmen Om frekvensen för (t i-1 t i t i+1 ) är låg Rapportera fel till användaren Rapportera inget fel

En första statistisk grammatikgranskare Tidigare observerat: Antalet unika trigram ökar med storleken på korpus Konsekvens: Trigramfrekvensen på en grammatiskt korrekt konstruktion kan vara noll Korpus är aldrig tillräckligt stor Otillräckligt storlek ger glesa data

Glesa data Tidigare observerat: Vi behåller inte innebörd, bara syntax Idé: Byt ut ovanliga taggar mot vanligare med liknande betydelse.

Glesa data Exempel: Det är varje chefs uppgift att Det är varje är taggad (pn.neu.sin.def.sub/obj, vb.prs.akt.kop, dt.utr/neu.sin.ind) och har frekvens noll Möjlig orsak: av 1M ord i korpus har endast 709 fått taggen (dt.utr/neu.sin.ind)

Glesa data Vi byter ut ovanliga konstruktioner: Det är varje chefs uppgift att byts mot Det är en chefs uppgift att Det är en är taggad (pn.neu.sin.def.sub/obj, vb.prs.akt.kop, dt.utr.sin.ind) och har frekvens 231 (dt.utr.sin.ind) har frekvens 19112, (dt.utr/neu.sin.ind) hade frekvens 709

Avstånd mellan taggar Vid byte av tagg: Alla taggar passar inte att ersätta alla andra Vissa taggar passar, men olika bra Vi önskar ett straff för byten

Avstånd mellan taggar Att ta hänsyn till: Manuellt arbete med att skapa byteslistan för varje tagguppsättning och språk Svårt att uppskatta avstånd Förslag: Bygg statistisk information för avståndet mellan två taggar

Avstånd mellan taggar Översikt: Avståndsmatrisen är baserad på trigram av taggar Givet en kontext, byt ut taggen mot dess representant Skillnad i trigramfrekvens pga bytet

Avstånd mellan taggar Hjälpfunktion: u(c v t c h ) = freq(c v t c h ) / freq(t ) Normerar trigramfrekvensen Exempel: (dt.utr.sin.ind) har frekvens 19112 (dt.utr/neu.sin.ind) hade frekvens 709 Första determineraren borde ha trigramfrekvenser i snitt 19112/709=27.0 gånger högre än den andra Frekvensjämförelse utan normering orättvis

Avstånd mellan taggar Kontextberoende taggavstånd: Givet: vänsterkontext c v och högerkontext c h Avstånd givet kontext: distc v c h (t 1 t 2 ) =? u(c v t 1 c h ) - u(c v t 2 c h )

Avstånd mellan taggar Taggavstånd: Betrakta samtliga vänsterkontexter c v och högerkontexter c h (dvs 149² st) Avstånd mellan två taggar: dist(t 1 t 2 ) =? distc v c h (t 1 t 2 )

Avstånd mellan taggar Utnyttja data maximalt: Vi beräknade avstånd för (c v t c h ) Vi beräknar även avstånd för (t c 1 c 2 ) och (c 1 c 2 t) på samma sätt

Avstånd mellan taggar Utnyttja data maximalt: Vi får 3 149²=66000 möjliga observationer Av dessa är i genomsnitt 3 149² 0.029=1912 nollskilda

Bytesmatris Exempel ur bytesmatrisen (SUC): 0 nn.neu.sin.def.nom nn.neu.sin.def.nom 1.14 nn.neu.sin.def.nom nn.utr.sin.def.nom 2.01 nn.neu.sin.def.nom nn.utr.plu.def.nom 2.13 nn.neu.sin.def.nom nn.neu.plu.def.nom Mannen såg huset. Mannen såg bilen.

Bytesmatris Exempel ur bytesmatrisen: 0 vb.prt.akt.mod vb.prt.akt.mod 1.96 vb.prt.akt.mod vb.prs.akt.mod 3.22 vb.prt.akt.mod vb.prt.akt 3.28 vb.prt.akt.mod vb.prs.akt Mannen var glad. Mannen är glad.

Bytesmatris Exempel ur bytesmatrisen: 0 dt.utr/neu.plu.def dt.utr/neu.plu.def 3.38 dt.utr/neu.plu.def dt.utr/neu.plu.ind/def 3.47 dt.utr/neu.plu.def ps.utr/neu.plu.def 3.57 dt.utr/neu.plu.def jj.pos.utr/neu.plu.ind.nom Mannen hälsar på de anställda. Mannen hälsar på våra anställda.

Automatisering Automatisering av bytet mellan taggar: Givet: en tagg t och en representant r Vi slår upp bytet i bytesmatrisen och finner straffet d Överför till sannolikhet med funktion g(x) : R [0,1], typiskt g(x) = 1/(1+x)

Automatisering Automatisering av bytet mellan taggar: Vi har ett ovanligt trigram (t 1 t 2 t 3 ) t 1 bytes bäst mot r 11 r 12 r 13 r 1m t 2 bytes bäst mot r 21 r 22 r 23 r 2m t 3 bytes bäst mot r 31 r 32 r 33 r 3m

Automatisering Byten och straff för individuella taggar: Antag att t 1 byts mot r 1i Bytet medför ett straff d 1i =dist(t 1 r 1i ) Samma för t 2 och t 3 med representanter r 2j och r 3k (ger straff d 2j resp d 3k )

Automatisering Byten av trigram: Antag att (t 1 t 2 t 3 ) byts mot (r 1i r 2j r 3k ) Ny trigramfrekvens f ijk Denna frekvens är för hög utan hänsyn till bytesstraff Inför straff: f ijk =f ijk g(d 1i ) g(d 2j ) g(d 3k )

Automatisering Undersök samtliga representantkombinationer: Slå upp frekvensen för (r 11 r 21 r 31 ) Slå upp frekvensen för (r 12 r 21 r 31 ) Slå upp frekvensen för (r 13 r 21 r 31 ) Slå upp frekvensen för (r 1m r 21 r 31 ) Slå upp frekvensen för (r 11 r 22 r 31 ) Slå upp frekvensen för (r 12 r 22 r 31 ) Slå upp frekvensen för (r 1m r 22 r 31 ) Slå upp frekvensen för (r 1m r 2m r 3m ) Totalt m³ st

Automatisering Byten av trigram: Beräkna f ijk för alla i, j och k Väg ihop de viktade frekvenserna Förslag: sum eller max

Modifierad statistisk grammatikgranskare Algoritm: För varje position i i indataströmmen Om viktade frekv för (t i-1 t i t i+1 ) är låg Rapportera fel till användaren Rapportera inget fel

Modifierad statistisk grammatikgranskare Viktad frekvens (med sum): sum 0 För varje i 1,2,,m För varje j 1,2,,m För varje k 1,2,,m f frekv(r 1i r 2j r 3k ) p g(d 1i ) g(d 2j ) g(d 3k ) sum sum + f p Returnera sum

Resultat Kort om resultaten: Hittar ovanliga grammatiska konstruktioner Ofta konstruktioner som avviker från normen Prestanda kan förbättras väsentligt med hjälp av fraser och satsgränser (framtida föredrag)

Referenser Artikel: Bigert 2002, POS Tag Distance Metrics and Unsupervised Error Detection Finns att hitta på: http://www.nada.kth.se/~johnny