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



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

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

Matematik för språkteknologer

Grundläggande textanalys, VT2012

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP

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

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

b) S Ø aa, A Ø aa» bb, B Ø aa» bc, C Ø ac» bc» 2. Låt L vara språket över 8a< som nedanstående NFA accepterar.

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Datorlingvistisk grammatik

729G09 Språkvetenskaplig databehandling

Kontextfria grammatiker

DAB760: Språk och logik

Partiell parsning Parsning som sökning

PROV I MATEMATIK Automatateori och formella språk DV1 4p

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

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

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

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

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Labb 1 - Textbearbetning med reguljära uttryck. Formella språk. Definitioner. Chomskyhierarkin. Formella språk. Formella språk

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

Föreläsning 7: Syntaxanalys

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

Tekniker för storskalig parsning

Inlämningsuppgift MiniPlotter

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt

1 Inledning. 1.1 Programförklaring. 1.2 Innehållet. 1.3 Beteckningskonventioner - 1 -

Tekniker för storskalig parsning: Grundbegrepp

Tentamen, Algoritmer och datastrukturer

729G09 Språkvetenskaplig databehandling

Föreläsning 2 5/6/08. Reguljära uttryck 1. Reguljära uttryck. Konkatenering och Kleene star. Några operationer på språk

kind spelling Scanning

Kompilatorer och interpretatorer

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

Frasstrukturgrammatik

Turingmaskinen - en abstrakt datormodell

Grundläggande datalogi - Övning 9

FL 6: Definite Clause Grammars (kap. 7)

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

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

Tentamen: Programutveckling ht 2015

Parsningens olika nivåer

Objektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH

Formell Verifiering. Hur vet man att ett system fungerar korrekt? Lisa Kaati

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

Språkets struktur och funktion, 7,5 hp

Föreläsning 7: Syntaxanalys

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

Övningsexempel i Artificiella språk och syntaxanalys 2D1373

i=1 c i = B och c i = a i eller c i = b i för 1 i n. Beskriv och analysera en algoritm som löser detta problem med hjälp av dynamisk programmering.

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

Algoritmer, datastrukturer och komplexitet

Programmering för språkteknologer II. OH-serie: Ändliga automater. reguljära uttryck i Java. Deterministiska ändliga automater

Algoritmer, datastrukturer och komplexitet

Tekniker för storskalig parsning

Övning 5 - Tillämpad datalogi 2013

Självbalanserande träd AVL-träd. Koffman & Wolfgang kapitel 9, avsnitt 1 2

Algoritmer, datastrukturer och komplexitet

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.

Dataabstraktion. TDDD73 Funktionell och impterativ programmering i Python Föreläsning 12. Peter Dalenius Institutionen för datavetenskap

Optimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.

Dynamisk programmering

Algoritmer, datastrukturer och komplexitet

Programmering II (ID1019) :00-11:00

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

Om det finns något som de flesta som arbetar med barn är överens om, så är

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Kontextfri grammatik (CFG)

Tentamen Datastrukturer, DAT037 (DAT036)

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA

AGENTBASERAD MODELLERING

Schema för semantikdelen i kognitionsvetenskap, ht 2008

Datorspråk Breddgivande föreläsning

Pragmatisk och narrativ utveckling

Tentamen Datastrukturer D DAT 035/INN960

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

TDDA94 LINGVISTIK, 3 poäng tisdag 19 december 2000

Föreläsning 13. Dynamisk programmering

2D1373 Artificiella språk och syntaxanalys

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find

Alfabeten, strängar och språk. String

Föreläsning 2. Kortaste vägar i grafer.

Dekomposition och dynamisk programmering

Föreläsning 2. Kortaste vägar i grafer.

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

Kompilatorteknik. Görel Hedin Datavetenskap Lunds Tekniska Högskola. Temaföreläsning, Datorer i system, 2009

Vi tror på att kommunikation ska vara roligt - därför är Prata utformad för att

Språkpsykologi/psykolingvistik

lex källkod lex.l lexkompilator lex.yy.c C- kompilator lex.yy.c a.out sekvens av tokens a.out input specifikation av tokens mha reguljära uttryck

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

MA2047 Algebra och diskret matematik

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

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering

IE1205 Digital Design: F10: Synkrona tillståndsautomater del 2

Speciell användning av heltalsvariabler. Heltalsprogrammering. Antingen-eller-villkor: Exempel. Speciell användning av heltalsvariabler

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Transkript:

