Parsningens olika nivåer

Relevanta dokument
Parsningens olika nivåer

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

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

Språkgranskningsverktyg. Grammatikkontroll i Word

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Obesvarade frågor från F1

Tekniker för storskalig parsning

Partiell parsning Parsning som sökning

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

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

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

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

Tekniker för storskalig parsning

Tekniker för storskalig parsning

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

729G09 Språkvetenskaplig databehandling

Tekniker för storskalig parsning: Grundbegrepp

språkgranskning, ht 2007

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

Grundläggande textanalys. Joakim Nivre

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

Parsning = analys. Parsningsalgoritmer. Användningsområden. L1: Introduktion

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

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

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?

ORDKLASSTAGGNING. Marco Kuhlmann Institutionen för datavetenskap

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

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

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

Kungliga Tekniska Högskolan Patrik Dallmann

Grundläggande textanalys, VT 2011 Stavnings- och grammatikkontroll i Microsoft Word. Eva Pettersson UU/Convertus

Djupstruktur och ytstruktur

Språkgranskningsverktyg, vt 2008

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

Grammatik för språkteknologer

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

Frasstrukturgrammatik

Korpuslingvistik vt 2007

Grammatifix Svensk grammatikkontroll i MS Word

Cristina Eriksson oktober 2001

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

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

Tentamen Del A. Marco Kuhlmann

Språkgranskningsverktyg. Grammatikkontroll med Scarrie

Grammatik för språkteknologer

Språkets struktur och funktion, 7,5 hp

Datorlingvistisk grammatik

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

Ord och morfologi. Morfologi

Inlämningsuppgift: Pronomenidentifierare

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

Stavningskontroll. Metoder och tillämpningar inom språkteknologin. ht Allmänt om språkgranskning. Stavningskontroll.

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

Reguljära uttryck Grammatiker Rekursiv nedåkning Allmänna kontextfria grammatiker. Syntaxanalys. Douglas Wikström KTH Stockholm

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

Huvudansatser för parsningsmetoder

Lingvistiskt uppmärkt text

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

Grundläggande datalogi - Övning 9

Labb 2: Syntax och ordklasstaggning. Att arbeta med grammatiskt analyserade data

Grammatik för språkteknologer

KODNING AV MAXIMALA GRAMMATISKA ENHETER Manual

Automatateori (2) Idag: Sammanhangsfria språk. Dessa kan uttryckas med Grammatik PDA

Grundläggande logik och modellteori

Språkteknologi och Open Source

Lingvistiska grundbegrepp

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

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

Word- sense disambiguation

Magnus Nielsen, IDA, Linköpings universitet

Ord, lexem, ordformer (repetition) Ord och morfem (repetition) Fraser/konstituenter (repetition) Grammatisk analys i språkteknologin

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

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

Kritiskt tänkande HTXF04:3 FTEB05. Grundläggande semantik II

Parsning. TDP007 Konstruktion av datorspråk Föreläsning 6. Peter Dalenius Institutionen för datavetenskap


Grundläggande textanalys, VT2013

Grammatisk teori III - Seminarium

Kursplaneöversättaren. Lina Stadell

729G09 Språkvetenskaplig databehandling

Yvonne Adesam. Syntaktisk analys. Parsning. Ambiguitet. Utvärdering. References

Korpuslingvistik vt 2007

Fil: /home/lah/undervisning/sprakteknologi/ohbilder/oh1_kv.odp. Tjänster

Automatisk identifiering av konstruktionskandidater för ett svenskt konstruktikon

PROBLEMLÖSNING. ! GPS! Mål medel analys! Problemlösning i programmering. Lars-Erik Janlert 2007

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Grundläggande textanalys, VT2012

Fraser, huvuden och bestämningar

Språkteknologi. Språkteknologi

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

Grundläggande textanalys, VT2013

Grammatisk teori III Praktisk analys

DD1361 Programmeringsparadigm. Carina Edlund

Datorlingvistisk grammatik

Datorlingvistisk grammatik

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

Kompilatorer och interpretatorer

NORDISKE STUDIER I LEKSIKOGRAFI

Föreläsning 7: Syntaxanalys

Transkript:

Parsning Språkteknologi DH418 Ola Knutsson Varför parsning? Grammatikkontroll Fråge-svarsystem Maskinöversättning Semantisk analys (vad menas?) Testa grammatikformaliser och grammatiker (undvika länsstolslingvistik) Parsningens olika nivåer Deep vs. shallow (djup vs. ytlig) Full vs. partial (fullständig vs. partiell) Flertydig lexikal kategori: Ordklasstaggning med disambiguering Strukturell flertydighet: vi får flera parseträd till en sats. Hängningsproblem: PP-attachment problem Jag ser mannen med kikaren. Han äter pizza med gaffel. Jämför: Han äter pizza med ansjovis. Coordination: Jämför: Hunden eller katten äter fisken och köttet. Hunden äter köttet och katten äter fisken. problem: Igår sjöng jag och Jonas Mozart. [jag och Jonas Mozart] eller [jag och Jonas] [Mozart]: Partial och shallow parsning (Partiell och Ytparsning) Ofta utan fullständiga träd Ger analyser av de allra flesta meningar, robust? Behöver man veta satsen fullständiga uppbyggnad? Är det t.ex. endast alla man är ute efter? Chunking Bracketing Ytorienterad dependensparsning ligger mitt emellan, kan innehålla begränsad semantisk information. Robust parsning En robust parser skall ge en korrekt eller användbar analys av 90 % av meningar (Briscoe). Åtminstone följande tre problem måste lösas: 1. Tokenisering/Sentensering, vad är en mening?. Disambiguation, att välja rätt analys blanda alla syntaktiskt möjliga 3. Undergeneration, eller att hantera fall som ligger utanför systemets lexikala och syntaktiska täckning.

Robust parsning II Ett system måste vara robust mot följande (enligt Menzel 1997): Oförutsägbarheten hos autentiska data brusiga miljöer (om talaren befinner sig i en larmig miljö) variationer mellan talare; dialekt och sociolekt felaktig indata jämfört mot språknormen ofullständig indata, fragmentarisk okända ord och termer andraspråkstalare Constraint Grammar (CG) Parsningsalgoritm: 1. Preprocessing. Morfologisk analys 3. Morfologisk heuristik 4.Morfologisk disambiguering ( taggning ) 5. Morfosyntaktisk mappning 6. Ytsyntaktisk disambiguering Disambiguering skall ske på all tre delproblemen Utgå ifrån värsta fallet: tilldelning av alla möjliga tolkningar (enligt lexikon) Varje regel skall förkasta så många tolkningar som möjligt. Regel efter regel tillämpas så länge det går så länge det finns flertydighet kvar som kan tas bort med reglerna i grammatiken domain operator target context_conditions @w vilket ord som helst (standard) <att> specifik ordform =!! välj tolkning om alla villkor uppfyllda, ta bort tolkning om falska =! väljer en tolkning och förkastar övriga =0 förkastar en tolkning sparar övriga Kontextvillkor: (1 N) (NOT *-1 VFIN) Exempelregler för engelska (@w =0 VFIN (-1 TO)) Väljer bort finit verb-tolkningen om det föregående ordet är to, jmf: to do, *to does (1 DT) ( N) (3 VFIN) 11 ( <for> =! (CS) (NOT -1 VFIN) (1 TO) ( INF) (*3 VFIN)) väljer subjunktion 1

*dessa entreprenöriella faktorer hade än_så_länge dämpat explosionen $. Preprocessing 150 fasta uttryck, 5000 förkortningar "<*dessa>" "denna" <**c> <DEM> <MD> DET UTR/NEU DEF PL NOM @DN> "denna" <**c> <DEM> PRON UTR/NEU DEF PL NOM "<entreprenöriella>" "<faktorer>" "faktor" N UTR INDEF PL NOM "<hade>" "ha" <AUX> V ACT PAST "<än_så_länge>" "än_så_länge" <COLLOCATION> ADV "<dämpat>" "dämpa" V ACT SUPINE "dämpa" <PCP> A NEU INDEF SG NOM "<explosionen>" "explosion" N UTR DEF SG NOM "<$.>" "$." CLB <PUNCT> Analyserat med Swetwol med 75 000 basformer 13 14 "<entreprenöriella>" "entreprenöriella" <NON-SWETWOL> A UTR/NEU DEF SG NOM "entreprenöriella" <NON-SWETWOL> A UTR/NEU DEF/INDEF PL NOM Vid test på 10600 ord analyserades 97, 8 % av orden. Resten försökte suffixregler ta hand om. 15 "<*dessa>" "denna" <**c> <DEM> <MD> DET UTR/NEU DEF PL NOM @DN> "denna" <**c> <DEM> PRON UTR/NEU DEF PL NOM "<entreprenöriella>" "entreprenöriella" <NON-SWETWOL> A UTR/NEU DEF SG NOM "entreprenöriella" <NON-SWETWOL> A UTR/NEU DEF/INDEF PL NOM "<faktorer>" "faktor" N UTR INDEF PL NOM "<hade>" "ha" <AUX> V ACT PAST "<än_så_länge>" "än_så_länge" <COLLOCATION> ADV "<dämpat>" "dämpa" V ACT SUPINE "dämpa" <PCP> A NEU INDEF SG NOM "<explosionen>" "explosion" N UTR DEF SG NOM "<$.>" "$." CLB <PUNCT> 16 Morfologisk disambiguering (@w =0 (A SG) (-1 DET PL) (1 N PL)) (@w =! (DET) (1 A) ( N)) Hur gör vi med <dämpat > Mannen NN UTR SIN DEF @SUBJ @OBJ @IOBJ spelar VB PRS ACTIVE @+FMV fotboll NN UTR SIN IND @SUBJ @OBJ @IOBJ @<P. CLB <PUNCT> 17 18

