Parsning i Granska. Föreläsningens innehåll. Granskas uppbyggnad. Inspiration och förebilder. Regelmatchning/parsning. Granskas regelspråk

Relevanta dokument
Föreläsningens innehåll. Granska. 1. Granskas regelspråk 2. Parsning i Granska 3. Språkgranskning i Granska 4. Granska-laborationen

3. Granskas regelspråk

Granskas regelspråk. Ola Knutsson. Uppdaterad IPLab, Nada, KTH

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

Institutionen för Lingvistik. NP-detektion UTVÄRDERING OCH FÖRSLAG TILL FÖRBÄTTRINGAR AV GRANSKAS NP-REGLER

Parsningens olika nivåer

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

Granskas regelspråk. Tentativ version, Ola Knutsson IPLab, Nada, KTH

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

Parsningens olika nivåer

Grundläggande textanalys, VT2013

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

Behov av språklig granskning. Granska och automatisk språkgranskning av svensk text. Datorn som språkgranskare

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

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

Tekniker för storskalig parsning

Identifiering av ordvitsar med Granska

Ordklasser. Särdrag, lexikon och syntax. Öppna klasser. Slutna klasser. Vilka ord i lexikon? Vad skall man med en grammatik till?

Statistisk grammatikgranskning

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?

Grundläggande Textanalys VT Språkgranskning (2) Eva Pettersson

Syntax S NP VP. AdjP. sleep. ideas. DH2418 Språkteknologi Johan Boye. Syntax

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

Inkongruens och särskrivna sammansättningar en beskrivning av två typer av fel och möjligheten att granska dem automatiskt

Obesvarade frågor från F1

Grundläggande Textanalys VT Språkgranskning (2) Eva Pettersson

Grammatik för språkteknologer

Inkongruens och särskrivna sammansättningar

729G09 Språkvetenskaplig databehandling

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

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

Djupstruktur och ytstruktur

Grammatisk teori II Attributvärdesgrammatik

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

Grammatifix Svensk grammatikkontroll i MS Word

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

Kungliga Tekniska Högskolan Patrik Dallmann

Tekniker för storskalig parsning

Innehåll. Syntax. Kan allt delas upp i små delar? Varför är syntax fascinerande? Vad är syntax? Olika språksyn

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

Språkgranskningsverktyg, vt 2008

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

Parsning I. Disposition. Parsning användingsområden. Vad menas med parsning inom språkteknologin? Top-down parsning. Parsning som sökning

ORDKLASSTAGGNING. Marco Kuhlmann Institutionen för datavetenskap

Grundläggande textanalys. Joakim Nivre

Ord och morfologi. Morfologi

Ordklasstaggning med funktionsordslexikon. Språklig ytanalys med regler. Jabberwocky (Källgren, 1992) Mer Jabberwocky (Lewis Carrol)

Partiell parsning Parsning som sökning

Grammatik för språkteknologer

Innehåll. Syntax. Kan allt delas upp i små delar? Varför är syntax fascinerande? Olika språksyn. Vad är syntax?

Språkgranskningsverktyg. Grammatikkontroll i Word

Datorlingvistisk grammatik

729G09 Språkvetenskaplig databehandling

Frasstrukturgrammatik

Korpuslingvistik vt 2007

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

språkgranskning, ht 2007

Studenter drillar Lärkas sång om hur studenter lär grammatik via korpusverktyget Lärka

Konstituenter och frasstruktur. 729G49 16 April

Lite mer psykologi. L2: Automater, Sökstrategier. Top-down. Kimballs sju principer

Inlämningsuppgift MiniPlotter

Grammatisk teori III Praktisk analys

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Lingvistiskt uppmärkt text

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

Föreläsning 7: Syntaxanalys

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

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

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Fraser, huvuden och bestämningar

Tentamen Marco Kuhlmann

Föreläsning 3-4 Innehåll

Syntax Fras, sats, mening

Lingvistik IV Konstituenter och frasstruktur

Tentamen Del A. Marco Kuhlmann

Modellering med kontextfri grammatik Kontextfri grammatik - definition En enkel kontextfri grammatik Klasser av formella språk

Två-nivåmodellen, TWOL. 2D1418 Språkteknologi, Nada KTH Höstterminen 2004 Lisa Lagerkvist, Me-01

Grundläggande datalogi - Övning 9

Bootstrapping för substantivtaggning

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

Beräkningsvetenskap föreläsning 2

