Natuurlijke-taalverwerking. Week 2



Vergelijkbare documenten
Natuurlijke-Taalverwerking I Definite Clause Grammar deel 1

Natuurlijke-Taalverwerking 1

Natuurlijke-taalverwerking 1. Daniël de Kok

Natuurlijke-Taalverwerking

Inleiding: Combinaties

Natuurlijke-Taalverwerking I

Taal- en Spraaktechnologie Ambiguïteit

Modelleren en Programmeren: Prolog

Natuurlijke-Taalverwerking I Definite Clause Grammar 2

Natuurlijke Taalverwerking I shift-reduce en chart parsing

Studentnummer: Inleiding Taalkunde 2013 Eindtoets Zet op ieder vel je naam en studentnummer!

Natuurlijke-Taalverwerking I Shift-reduce Parsing

Er zijn alle soorten modificaties hoe je deze FST beter kan maken. Bijvoorbeeld, door - teen van thirteen - nineteen in het algemeen te lezen.

Natuurlijke-Taalverwerking I Definite Clause Grammar 2

Inleiding. Syntaxis: de combinaties van woorden tot woordgroepen en zinnen.

Zinnen 1. Henriëtte de Swart

Zinnen 2. Inleiding. Inleiding. Kenmerken. Syntaxis: de combinaties van woorden tot woordgroepen en zinnen. Kenmerken (Features)

Syllabus Natuurlijke-Taalverwerking I. Gosse Bouma Afdeling Informatiekunde Rijksuniversiteit Groningen

Combinaties. Stof bij dit college

Inhoudsopgave. Syllabus Natuurlijke-Taalverwerking I. Gosse Bouma Afdeling Informatiekunde Rijksuniversiteit Groningen

Inhoudsopgave. Syllabus Natuurlijke-Taalverwerking I. Gosse Bouma Afdeling Informatiekunde Rijksuniversiteit Groningen

Modelleren en Programmeren: Prolog

Kennisrepresentatie & Redeneren. Piter Dykstra Instituut voor Informatica en Cognitie

Natuurlijke-taalverwerking

Introductie tot de cursus

Taaltechnologie. Januari/februari Inhoud

Betekenis 2: lambda-abstractie

Automatisch vertalen van logigrammen naar een getypeerde logica

LTX016B05. Nieuwe ontwikkelingen in de syntaxis. College 4

Complexiteit. Rick Nouwen. Inleiding Taalkunde

Waar wil je heengaan?

Inleveropdracht 1: Morfologie & Syntaxis

Huiswerk 3: Prolog. Inleiding Taalkunde. Dinsdag 31 mei

Wat? Betekenis 2: lambda-abstractie. Boek. Overzicht van dit college. Anna Chernilovskaya. 7 juni 2011

Modelleren en programmeren. Week 9: werken met incomplete datastructuren

Major Design This! Me and My. Guillaume May Studentnummer: Klas: 4A

Informatiekunde in Groningen

2c nr. 1 zinnen met want en omdat

Woordenboekencomponent van de Geïntegreerde Taalbank (GTB): het WNT en VMNW met andere databestanden geïntegreerd in 1 zoeksysteem demo gtb.inl.

Mijn Hummelboekje. HOOFDSTUK 1: t Hummelhuis

1e Deeltentamen Inleiding Taalkunde

Klaar, ik ben bruin en ik ben wit

7.5 Script en plaatjes post-test

Auditieve oefeningen bij het thema: Mama kwijt

Automaten en Berekenbaarheid 2016 Oplossingen #4

OPA-methode. Inhoud. 1. De OPA-methode maakt uw zinnen leesbaar 2. Zinnen bestaan uit zinsdelen 3

Herman gaat met zijn dochter Lies naar de dierentuin. Joppie de hond gaat ook mee. Ze gaan gelijk naar de apen, die dicht bij de ingang zijn.

Compilers.

Goede buren. Startzondag 13 september 2015 m.m.v. Jeugdkoor Joy uit Streefkerk o.l.v. Vincent van Dam

Formeel Denken 2014 Uitwerkingen Tentamen

D of T Bingo! Welke regels hebben jullie gehanteerd? Omdat hij werd gestoord, wendde hij zijn gezicht naar de deur.