Lite mer psykologi Perception: yntaktiskt bearbetning: emantisk bearbetning PERON() & LIKE(, y) L2: Automater, ökstrategier Korttidsminnet D4510 Parsningsalgoritmer Höstterminen 200 Långtidsminne Anders Green green@nada.kth.se http://www.nada.kth.se/~green/courses/d4510 Kimballs sju principer Top-down (Från L1) 1. Toppen-ned parsning utom när en konjunktion (och, men etc) dyker upp. tarta från startnoden. 2. Högerassociativitet nya ord kopplas till den lägsta möjliga noden. 3. Funktionsord signalerar nya noder: Ex den (), i (PP), på (PP), en () 4. Tvåmeningsprincipen parsern kan endast klara två meningsnoder på samma gång. 5. lutningsprincipen (closure) parsern föredrar att avsluta en struktur så fort som möjligt 6. Fixerad struktur: när en fras avslutats lämnar den korttidsminnet 7. Bearbetning: när en fras avslutats lämnar den korttidsminnet och bearbetas på en djupare nivå. Kalle tänkte att lisa ville ta katten med ut The man chased trough the traffic crasched The man that chased trough the traffic crasched Centerinbäddning N N N N N V V V N Råttan som katten som hunden jagade bet åt osten 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 En katt gillar DT N En katt gillar

Djupet-först (Från L1) Left-corner parsing 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) DT N En katt gillar För varje nod N räkna upp N:s dotternod mest till vänster före N. räkna upp syskonen till dotternoden efter N. Vänstra hörnet, left-corner: första kategorin i högerledet används för att bestämma modernoden. A B G C D H I E F Topp-ner: A B C D E F G H I V PN En katt gillar Ex. Om man känt igen C, introduceras B C D och introducera noden B. Botten-upp: C E F D B H I G A Left-corner: C B E D F A H G I Abstrakta automater Kontextfria grammatiker En automat består av en ändlig mängd interna tillstånd Ett av dessa är starttillståndet Ett eller flera är sluttillstånd Automaten kan ha minne Övergångar bestämmer vilken väg som automaten får gå träng som indata Om automaten kan stanna i ändlig tid för en finit sträng kan maskinen avgöra språket. Om maskinen hamnar i sluttillståndet accepteras strängen {q 0,, q n } {q 0 } {q 2,q 5 } (q 0,,q 1 } Restriktioner för kontextfria grammatiker: En enda symbol tillåts i vänsterledet Reglerna har formen A ϕ ϕ får vara tom. V T ={, pelle, ser} V N ={,, V, } σ = V pelle V ser q 0 q 1

Reguljära grammatiker Kontextkänsliga grammatiker Restriktioner för reguljära grammatiker: En enda symbol tillåts i vänsterledet Reglerna har formen A φϕ φ måste vara en terminal symbol ϕ icke-terminal symbol ϕ får vara tom. V T ={, pelle, ser} V N ={,, } σ = ser ser pelle Restriktioner för kontextkänsliga grammatiker Grammatikregler på formen αaβ αϕβ Ickterminalen A får skrivas om som strängen ϕ, i kontexten α och β. I högerledet får inte ϕ vara tom. Krympningsregler är inte tillåtna LH får inte vara större än RH, (ex ej tillåten: xb x) Vänsterledet är aldrig större än högerledet Ett annat sätt att skriva kontextkänsliga regler är: A ϕ/α _ β V T ={a, b, c} V N ={, T,, Y} σ = a a a aby b bby by bc cy cc Y T T TY TY Y Finita tillståndsautomater (FA) FA Avgör reguljära språk pråk som genereras av reguljära grammatiker För alla reguljära grammatiker kan man konstruera en FA som avgör språket Accepterar alla strängar i språket Accepterar inga andra strängar Omvänt, om en språk avgörs av en FA är det reguljärt FA har inte något minne Övergångar bestäms av indata och det aktuella tillståndet Tupel Κ = tillståndsmängden Σ = alfabete = relationen Κ Σtill Κ σ = starttilståndet F = sluttillstånd(en), F Κ <Κ, Σ,, σ, F > Σ = {, pelle, ser} = { (q 0,, q 1 ), (q 1, ser, q 2 ), (q 2, pelle, q 3 ) } F = {q 2, q 3 }