Lingvistiska grundbegrepp

Grundläggande syntaktiska funktioner och roller

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

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Datum: Date: Provkodr: KTR1 Exam code:

Grammatik för språkteknologer

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

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

Satslära introduktion

DD1361 Programmeringsparadigm. Carina Edlund

Meningssegmentering i SUC och Talbanken

TDDD02 Föreläsning 2 HT Reguljära uttryck och reguljära språk Lars Ahrenberg

Fraser och satsled. Språkets uppbyggnad. Definitioner. Språkets uppbyggnad. De fem frastyperna. Allmänt om fraser

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Programkonstruktion och Datastrukturer

Gränssnitt för FakeGranska. Lars Mattsson

Lingvistik V Satsdelar, huvud- och bisatser. 729G49 23 april

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

Automatisk identifiering av konstruktionskandidater för ett svenskt konstruktikon

Transkript:

Parsning i Granska Ola Knutsson Språkteknologikursen ht 2001 Föreläsningens innehåll Inspiration och förebilder Målsättningar, designval Granskas regelsyntax Regler och tillämpningar Inspiration och förebilder Constraint Grammar (Karlsson et al, 1995) Finite-state parsing (Karttunen et al, 1997) Frasstruktur med särdrag med värden konstituenter, konkatenering, en del av helheten helst inga träd Granskas uppbyggnad Tokeniseraren Taggaren Lexikon (SUC & SAOL) Statistik (SUC) Regelmatcharen Regler (300 regler) Ordböjningsfunktion Grafiskt gränssnitt Interaktion med användaren Regelmatchning/parsning Varje regel kan appliceras var som helst i texten. Toppen-ner, djupet-först, vänster-höger Stannar så fort något regelelement ej matchar Optimerad matchning med statistiska medel. Reglerna förhandsgranskas och ett regelankare väljs ut. Binder regler till taggbigram och de ord som finns i reglerna, detta sparas på disk. Optimeringen ger 6 ggr snabbare matchning. Granskas regelspråk Regelsyntax Granskningsregler Hjälpregler Andra tillämpningar än språkgranskning 1

Granskas regelsyntax Några viktiga operatorer: & logiskt och logiskt eller! logiska negation = lika med!= inte lika med := tilldelningsoperator, matchningsvariabelsavskiljare konsekvenspil, avskiljer regelns vänster- och högerled Matchning av ord Matchningsvariabler: X Y Z osv. Orden ses som objekt med attribut och metoder. Textattribut: text= ord Särdragsatrribut Särdragsvärden wordcl=ordklass dt, nn, jj, gender= genus utr, neu num=numerus sin, plu, sin/plu spec=species ind, def, ind/def vbf=verbform prs, prt, sup X() matchar godtyckligt token Matchar bilen med en viss redundans: X(text= bilen & lem= bil & wordcl=nn & gender=utr & num=sin & spec=def & case=nom) Punktnotation X.särdragsattribut=värde undef värde saknas X.gender!=Y.gender (X.gender!=undef & Y.gender!=undef & X.gender!=Y.gender) Unifiering eller attributjämförelser x:[gen=gen], y:[gen=gen] X(), Y(gender=X.gender) Optionella sekvenser? Noll eller ett ord (hjälpregel) * Noll eller flera ord + Minst ett ord eller flera 2

Namngivning av regelkategori och regler category regelkategori info( namngivning ) link( www namn på länk ) regelnamn@regelkategori X() action(regeltyp) Vänsterledets syntax Följande måste finnas med i vänsterledet: regelnamn@regelkategori regelbörjan X minst en matchningsvariabel Xn optionella matchningsvariabler konsekvenspilen Jag ser en bil. Jag ser den lilla bilen. Jag ser ett stort hus. X1(wordcl=dt), X2(wordcl=jj & gender=x1.gender & num=x1.num & spec=x1.spec), X3(wordcl=nn & gender=x2.gender & num=x2.num & spec=x2.spec) en litet bil ett liten hus X1(wordcl=dt), X2(wordcl=jj & num=x1.num & spec=x1.spec), X3(wordcl=nn & gender!=x2.gender & gender=x1.gender & num=x2.num & spec=x2.spec) Högerledet Högerledets syntax mark corr jump info action link det som skall markeras i texten korrektion av det som har matchats hopp i regelsamlingen eller förbi ord kommentar om felet vilken regeltyp det är, scrutinizing/help ev. länk till mer info om felet Följande element måste finnas med: action(regeltyp) 3