Morfosyntaktisk mappning Efter ordklassdisambiguering genomförs en morfosyntaktisk mappning: <matchningsankare kontextvillkor syntaktiska_taggar> Ex: ((N) ((-1C PREP) (1 <<<)) (@<P)) N tilldelas den syntaktiska funktionen prepositionskomplement om N föregås av en preposition och följs av meningsslut. SWECG-regler (@w =! (@SUBJ) (1 @+FMV) (NOT *-1 @SUBJ) (NOT *1 @SUBJ)) (@w =0 (@<P) (NOT *-1 PREP) (NOT *1 PREP) (@w =! (@+OBJ) (-1 @+FMV) (NOT *-1 @OBJ) (NOT *1 @OBJ)) Jabberwocky (Källgren 199) De iggla skviggarna trassade vombigt i den harliga gopen. - Hurk, najdade den ena skviggen, maffar pem en bunne? - Snå, bebbade den umre skviggen aldrigt. Snafs på nerfen. - Lytrik snafs det? - Pej gemmer det fraskar för kloxigt. - Så vatrik jeggade skviggen snafen bunne. Gunnel Källgrens Morp-parser Den ytliga informationen i en text är underskattad. Minimalt lexikon med funktionsord Mönstermatchning av morfologiska och ytsyntaktiska mönster. Märker orden med ordklass, känner igen enkla och PP. (extrauppgift?) Parsning med Finite-state Karttunen, Chanod, Grefenstette & Schiller (1996) Regular Expressions for Natural Language Engineering Välkänt och beprövat för morfologisk analys och generering. Men fungerar också för partiell parsning. Indata=ordklasstaggad text Ganska enkla operatorer kan användas till sådant som skulle vara komplicerat att uttrycka i andra språk/formalismer: A, B och C är reguljära uttryck. A B Union A B konkaternering (A) Optionellt A; union med tomma strängen A+ Iteration; en eller flera konkateneringar av A A* Kleene star; (A+) ~A komplementet(negation) A & B Snittet, skärning A B Subtraktion restriction: A => B _ C replacement: A -> B longest match replacement: A @-> B C

Kaskader av regler (regexp) Indata: de+dt glada+jj studenterna+nn define AP [Ord JJ] define = [Ord [PN] [ (DT) ([AP]+) NN] [PS ([AP]+) NN]] regexp @-> [ ] Utdata: [ de+dt glada+jj studenterna+nn ] Indata: [ de+dt glada+jj studenterna+nn ] define HuvudN [NN => _] regexp HuvudN @-> [HuvudN HuvudN] Utdata: [ de+dt glada+jj [HuvudN [studenterna+nn]huvudn] ] GTA Granska Text Analyzer Grunddesign: Arbetar på ordklasstaggad indata (entydiggjord) Tar ibland inte hänsyn till grammatisk/ ogrammatisk Meningar delas upp i satser, därefter frasanalys. Inga fullständiga träd, varför? Fraskategorier : Han såg den lilla mannen på bänken VC: Han har spelat kort hela natten PP: Han såg spår i sanden AP: Han ogillade små vita lögner ADVP: Han vill inte gå på bio. INFP: Han tycker om att spela. 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. Delregler matchas endast när det behövs. Alla delträd som matchas sparas undan. En minimal 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) } @ { Npkonj --> action(help); ; Npmin --> action(help)! } Fänrik Ax The Tetris Algorithm VC gav boken PP till general PP till general Claes general Claes Olsson PP till general Claes Olsson Grundförutsättningar för fullständig parsning Vänster till höger? Är orden ordklasstaggade? Entydiggjorda? Från första ordet i satsen till sista ordet i satsen. Trädet måste ha en rot. I vilken ordning tolkas grammatikreglerna? Hitta alla träd (alla delträd). Parsning som sökning. Backtracking. Fullparserns huvuduppgifter Känna igen orden som bildar grammatiska satser i indata Tolka grammatiken Tilldela struktur Styra hur sökningen sker Problem: Språkets flertydighet (och grammatikens!) Toppen-ner parsning Mål-driven (goal-directed) sökning Utgår från toppnoden (S) Toppen-ner, djupet-först Toppen-ner, bredden-först I vilken ordning tillämpas reglerna? Botten-upp parsning Data-driven sökning Utgår från strängen (data/orden) Botten-upp, bredden-först

