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



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

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Automater. Matematik för språkteknologer. Mattias Nilsson

Föreläsning 7: Syntaxanalys

Tekniker för storskalig parsning: Grundbegrepp

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

Partiell parsning Parsning som sökning

Språkpsykologi/psykolingvistik

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

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

Datorlingvistisk grammatik

729G09 Språkvetenskaplig databehandling

Kontextfria grammatiker

Föreläsning 8: Intro till Komplexitetsteori

FL 6: Definite Clause Grammars (kap. 7)

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann

Kungliga Tekniska Högskolan Patrik Dallmann

Djupstruktur och ytstruktur

Vad är semantik? LITE OM SEMANTIK I DATORLINGVISTIKEN. Språkteknologi semantik. Frågesbesvarande

Tentamen: Programutveckling ht 2015

Bygga hus med LECA-stenar

Bulltoftamodellen. parläsningen ger stora möjligheter till direkta stopp och omedelbara diskussioner, vilket utvecklar läsförståelsen

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

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

Karlsängskolan - Filminstitutet

Frasstrukturgrammatik

Tekniker för storskalig parsning

En snabb titt på XML LEKTION 6

Wienerprocesser. Finansiell statistik, vt-05. Enkel slumpvandring. Enkel slumpvandring. Varför: model för aktiekurs (dock med aber...

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

DD1361 Programmeringsparadigm. Formella Språk & Syntaxanalys. Per Austrin

UPPGIFT 1 KANINER. Håkan Strömberg 1 Pär Söderhjelm

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

Parsningens olika nivåer

Interaktion mellan barn med språkstörning och olika samtalspartners

h ens us.se

FTEA12:2 Filosofisk metod. Att värdera argumentation I

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

Föreläsning 6: Introduktion av listor

Studentguide vid grupparbete

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap. Grafproblem. Laboration 4, Datastrukturer och Algoritmer VT02

Illustrationer: Hugo Karlsson, Ateljé Inuti Projektledare: Elinor Brunnberg. Mälardalens högskola Text: Kim Talman, Jeanette Åkerström Kördel, Elinor

Introduktion till algoritmer - Lektion 3 Matematikgymnasiet, Läsåret Lektion 3

Introduktion. Exempel Övningar Lösningar 1 Lösningar 2 Översikt

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

Att använda pekare i. C-kod

Stina Nyman

Tekniker för storskalig parsning

Grunderna i stegkodsprogrammering

Idag: Reguljära språk Beskrivs av Reguljära uttryck DFA Grammatik

Tentamen i Realtidsprogrammering

DAB760: Språk och logik

Tentamen TEN1 HI

Praktikintyg. Utbildning och praktik för ungdomar med sikte på JOBB!

Komma igång med Eventor

Kultursektorn som exempel

Introduktion till programmering. Standardfunktioner. Vad används datorer till? Standardfunktioner. Föreläsning 2. Prelude. $ ghci...

Diskret matematik: Övningstentamen 4

Kursrapport Datorlingvistisk grammatik (första skiss)

Bevis för ett modulärt perspektiv: (tidiga studier av) afasi.

Föreläsning 13 och 14: Binära träd

Styrdokumentkompendium

Möjliga Världar. Skapande Skola, Halmstad. Robert Hais

DATORER OCH PROGRAM. Datorn är en symbolmaskin

Min syn på idéframställan

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation

Lexikon: ordbildning och lexikalisering

Lägga till olika dokument i en fil

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Flera kvantifierare Bevis Direkt bevis Motsägelse bevis Kontrapositivt bevis Fall bevis Induktionsprincipen. x y (x > 0) (y > 0) xy > 0 Domän D = R

2. (7) Ryck kort i spel. Djurkort. 4 Röda Djur. 4 Grå Djur

Auktorisation som tolk

Lära känna skrivbordet

R AKNE OVNING VECKA 1 David Heintz, 31 oktober 2002

Montreal Cognitive Assessment (MoCA) Version 7.0. Instruktioner för testning och utvärdering

Utvärdering 2015 deltagare Voice Camp

Introduk+on +ll programmering i JavaScript

Skrivprojekt åk 7. Syfte: Utveckla sin förmåga att skriva berättande text. Jobba med skrivprocessen där respons och bearbetning av texten ingår.

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

Grammatik för språkteknologer

Uppgift 1 (Oläsliga krypterade meddelanden)

Artificiell Intelligens Lektion 7

Föreläsning 3.1: Datastrukturer, en översikt

Anmälningskod: GU Sök senast: 15 april

Programmeringsteknik med C och Matlab


Arbetsplan 2015/2016 Vintrosa förskola

Verksamhetsrapport 2012/2013

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

Föreläsning 7. Träd och binära sökträd

NKI - Särskilt boende 2012

Samverkande Expertnät

MÖSG ht 2005 Maskinöversättningssystemet MATS

Steg 4. Lika arbeten. 10 Diskrimineringslagen

Viktigt att tänka på i en intervju och de vanligaste fallgroparna. som intervjuar. Ett kostnadsfritt whitepaper utgivet av Level Recruitment

Å rsberä ttelse 2014/2015. Bomhus förskoleområde. Storhagens förskola

Instruktion för att slutföra registreringen

Allemansdata Dags fö r örd

Transkript:

Parsning = analys Maskinell analys av naturligt språks strukturer Uppgiften som en parser löser är 1. Acceptera en sträng som grammatisk, samt oftast 2. Ge en strukturell representation av strängen som utdata XD4510 Parsningsalgoritmer Höstterminen 2001 L1: Introduktion Parser, förutsättningar Grammatikformalism En mängd regler som talar om hur man får skriva sin grammatik (ex DCG, PATR-II, CFG, BF, ) Grammatik En mängd regler som talar om vilka strängar som får genereras Parsningsalgoritm En sökstrategi som bestämmer i vilken ordning som reglerna ska appliceras Anders Green green@nada.kth.se http://www.nada.kth.se/~green/courses/xd4510 Parsningsalgoritmer 1. Modeller för mänsklig parsning ökes: - stark ekvivalens mellan mänsklig parsning och maskinell parsning - jfr lingvisternas strävan att finna språkoberoende grammatik 2. erktyg för språkteknologer ökes: effektiv metod som gör jobbet Användningsområden Överallt yntaxkontroll Kompilatorer Maskinöversättning Dialogsystem pel Etc. yntaxkontroll Indata: text Utdata: beskrivningar av fel Kompilatorer Indata: programkod Utdata: instruktioner eller syntaxfel Maskinöversättning Indata: text på ett språk Utdata: en språkneutral representation Dialogsystem Indata: Text från en taligenkännare Utdata: En semantisk representation av yttrandet

Parsertyper Mänsklig parsning Hellwig: Tolkande parser Grammatik och parsningsprocedur är separata indata Parsningslagoritm utdata issa meningar ger folk problem Andra gör det inte Left-branching Grammatik Procedurell parser Grammatik och parsningsprocedur är integrerade. Kompilerad parser Precis som i fallet med den tolkande parsern skrivs grammatiken separat, men innan man kan börja parsa kompilerar man reglerna och proceduren till en (normalt) effektivare representation indata Parsningslagoritm Grammatik Parsningsalgoritm + Grammatik utdata P indata mellansteg Tillståndsautomat utdata P Johans broders katts ungar avskyr råttor Mänsklig parsning (forts) Mänsklig parsning (forts) Högertyngda meningar verkar inte heller ge folk problem när det gäller att processa dem Right-branching Centerinbäddade meningar verkar å andra sidan ge folk stora problem (Miller & Chomsky) Center-embedded Förklaringen som normalt ges är att utrymmeskravet vid mental bearbetning leder till problem när vi ska förstå centerinbäddade meningar arje nytt ämne som introduceras kräver lagring i minnet är verbet till slut dyker upp kan man ha glömt bort vad det syftar på Detta är hunden som jagade råttan som åt katten Råttan som katten som hunden jagade bet åt osten

ågra principer Principer Högerassociativitet/late closure Minimal attachment En princip som säger att människor föredrar den syntaktiska analys som innebär det minsta antalet noder i ett träd issa andra meningar ger ibland upphov till tolkningsproblem i målade staketet med sprickor The horse raced passed the barn fell ya konstituenter tolkas som hörande till den konstruktion som håller på att byggas upp Kalle sa att lisa åkte i sin bil PP PP AP Han hade hunden i huset Han hade hunden i huset Kalle sa att lisa åkte i sin bil Grundläggande begrepp Alfabete: Ett alfabete är en ändlig mängd av symboler ex {a,b}, {kalle, lisa, gillar, pelle} träng: En sträng är en ordnad sekvens av symboler ur ett visst alfabete ex kalle gillar lisa En sträng kan vara tom ε Konkatenering: ätta ihop två strängar så att de bildar en ny sträng ex: X = ga, Y = is, XY=gais, XYXY=gaisgais Om man konkatenerar den tomma strängen får man ex Z = ε, XZY=gais X 1 = ga, X 2 = gaga, X 3 = gagaga tränglängd tränglängd skriv X, A= aaa, A 2 = 6. pråk Ett formellt språk är en mängd strängar som uppfyller vissa krav. Ex Alfabete = {a,b}, ett språk där antalet a är lika med antalet b uttrycks a n b n, {x a n b n} ab, aabb, aaabbb etc är alla medlemmar av språket. Mer grundläggande begrepp Grammatik: En grammatik är ett språk som används för att beskriva språk (metaspråk) Formella grammatiker består av Top-symbol (σ, s ) Terminala symboler ( T ) Icke-terminala symboler ( ) Regler på formen φ ϕ G = < σ, T,, P> Ex: <, {kalle, lisa, gillar}, {,, P,, }, {,, P, P kalle, P lisa, gillar}> pråket som G1 beskriver refereras som L1 Kalle gillar lisa Lisa gillar kalle

Derivering Parsträd/analysträd En derivering av en sträng är en sekvens av strängar som starta med toppnoden/toppsymbolen σ σ ϕ 1 ϕ 2 ϕ 3 ϕ n P P P kalle P kalle gillar P kalle gillar lisa P P P kalle gillar P lisa Deriveringar säger hur reglerna appliceras men inte vilken struktur, det gör däremot träd Left-most derivation Expandera den vänstraste variabeln först P kalle kalle P kalle gillar P kalle gillar lisa Right-most derivation Expandera den högraste variabeln först P lisa gillar lisa P gillar lisa kalle gillar lisa Ett parsträd beskriver ordningen för en derivering Riktad acyclisk graf Bågarna i trädet står för (denoterar) en dominansrelation (D). <X > Y, X > Z, Y > kalle, Z > gillar> Parsträd har en enda rotnod Dominansrelationen D har bara en enda rotnod Partiell ordning Precedensrelationen P Y PREC Z kalle PREC gillar Y PREC gillar Obs! Men X PREC Y gäller inte En nod föregår inte en annan om någon av dem dominerar den andra, alltså X föregår inte (i exemplet) Bågar får inte korsa varandra Ettiketteringsfunktion (labeling funktion) mappar noderna till T. - alltså alfabetet av terminala symboler samt icke-terminalerna Ofta implicit Y kalle X Z gillar X DOM Y X DOM Z Y DOM kalle Z DOM gillar Parsningstypologi Parsningsstrategier Grammatikformalism Produktionsregler (ex A B C) på ett visst format Grammatiken består av ett antal produktionsregler som bestämmer vilka strängar som accepteras och vilka deriveringar som kan göras och hur träd struktureras Parserns mål är att rekonstruera derivationen från sträng (indata) till en toppkategori Ex: BF, CFG, DCG etc Transition networks Tanken är att bygga upp utdatastrukturen samtidigt som strängen traverseras Ex FT, AFT Principbaserade /särdrägsbaserade formalismer Lexikonet innehåller informationen om vilka konstituenter som kan kombineras ihop Ett antal principer för hur dessa kan kombineras bestämmer hur reglerna expanderas Ex HPG, FUG, CG Databaserad parsning Grundläggande antagandet är att om människor lär sig genom att exponeras för språket och därigenom också lär sig det så borde datorn också kunna läras på samma sätt Ex: PCFG Probabilistisk CFG DOP Dataorienterad Parsning TAG Tree Adjoining Grammar P P kalle kalle sjunger sjunger X H, C X, X 0 1 2 Phon: kalle Cat: Phon: gillar Cat: ubcat: norm används för att beskriva det sätt vilket syntaxträden byggs upp Utgår från känd toppkategori (ex ) i vet oftast när strängen börjar och när den tar slut (ex kalle sjunger $ ) Inkrementellt uppbyggda strategier har sitt resultat klart efter varje indata sträng Kan ge svar any-time Bra vid t ex parsning i dialogsystem när svar kan krävas i realtid torleken på trädet bestäms av hur lång derivationen är (antalet regler som kan appliceras) ärsta fallet innebär exponentiell komplexitet pga ambiguitet (ex time flies like an arrow ) Oftast inte så komplext W Y X M Z

Top-down Djupet-först tartar från toppnoden på det träd som ska byggas upp (ex ) Trädet byggs upp beroende på vad vi förväntar oss att se på terminalnivå (botten av trädet) Hypotesdriven Måldriven Att alltid expandera variabeln längst till höger reps vänster tills man: A) når en lexikal kategori (toppen-ner schema) B) Eller rotnoden i trädet (botten-upp schema) P Bredden-först Botten-upp Alla noder på samma nivå byggs upp innan några efterföljande noder byggs upp En botten-upp strategi utgår från lexikala terminalsymbolerna Data-driven P P P