Några viktiga metoder Viktiga funktioner no_of_tokens Returnerar antalet ord som en matchningsvariabel innehåller smart_concat (X, Y) spell_ok (ord) form(särdrag:=särdragsvärde, ) Returnerar en ny ordform spell_corr (felstavat_ord) Reglernas syntax regelnamn@regelkategori X() action(regeltyp) Hjälpregler Npmin@ X(wordcl=dt wordcl=ps)?, Y(wordcl=jj)*, Z(wordcl=nn wordcl=pm) action(help, gender:=z.gender, num:=z.num, if X.wordcl=ps then spec:=def else spec:=z.spec end, case:=z.case) Npkonj@ (Npmin/X)(), Y(wordcl=kn), (Npmin/Z)() action(help, num:=plu) Rekursiva hjälpregler En effektiv beskrivning/implementation av NP kräver rekursion. Vänsterrekursiva regler är ej tillåtna NP@ Npkonj action(help); ; Npmin action(help) 4

En minigrammatik, del 1 NP@ (NPmin)() action(help); % stoppvillkor för PP (NPmPP)() action(help) En minigrammatik, del 2 NPmin@ % NP (DT PS) (JJ) NN X(wordcl=dt wordcl=ps)?, % optionell determinerare eller possessiv Y(wordcl=jj)*, % noll eller flera adjektiv Z(wordcl=nn) % ett substantiv action(help) NPmPP@ (NPmin )(), (PP)() action(help) En minigrammatik, del 3 % NP NPmin PP % det går inte att anropa NP här, då hade % regeln blivit vänsterrekursiv eftersom NP % NPmPP. % en eller flera prepositionsfraser Kontextkänsliga regler Man vill tjuvkika på kontexten Bygga CG-liknande regler Statisk vänsterkontext PP@ % PP pp NP X(wordcl=pp), % en preposition (NP/Y)() % NP som kan innehålla 1 el. n PP action(help) En kontextkänslig regel A@ vänsterkontext, ENDLEFTCONTEXT, B(), BEGINRIGHTCONTEXT, högerkontext action(help) % A, regelhuvud % LC % B, regelkropp % RC Tillämpningar Omtaggningar Transformeringar Fras- och satsreduktion Högre nivå av taggning, t.ex. syntaktiska funktioner, satsadverbial NP-detektion, och andra fraser Satsgränsigenkänning Satstypigenkänning 5

Omtaggning, taggaren gör ibland fel DT_WRONG@ X(wordcl!=dt), endleftcontext, Y(wordcl=dt), beginrightcontext, Z(wordcl!=dt & wordcl!=rg & wordcl!=ro & wordcl!=pc & wordcl!=jj & wordcl!=nn) action(help, wordcl:=pn, pnf:=sub, gender:=y.gender, num:=y.num, spec:=y.spec) Satsgränsigenkänning Varför är det bra att känna igen satser? Ejerheds experiment och algoritmer Text-till-tal Minskar sökrymden för granskningsreglerna Förbättrar precisionen hos NP-regler Koordineringsflertydighet [Gamla hundar eller katter] äter [fisken och köttet] [[Gamla hundar] eller [katter]] äter [fisken] och [köttet]. [Hunden äter köttet] och [katten äter fisken] [Hunden äter [köttet och katten]] [äter fisken] Regler för satsgränsigenkänning eva11@ V(sed!=sen & text!="som" & wordcl!=sn), X((wordcl=pn & pnf=sub) (wordcl=pm & case=nom) (wordcl=nn & case=nom & V.case!=gen) wordcl=ab), ---ENDLEFTCONTEXT---, Y(wordcl=kn), ---BEGINRIGHTCONTEXT---, Y2(((wordcl=pn & pnf=sub) (wordcl=pm & case=nom) (wordcl=nn & case=nom) wordcl=ab) & wordcl=x.wordcl), Z(wordcl=vb & (vbf=prs vbf=prt vbf=imp)) % vbf=sup)) action(help, wordcl:=y.wordcl) Satsgränser Autentiskt exempel Ett förhållande som stark försvårar personvalet till riksdagen för kandidater som är bosatta inom en valkrets är när partier, utöver en lista som upptar deras namn, går fram med ytterligare en lista med samma namn i samtliga valkretsar i riket. [Ett ] [<clbegin> (clbegin@clrecog)] [när ] [<clbegin> (clbegin@clrecog)] [, ] [<clbegin> (clbegin@clrecog)] [är ] [<clend> (clend@clrecog)] [namn] [<clend> (clend@clrecog)] [riket] [<clend> (clend@clrecog)] 6