rij karakters scanner rij tokens parser ontleedboom (filteren separatoren) (niet expliciet geconstrueerd) (+ add. inform.) (contextvrije analyse)

Les 4: Les conversatie + grammatica Nederlands Conversatie Les 2 A-klas

De allerliefste oppas

LTX016B05. Nieuwe ontwikkelingen in de syntaxis. College 12

Hoofdstuk 4 - oefening 20 Extra Schrijfoefeningen

Cover Page. The handle holds various files of this Leiden University dissertation.

Logische Complexiteit Hoorcollege 4

1 Werkwoord. (wonen, werken, lopen,...) 8 Grammatica is niet moeilijk. wonen, werken, lopen,... noemen we werkwoorden.

Complexiteit. Anna Chernilovskaya. Inleiding Taalkunde

Opdrachten Werkcollege 4

AI Kaleidoscoop. College 9: Natuurlijke taal. Natuurlijke taal: het probleem. Fases in de analyse van natuurlijke taal.

Inhoud eindtoets. Eindtoets. Introductie 2. Opgaven 3. Terugkoppeling 6

Gevoel voor volgorde: talen en onderzoekend leren

Toets Geletterdheid en Begrijpend Lezen

Formuleren. Doelgroep Formuleren. Omschrijving Formuleren

Formeel en informeel. Formeel: Je gebruikt u om iemand aan te spreken. Je noemt iemand bij zijn achternaam.

Bijbel voor Kinderen. presenteert DE VERLOREN ZOON

DE KNAPPE KONINGIN ESTHER

Extra oefeningen voor werkwoordspelling

Ronny de pony en Hein het konijn gaan naar het ziekenhuis. Urologie. Tekst: Ann Danckaert. Originele tekeningen: Hilde Mattheeuws

Reguliere Expressies

Logica 1. Joost J. Joosten

De wedstrijd. Nee, nog niet goed. Kun jij hem laten zien...? Als een ballon geel is, is hij wat? (child may be coached)

Ria Massy. De taart van Tamid

Samenvatting in het Nederlands

Uw antwoorden bij de opdrachten 1 tot en met 6 moeten kort zijn. U hebt 20 seconden spreektijd.

Jezus maakt mensen gelukkig

Grammars and automatic syntactic analysis

Op weg met Jezus. eerste communieproject. Hoofdstuk 5 Bidden. H. Theobaldusparochie, Overloon

De tijd die ik nooit meer

1. Een van mijn collega s, liet een mooi verhaal zien: De opgave was: Los op ln(x + 2) ln(x + 1) = 1.

Voor jongeren in het praktijkonderwijs. temperatuur is er min twintig. De harde wind maakt het nog kouder. Daardoor voelt het als min vijftig.

LTX016B05. Nieuwe ontwikkelingen in de syntaxis. College 11

Oefeningen over de woordvolgorde

Je steentjebijdragen. Diensttijdens de Pompdagen Hof van Rakhorst, 24 augustus 2014

2.5 Seminar Literatur- und Sprachwissenschaft (3. und 4. Semester) 2.5 a Werkcollege met werkstuk (en presentatie) datum:

Wat staat overduidelijk in de Bijbel over de positie van man en vrouw in het huwelijk?

zinsleer begrip van de syntaxis Jan-Wouter Zwart Understanding Syntax van Maggie Tallerman voor het Nederlands bewerkt en vermeerderd door

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

De Edukese Taal Edukeser Språkerne. Door Lars

Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)

Het omzetten van reguliere expressies naar eindige automaten, zie de vakken Fundamentele Informatica 1 en 2.

Inhoud. Een nacht 7. Voetstappen 27. Strijder in de schaduw 51

De geel gearceerde woorden staan op een Bingo-kaart die aan de kinderen is uitgedeeld. Als de kinderen Bingo hebben, roepen ze Amen

MEE. Ondersteuning bij leven met een beperking. Leren & Werken

Woord oor v a v n n L e L v e e v n Mei 2011

IN2505 II Berekenbaarheidstheorie Tentamen Maandag 2 juli 2007, uur

Tuin van Heden.nu 1 Mag ik zijn wie ik ben? Van In 5

Programmeren: Visual Basic

Transcriptie:

Natuurlijke-taalverwerking Week 2

Overzicht Context-vrije Grammatica s CFGs in Prolog Definite Clause Grammars (DCGs) Construeren van bomen

Recapitulatie Doel: computers taal laten begrijpen Noodzaak: bepaal syntactische structuur Computationele grammatica Lexicon Parser (ontleder) Parse-boom: expliciete syntactische structuur

Recapitulatie (2) Context-vrije grammatica s X w X is een non-terminal symbool w is een reeks van terminal, non-terminal of epsilon symbolen Bijvoorbeeld: S NP VP NP Det N Det de N man VP loopt

Recapitulatie (2 - boom) S NP VP NP Det N Det de N man VP loopt

Recapitulatie (3) Als er meer dan één mogelijke lezing van een zin is: ambiguïteit Structurele ambiguïteit: Ik zag de man met de verrekijker. Lexicale ambiguïteit: Wij zagen vader niet meer.

Recapitulatie (3 - PPs)

Syntactische structuur Woordvolgorde; naamval; getal-, persoons-, en geslachtskenmerken.

Woordvolgorde S PP V NP NP P NP zie ik Det N met det N de man een verrekijker S NP V NP Det N zie ik de N PP man P NP met Det N een verrekijker

Andere syntactische beperkingen naamval Wie kust hij? Wie kust hem? Hij kust haar *Hij kust zij getal De mannen roepen de vrouw *De mannen roept de vrouw andere formele kenmerken met bossen overdekt was met bossen overdekte was

Recursie (rechts) [De man met [de verrekijker]] [De man met [de verrekijker van [de buurman]]] [De man met [de verrekijker van [de buurman van [mijn dochter]]]]

Recursie (links) [[De man] zijn verrekijker] [[[De man] zijn dochter] zijn verrekijker] [[[[De man] zijn dochter] zijn buurman] zijn verrekijker]

