Natuurlijke-Taalinterfaces week 2 computationele semantiek zinnen en betekenis definite clause grammatica’s met een semantische component
Natuurlijke-Taalinterfaces Betekenis en Logica natuurlijke taal: rijk aan betekenis (informatie, emoties, speech acts, associaties,…) rijk aan structuur: grote woordenschat, moeilijke grammatica, geen duidelijke regels context-afhankelijk, vaag, ambigu logische formules: betekenis = interpretatie in een model beperkte verzameling logische operatoren, precieze grammatica, (meestal) niet context-afhankelijk, vaag, of ambigu Natuurlijke-Taalinterfaces
Natuurlijke-Taalinterfaces Betekenis en Logica natuurlijke taal: lastig en ingewikkeld voor automatische verwerking logica: interpretatie in een model is eenvoudig, automatisch stellingen bewijzen is mogelijk, vertaling naar een applicatie (bv database) vaak mogelijk. Natuurlijke-Taalinterfaces
Taal en Predikaat-logica Ard bezit een huis x (huis(x) bezit(a,x)) De broer van Anja gaat misschien morgen een huis kopen x (brr(x,a) y(brr(y,a) x = y)) e(kopen(e,...) morgen(e)) y(huis(y) kopen(e,x,y)) Natuurlijke-Taalinterfaces
Taal en Predikaat-logica Ieder land heeft een hoofdstad x(land(x) y(hoofdstad(x,y)) y(x(land(x) hoofdstad(x,y)) Bij ieder tentamen blijft een student tot het einde. Natuurlijke-Taalinterfaces
Natuurlijke-Taalinterfaces Taal en Logica Logica is voor veel doeleinden een redelijke benadering van de betekenis van taal predikaat-logica is een redelijke logica voor dialoogsystemen waar het domein een (relationele) database is. Natuurlijke-Taalinterfaces
Formules als Prolog-termen x(land(x) y(stad(y)hoofdstad(x,y))) forall(X, (land(X) > exists(Y, (stad(Y) & hoofdstad(X,Y))))) forall(Var,Formule) exists(Var,Formule) Formule1 & Formule2 Formule1 v Formule2 ~Formule Natuurlijke-Taalinterfaces
Grammatica en betekenis Compositionaliteit:: de betekenis van een zin of zinsdeel is het resultaat van het op een bepaalde manier samenvoegen van de betekenissen van de delen van de zin. rule-to-rule hypothesis: Iedere syntactische regel van een grammatica correspondeert met een semantische regel. Natuurlijke-Taalinterfaces
Semantiek en definite clause grammatica s(Sem) --> np(Subj), vp(Subj,Sem). vp(Subj,Sem) --> iv(Subj,Sem). np(w) --> [willem]. iv(S,slapen(S)) --> [slaapt]. Natuurlijke-Taalinterfaces
Semantiek en definite clause grammatica s(slapen(w)) np(w) vp(S,slapen(S)) iv(S,slapen(S)) willem slaapt Natuurlijke-Taalinterfaces
Natuurlijke-Taalinterfaces Transitieve zinnen s(Sem) --> np(Subj), vp(Subj,Sem). vp(Subj,Sem) --> iv(Subj,Sem). vp(Subj, Sem) --> tv(Obj,Subj,Sem), np(Obj). tv(O,S,groeten(S,O)) --> [groet]. Natuurlijke-Taalinterfaces
Semantiek en definite clause grammatica s(groeten(r,m)) np(r) vp(S,groeten(S,m)) tv(O,S,groeten(S,o)) np(m) ruud groet mona Natuurlijke-Taalinterfaces
Natuurlijke-Taalinterfaces Semantiek en DCG Aan iedere categorie wordt een argument toegevoegd dat de semantiek representeert. Soms zijn hulpvariabelen nodig om de compositie soepel te laten verlopen = extra arguments-posities. Natuurlijke-Taalinterfaces
Natuurlijke-Taalinterfaces coordinatie s(Sem) s(Arg1), coord(Arg1,Arg2,Sem), s(Arg2). coord(Arg1, Arg2, (Arg1 & Arg2)) [en]. Natuurlijke-Taalinterfaces
Natuurlijke-Taalinterfaces kwantoren [np ieder kind ] slaapt forall(X, (kind (X) > slaap(X))) Blijkbaar moet de NP de semantiek van S leveren. Semantiek van N en VP moet worden ingebouwd in de semantiek van Det. s(Sem) --> np(....,Sem), vp(....). np(....,Sem) --> det(....,Sem), n(....). Natuurlijke-Taalinterfaces
Natuurlijke-Taalinterfaces kwantoren det(X, Restr, Scope, forall(X, (Restr > Scope))) [ieder]. n(Y, kind(Y)) [kind]. np(X, Scope, Sem) det(X, Restr, Scope, Sem), n(X, Restr). s(Sem) --> np(X, Scope, Sem), vp(X, Scope). Natuurlijke-Taalinterfaces
Kwantoren s(forall(X,kind(X) > slapen(X))) vp(Y,slapen(Y)) np(X,S,forall(X,kind(X) > S))) det(X,R,S,forall(X,R > S))) n(Z,kind(Z)) iv(Y,slapen(Y)) ieder kind slaapt Natuurlijke-Taalinterfaces
Natuurlijke-Taalinterfaces Eigennamen np(jan, Sem, Sem) [jan]. s(Sem) np(X, Scope, Sem), vp(X, Scope). s(slapen(jan)) np(jan,Sem,Sem) vp(X,slapen(X)) jan slaapt Natuurlijke-Taalinterfaces
Constituent (WH) vragen Wie slaapt wh(X,slapen(X)) np(X,Sem,wh(X,Sem)) [wie]. Welke man slaapt wh(X,man(X) & slapen(X)) Welke is als een determiner die een wh-operator introduceert. Natuurlijke-Taalinterfaces