Adjektivfraser [ytterligare ] [ab (ab_chain1@abrecog)] [bosatta inom en valkrets ] [jj utr/neu plu ind/def nom (jjexternal@jjrecog)] [stark ] [jj utr sin ind nom (jjinternal@jjrecog)] Prepositionsfraser [för kandidater som är ] [ab (pp_2a@pprecog)] [för kandidater som är bosatta inom en valkrets ] (pp_2a@pprecog)] [ab [ytterligare ] [jj utr/neu sin/plu ind/def nom (jjinternal@jjrecog)] [samtliga ] [jj utr/neu plu ind nom (jjinternal@jjrecog)] [utöver en lista som upptar ] [ab (pp_2a@pprecog)] [utöver en lista som upptar deras namn] [ab (pp_2a@pprecog)] [till riksdagen ] [ab (pp_2b@pprecog)] [när ] [ha (qn_word@qnrecog)] Prepositionsfraser [med ytterligare ] [ab (pp_2b@pprecog)] [med ytterligare en lista ] [ab (pp_2b@pprecog)] [personvalet till riksdagen ] [nn neu sin def nom undef (np_pp@nprecog)] [i samtliga valkretsar i riket] [ab (pp_2b@pprecog)] [en lista med samma namn ] (np_pp@nprecog)] [nn utr sin ind nom undef [samtliga valkretsar i riket] [nn utr plu ind nom undef (np_pp@nprecog)] NP med relativsats [kandidater som är ] [nn utr plu ind nom undef (np_relclause@nprecog)] [kandidater som är bosatta inom en valkrets ] [nn utr plu ind nom undef (np_relclause@npre [en lista som upptar ] [nn utr sin ind nom undef (np_relclause@nprecog)] Minimala NP [ytterligare ] [nn utr plu def nom undef (np_jj@nprecog)] [Ett förhσllande ] [nn neu sin def nom undef (np_min@nprecog)] [kandidater ] [nn utr plu def nom undef (np_min@nprecog)] [en valkrets ] [nn utr sin def nom undef (np_min@nprecog)] [partier] [nn neu plu def nom undef (np_min@nprecog)] [en lista som upptar deras namn] (np_relclause@nprecog)] [nn utr sin ind nom undef [en lista ] [nn utr sin def nom undef (np_min@nprecog)] [deras namn] [nn neu sin def nom undef (np_min@nprecog)] 7

Verbkedjor [försvårar ] [vb prs akt (vb_chain4@vbrecog)] [är ] [vb prs akt (vb_chain4@vbrecog)] [är ] [vb prs akt (vb_chain4@vbrecog)] Fras- och satsreduktion Den gamle mannen letar efter sin gamla hatt med det blå bandet. Mannen letar efter hatten. [upptar ] [går fram ] [vb prs akt (vb_chain4@vbrecog)] [vb prs akt (vb_chain4@vbrecog)] Jag känner popstjärnan som står där borta vid baren. Jag känner popstjärnan vid baren. Jag känner popstjärnan. minnp@reduc X(wordcl=dt wordcl=ps), Y(wordcl=jj)*, Z(wordcl=nn) corr(x.delete() Y.delete() Z.form(spec:=def)) action(scrutinizing) Jämförelse med CG ( <ett> =s!@err) (1C N-UTR)) cg1@kong X(text= ett ), Y(A(lex.wordcl=nn & lex.gender=utr)) corr(x.form(gender:=utr)) action(scrutinizing) Finite-state parsning för grammatikkontroll Cooper & Sofkova 1998 % Den grova regeln (Broad grammar) define NP [dt jj* nn]; % de finare reglerna define Npdef[dt_def jj_def* nn_def]; define Npind[dt_ind jj_ind* nn_ind]; % Den felaktiga frasen skall finnas i NP men inte i Npdef eller Npind: NP [Npdef Npind]; Jämförelse med finite-state grammars NP@ X1(wordcl=dt), X2(wordcl=jj)*, X3(wordcl=nn) action(help) % Hjälpregel 2: NPunion@ X1(wordcl=dt), X2(wordcl=jj & spec=x1.spec)*, X3(wordcl=nn & spec=x1.spec) action(help) % Granskningsregeln: (NP)() ~ (NPunion)() info( kommentar ) 8