Bearbetningsmetod Kontrollstrategier Left-to-right Indata börjar traverseras med start från vänster (början av strängen) Right-to-left Indata börjar bearbetas från höger (slutet) En-pass trukturen som söks (analysträd t ex) byggs upp successivt Flerpass trängen traverseras flera gånger beroende på vilken kontrollstrategi som används änsterassociativ Genom att kräva att all indata till vänster om det aktuella stället i strängen har accepterats uppnås en vänsterassociativ parser Island-parsning Bearbetningen av strängen startar samtidigt på flera ställen. Ex: id parallell processning Partiella strukturer söks 1 2 1 Backtracking Bearbetningen fortskrider så långt det går ända tills en lyckas/misslyckas Under vägen: ställen där parsern upptäckt ambiguiteter i uppbyggnaden av trädet Backtracking innebär att man återställer parsern till det tillstånd som var innan man upptäckte ambiguiteten (Ex. Prolog) Parallell bearbetning Flera träd bearbetas samtidigt (meningsfull endast om man har tillgång till flera flera processorer) Liknar Island-parsning, men syftar på kontrollen av resurserna snarare än hur reglerna expanderas Look-ahead Genom att i förväg kompilera tabeller med information om vad man kan förvänta sig vid olika tillstånd kan man motverka ambiguitet En grammatik som kan göras ickeambiguös genom att titta framåt k steg sägs ha LL(k) eller LR(k) egenskapen. Uppnår deterministiskt bearbetningssätt aturligt språk är generiskt ambiguöst men det finns ändå saker att vinna på pre-kompilering anligast att programspråk har dessa egenskaper Resultatkontroll Måldriven igenkänning lägga till hypoteser för vilka kategorier man håller på att känna igen i en datastruktur: Kö, stack etc är man bevisat hypoteserna tas de bort och bearbetningen är klar när datastrukturen är tom (eller strängen slut) träng tack [ ] [] [] [,] [, ] [P, ] [P, ] [P,, P] [P,, P] [kalle,, P] [, P] [kalle, gillar, P] [P] [kalle gillar, lisa] [] para mellanresultat i en speciell tabell WFT: Well-formed ubstring Table Chart är man når slutet på indata kan man enkelt kontrollera om man har en komplett ingång i tabellen med startkategorin. aknas en komplett toppkategori har man misslyckats, men å andra sidan har man en massa partiella strukturer som kan bearbetas för felhantering DET 0 1 2 3 Book that flight