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) $