Reguljära grammatiker FA FA exempel Accepterar språk som genereras av reguljära grammatiker V T ={, pelle, ser} V N ={,, } <Κ, Σ,, σ, F > Σ = {, pelle, ser} = { (q 0,, q 1 ), (q 1, ser, q 2 ), (q 2, pelle, q 3 ) } σ = Σ = {, pelle, ser} pelle ser ser pelle = { (q 0,, q 1 ), (q 1, ser, q 2 ), (q 2, pelle, q 3 ) } F = {q 3 } ser q 0 q 1 q 2 pelle q 3 F = {q 2,q 3 } Push-down automata (PDA) PDA Avgör kontextfria språk pråk som genereras av kontextfria grammatiker För alla kontextfria grammatiker kan man konstruera en PDA som avgör språket Omvänt, om en språk avgörs av en PDA är det kontextfritt (kan vara reguljärt) PDA har ett minne bestående av en stack (LIFO) Övergångar bestäms av indata och det aktuella tillståndet Tupel Κ = tillståndsmängden Σ = indataalfabete Γ = stackalfabete V N V T = relationen Κ Σtill Κ σ = starttilståndet F = sluttillstånd(en), F Κ <Κ, Σ, Γ,, σ, F > Σ = {, pelle, ser} Γ = {,, V, } = {(q 0,,) (q 1, N), (q 1, ser, ) (q 2, V), } q 0 F = {q 2, q 3 }

PDA <Κ, Σ, Γ,, σ, F > PDA exempel G 1 = V T ={, pelle, ser} V N ={,, V, } σ = V V ser pelle Κ = {q 0, q 1, q 2, q 3, } Σ = {, pelle, ser} Γ = {,, V, } = (q0,e, {}) (q0,{}) (q0,e, {}) (q0,{, }) (q0,, {, }) (q1,{ }) (q0,pelle, {, }) (q1,{}) (q1,e, {}) (q1,{v, }) (q1,ser, {V, }) (q2,{ }) (q2,, {}) (q3,{}) (q2,pelle, {}) (q3,{}) F = {q 3 } V V ser pelle {} - {, } - {} pelle q q 1 0 {} (q0,e, {}) (q0,{}) (q0,e, {}) (q0,{, }) (q0,, {, }) (q1,{ }) (q0,pelle, {, }) (q1,{}) (q1,e, {}) (q1,{v, }) (q1,ser, {V, }) (q2,{ }) (q2,, {}) (q3,{}) (q2,pelle, {}) (q3,{}) {} ser {V, } - q 2 {} {} pelle q 3 Turingmaskiner (TM) och Linear-bounded Autom. TM för språket 0 K 1 N k<=1 Turingmaskiner är automater som har en abstrakt remsa att skriva och läsa ifrån Linerar-bounded automata (LBA) har en ändlig remsa. En ändlig mängd tupler på formen (qi, a, qk, ) bestämmer automatens handlingar Κ = tillståndsmängden Σ = indataalfabete $, R q 0 q 1 q 2 1, R $, R Κ = {q 0, q 1, q 2 } = { Σ = {0, 1, $} (q0, 0, q1, R), (q1, 1, q1, R), (q0, $, q2, R), (q1, $, q2, R)} = relationen Κ Σ till Σ {Left, Right} σ = starttillståndet F = sluttillstånd(en), F Κ 011111 01 0111 0111 F = {q 2 }

ammanfattning Kontextkänsliga grammatiker LBA, TM Kontextfria grammatiker PDA Reguljära grammatiker FA Övning: Ta reda på vad Chomsky-hierarkin är Resnik Artikeln handlar om: varför left-corner parsning bättre beskriver vad folk gör när de parsar alltså bättre än strategierna top-down och bottom-up Två tidigare sätt (Abney & Johnson) och (Johnson-Laird) gör också detta, men lite sämre 1. Top-down, bottom-up och lefter-corner beskrivs med samma typ av regelsystem 2. Push-down automater ger en abstrakt beskrivning av algoritmer oavhängigt hur kontroll utövas 3. Genom att använda storleken på stacken kan man jämföra strategierna 4. Top-down och bottom-up ger inte en korrekt prediktion av mänskligt beteende. Det gör däremot leftcornerparsning Vänsterrekursion Top-down djupet först (LR) Problem vid topdown Direkt Indirekt Y A Y B Y Y 2 3 1 4 5 7 6 8 V PN PN 9 Kalle gillar lisa V V PN 1), 2) 3) PN 4) 5) V Y A Y Wi B Wi C 6) gillar 7) gillar PN 8) gillar lisa 9) $

GK parser Top-down bredden först parse(words, Tree):- top_symbol(), parse(, Words, [], Tree). parse(phrase, [Word Words], Words lex-word):- lexicon(word, Phrase). parse(phrase, Words0, Words, Id-Trees):- (Phrase => ID-Body), parse_rest(body, Words0, Words, Trees). parse_rest([], Words, Words, []). parse_rest([phrase Rest], Words0, Words[Tree Trees]):- parse(phrase, Word0, Words1, Tree), parse_rest(rest, Words1, Words, Trees). 3 6 1 2 4 5 7 V 8 PN PN 9 Kalle gillar lisa V V PN 1), 2) 3) PN 4) PN V 5) V 6) gillar PN 7) gillar lisa 8) $