Toppen-ner, djupet-först 3 4 5 1 S 6 VB VP Kalle gillar Lisa 5 7 PM PM 8 S! VP VP! VB VP! VB! PM VB! gillar PM! Lisa PM!Kalle 1) S, ) VP 3) PM VP 4) Kalle VP 5) Kalle VB 6) Kalle gillar 7) Kalle gillar PM 8) Kalle gillar Lisa 9) $ 3 5 Toppen-ner, bredden-först PM 6 4 1 S VB VP Kalle gillar Lisa PM 4 7 8 S! VP VP! VB VP! VB! PM VB! gillar PM! Lisa PM! Kalle 1) S, ) VP 3) PM VP 4) PM VB 5) Kalle VB 6) Kalle gillar 7) Kalle gillar PM 8) Kalle gillar Lisa 9) $ 1 5 Botten-upp, bredden-först 8 PM 7 3 9 S Kalle gillar VB VP 8 Lisa PM 7 4 6 S! VP VP! VB VP! VB! PM VB! gillar PM! Lisa PM!Kalle 1) Kalle gillar Lisa ) PM gillar Lisa 3) PM VB Lisa 4) PM VB PM 5) VB PM 6) VB 7) VP 8) S 9) $ Vilka är problemen med dessa två angreppssätt? Toppen-ner: Vänsterrekursion Flertydighet från ovan Upprepad parsning av delträd (prövar onödiga hypoteser) Botten-upp: Kan söka efter topp-noder och grannkonstituenter som inte finns. Försöker expandera flertydiga tolkningar av lexikala enheter. Earleyparsning Tre operatorer Dynamisk programmering, i det här fallet att spara undan delträd när de påträffas, för senare användning. Delträden läggs i en s.k. chart Använder look-up istället för att parsa igen Look-up är mindre komplext än parsning Earley-parsern använder en Chart, en lista med N+1 ingångar Alla ord i meningen motsvarar en position i charten där de partiella träd som byggts upp hittills lagras När strängen genomlöpts innhåller charten en kompakt represenation av flera möjliga analyser av indata Varje ingång i charten har tre typer av information: delträd hur långt man kommit i trädet position i charten Prediktor: skapar nya tillstånd som representerar toppen-ner förväntningar som genereras under parsningsprocessen. Prediktorn tillämpas på varje tillstånd som har en icke-terminal till höger om punkten som inte är en ordklasskategori. Lägger upp tillstånd in den chart som processas. Skanner: När ett tillstånd har en ordklasskategori till höger om punkten, används skannern för att granska indata om det finns något ord med denna förutsagda ordklasskategori. Här löses en hel del flertydighet upp. Lägger upp tillstånd i en chart.

Tre exempeltillstånd Kompletterare: När ett tillstånd når slutet till höger i en regel backar komplementeraren tillbaka och fyller i kedjan av delanalyser. När t.ex. tillståndet! DT NN. [1,3] letar komp. efter tillstånd som slutar på 1, t.ex. VP! VB. [0,1]. Detta resulterar i sin tur i ett nytt komplett tillstånd VP! VB. [0,3]. Lägger upp tillstånd in den chart som processas. S!. VP [0,0] En toppen-ner prediktion för ett speciellt S Konstituenten skall börja i startposition av indata (första 0), andra 0 anger punktens placering! Dt. Nn [1,] En börjar i position 1, en Dt har parsats, och att en Nn står i tur. VP! Vb. [0,3] Det finns ett träd VP som spänner över hela indata Grammatik: S! VP S! VP! Dt Nn! Pm VP! Vb VP! Vb VP! Vb PP PP! Prep Lexikon: Dt! en ett de den Nn! köp flyg måltid biljett Vb! köp flyga köpa Prep! från till Pm! Arlanda Landvetter Chart[0] "!. S [0, 0] Dummy start S!. VP [0, 0] P!. Dt Nn [0,0] P!. Pm [0,0] P S!. VP [0,0] P VP!. Vb [0,0] P VP!. Vb [0,0] P Chart[1] Vb! köp. [0,1] s Chart[] Dt! en. [1,] s VP! Vb. [0,1] c! Dt.Nn [1,] c S! VP. [0,1] c VP! Vb. [0,1] c!. Dt Nn [1,1] p!. Pm [1,1] p

Chart[3] Nn! biljett.! Dt Nn. VP! Vb. S! VP. [,3] s [1,3] c [0,3] c [0,3] c Webbtips och extrauppgifter Functional Dependency Parser: www.connexor.com GTA: http://skrutten.nada.kth.se/grim/form.html Bygg en enkel Morp-parser Bygg en enkel dependensparser