Recursie (centrum?) [De man die [de vrouwen] kent] [De man die [de vrouwen die [hun kinderen] troosten] kent] [De man die [de vrouwen die [hun kinderen [die [hun speelgoed] kwijt zijn] troosten] kent] [De man die [de vrouwen die [hun kinderen [die [hun speelgoed dat [ik] ze gegeven had] kwijt zijn] troosten] kent]

Overzicht Context-vrije Grammatica s CFGs in Prolog Definite Clause Grammars (DCGs) Construeren van bomen

Parsing as Deduction NP Det N Een NP kan worden herschreven als een Det gevolgd door een N; NP is waar als Det en N waar zijn. np :- det, n.

Verschillen tussen CFG en Prolog NP Det N np :- det, n. Waarom kunnen we deze vertaling niet rechtstreeks maken?

Verschillen tussen CFG en Prolog np :- det, n. = np :- n, det. NP Det N NP N Det np :- det, n. = np :- det, n, n. NP Det N NP Det N N (Woord-)volgorde speelt een rol Aantal Voorkomens van een woord/constituent speelt een rol.

CFG in Prolog de roze olifant ontsnapt 0 de 1 olifant 2 ontsnapt 3 word(0,de,1). word(1,olifant,2). word(2,ontsnapt,3).

CFG in Prolog (2) Det de N olifant NP Det N vertalen we als det(p0,p1) :- word(p0,de,p1). n(p0,p1) :- word(p0,olifant,p1). np(p0,p2) :- det(p0,p1), n(p1,p2).

Kort voorbeeld det(p0,p1) :- word(p0,de,p1). n(p0,p1) :- word(p0,olifant,p1). np(p0,p2) :- det(p0,p1), n(p1,p2). word(0,de,1). word(1,olifant,2).

Meer voorbeelden s(p0,p2) :- np(p0,p1), vp(p1,p2). np(p0,p3) :- det(p0,p1), a(p1,p2), n(p2,p3). vp(p0,p1) :- v(p0,p1). vp(p0,p2) :- v(p0,p1), np(p1,p2). det(p0,p1) :- word(p0,de,p1). det(p0,p1) :- word(p0,het,p1). det(p0,p0). n(p0,p1) :- word(p0,man,p1). n(p0,p1) :- word(p0,huis,p1). v(p0,p1) :- word(p0,verlaat,p1). v(p0,p1) :- word(p0,schreeuwt,p1).

Epsilon-regels NP Det A N Det ɛ NP Det A N ǫ oude det(p0,p0). mannen

Prolog-lijsten als string-posities 0 = [de,olifant,ontsnapt] 1 = [olifant,ontsnapt] 2 = [ontsnapt] 3 = [ ] de olifant ontsnapt 0 de 1 olifant 2 ontsnapt 3 word([de,olifant,ontsnapt],de,[olifant,ontsnapt]). word([olifant,ontsnapt],olifant,[ontsnapt]). word([ontsnapt],ontsnapt,[]).

Herken het patroon word([de,olifant,ontsnapt],de,[olifant,ontsnapt]). word([olifant,ontsnapt],olifant,[ontsnapt]). word([ontsnapt],ontsnapt,[]). word([word Words],Word,Words).

My first parser parse(words) :- s(words,[]). word([word Words],Word,Words). %%... en verder de grammaticaregels: s(p0,p2) :- np(p0,p1), vp(p1,p2). np(p0,p2) :- det(p0,p1), n(p1,p2). vp(p0,p1) :- v(p0,p1). vp(p0,p2) :- v(p0,p1), np(p1,p2). det(p0,p1) :- word(p0,de,p1). det(p0,p1) :- word(p0,het,p1). det(p0,p0). n(p0,p1) :- word(p0,man,p1). n(p0,p1) :- word(p0,huis,p1). v(p0,p1) :- word(p0,verlaat,p1). v(p0,p1) :- word(p0,schreeuwt,p1).

Overzicht Context-vrije Grammatica s CFGs in Prolog Definite Clause Grammars (DCGs) Construeren van bomen

De DCG pijl NP Det N wordt in Prolog geschreven als np --> det, n. en wordt door Prolog vertaald in np(p0,p2) :- det(p0,p1), n(p1,p2). Prolog term expansion vertaalt code bij het inlezen in andere code...

De DCG pijl (2) wordt in Prolog geschreven als en wordt door Prolog vertaald in N olifant Det ɛ n --> [olifant]. det --> []. n(p0,p1) :- C (P0,olifant,P1). det(p0,p1) :- P0 = P1. gegeven de volgende definitie C ([Word P],Word,P).

Enkelvoud/Meervoud Dumbo slaapt olifanten slapen fout: Dumbo slapen olifanten slaapt S NPsg VPsg S NPpl VPpl VPsg Vsg VPpl Vpl NPsg Detsg Nsg NPpl Detpl Npl Vsg slaapt Vpl slapen Dit werkt Maar wordt snel onoverzichtelijk (naamval, persoon,... ) Zeer veel regels Generalizatie gemist

DCG s met variabelen s --> np(num), vp(num). np(num) --> det(num), N(Num). vp(num) --> v(num). v(sg) --> [slaapt]. n(sg) --> [olifant]. v(pl) --> [slapen]. n(pl) --> [olifanten].

DCG s met variabelen (2) wordt door Prolog vertaald als s --> np(n), vp(n). s(p0,p2) :- np(n,p0,p1), vp(n,p1,p2). Variabelen voor string-posities worden altijd achteraan toegevoegd.

Woordenboeken v(sg) --> [slaapt]. v(pl) --> [slapen]. v(inf) --> [slapen]. v(prt) --> [geslapen]. v(sg) --> [sliep].... n(sg) --> [olifant]. n(pl) --> [olifanten].

Woordenboeken (2) Voor ieder werkwoord moeten dezelfde vormen worden gespecificeerd. (Paradigma). Dit vereist veel regels. Woordenboek en regels scheiden: Woordenboek kan worden geïmporteerd uit een algemeen electronisch woordenboek Veranderingen in de grammatica hebben minder invloed op woordenboek Woordenboek kan herbruikt worden.

Scheiden Woordenboek en Grammatica verb(slaapt,slapen,sliep,sliepen,geslapen). v(sg) --> [Word], {verb(word,,,, )}. v(sg) --> [Word], {verb(,,word,, )}. v(pl) --> [Word], {verb(,word,,, )}. v(pl) --> [Word], {verb(,,,word, )}....

Accolade s Soms wil je gewone Prolog-code tussen je regels vlechten. Accolade-notatie staat dit toe. v(sg) --> [W], {verb(w,,,, )}. wordt door Prolog vertaald als: v(sg,p0,p1) :- C (P0,W,P1), verb(w,,,, ).

Grammatica schrijven Ik slaap. Hij slaapt. Ik zie hem. Hij ziet mij. Jan ziet mij Ik zie Jan *Mij slaap *Hem slaap *Ik zie hij *Hij ziet ik Ik en hij kan alleen als onderwerp gebruikt worden (nominatief) mij en hem kan in alle posities, behalve onderwerp, gebruikt worden (accusatief), Jan kan in alle NP-posities gebruikt worden.

Grammatica zonder naamvallen s np vp vp v np np ik np mij np hij np hem np Jan

Grammatica met naamvallen s npnom vp vp v npacc npnom ik npnom hij npnom Jan npacc mij npacc hem npacc Jan

DCG met naamvallen s --> np(nom), vp. vp --> v, np(acc). np(nom) --> [ik]. np(acc) --> [mij]. np(nom) --> [hij]. np(acc) --> [hem]. np( ) --> [jan].

DCG met naamvallen s --> np(nom), vp. vp --> v, np(acc). np(nom) --> [W], {pronoun(w, )}. np(acc) --> [W], {pronoun(,w)}. np( ) --> [W],{proper name(w)}. pronoun(ik,mij). pronoun(hij,hem). proper name(jan).

Context-free versus context-sensitive De taal a n b n kan beschreven worden met een CFG, terwijl een CFG de taal a n b n c n niet kan beschrijven. Zijn DCGs krachtiger?

Uitwerking

a m b n c o s --> as, bs, cs. as --> [] as --> [a], as. bs --> [] bs --> [b], bs. cs --> [] cs --> [c], cs.

a m b n c o (2) s --> symbols(a), symbols(b), symbols(c). symbols(_) --> []. symbols(s) --> [S], symbols(s).

a n b n c n in een DCG s --> symbols(sem,a), symbols(sem,b), symbols(sem,c). symbols(end,_) --> []. symbols(s(sem),s) --> [S], symbols(sem,s).

Overzicht Context-vrije Grammatica s CFGs in Prolog Definite Clause Grammars (DCGs) Construeren van bomen

Bomen CP Compl NP VP dat Det N Adv VC dit overleg vlot Aux V is verlopen

Definitie Een boom bestaat uit Een moederknoop en 0,1,2, of meer dochters Dochters zijn zelf weer bomen of woorden.

Bomen in Prolog boom(moeder,lijst) boom(n,[overleg]) boom(det,[dit]) boom(np,[boom(det,[dit]),boom(n,[overleg])]) b(np,[b(det,[w(dit)]),b(n,[w(overleg)])])

Bomen in Prolog (2) np --> det, n. det --> [dit]. n --> [overleg]. np(b(np,[det,n])) --> det(det), n(n). det(b(det,[w(dit)])) --> [dit]. n(b(det,[w(overleg)])) --> [overleg]. det(b(det,[w(w)])) --> [W], {determiner(w)}. n(b(det,[w(w)])) --> [W], {noun(w)}.

Bomen in Prolog (3)?- parse([de,hond,heeft,gesnurkt]). s ----- np ---- det --- de ---- n ----- hond ----- aux --- heeft ----- vp ---- vc ---- aux --- epsilon ---- v ----- gesnurkt

Bomen in Prolog (4) hilde$ sicstus -l opgave2?- parse([de,hond,heeft,gesnurkt]). s ----- np ---- det --- de ---- n ----- hond ----- aux --- heeft ----- vp ---- vc ---- aux --- epsilon ---- v ----- gesnurkt s ----- np ---- det --- de ---- n ----- hond ----- aux --- heeft ----- vp ---- vc ---- v ----- gesnurkt ---- aux --- epsilon yes?-

Bomen in Hdrug hilde$ export PATH=$PATH:/net/aps/64/bin hilde$ export \ NTV=/net/aps/64/src/Alpino/Hdrug/Applications/NTV1 hilde$ hdrug -flag grammar opgave2.pl -l $NTV/start

Bomen in Hdrug (2)