Natuurlijke-Taalinterfaces week 5 Lambda-termen en Lambda-conversie
Natuurlijke-Taalinterfaces2 Semantische constructie-regels met unificatie s(Sem) np(X,Scope,Sem), vp(X,Scope). np(X,Scope,forall(X,human(X) > Scope))) [iedereen]. Vp(X,slapen(X)) [slaapt]. Sem wordt geunificeerd tussen hoofd en een dochter, Hulpvariabelen (+ unificatie) doen de rest…
Natuurlijke-Taalinterfaces3 coordinatie Jan slaapt en Piet slaapt s(Sem) s(C1), c(C1,C2,Sem), s(C2). c(C1,C2, C1 & C2) [en]. np(jan,P,P) [jan]. Jan en Piet slapen np(X,Sc,Sem) np(X,Sc,C1), c(C1,C2,Sem), np(X,Sc,C2). Probleem: X= jan, X = piet…. Je wilt een copie van Sc maken, en die met beide NP-betekenissen combineren….
Natuurlijke-Taalinterfaces4 Coordinatie van NP’s s(Sem) --> np(X,Scope,Sem), vp(X,Scope). np(Subj, Sem, Sem & Sem) --> np(Subj), [and], np(Subj). Het toepassen van een functie op een argument gebeurt door unificatie, hierdoor kun je nooit twee verschillende copieën van een term maken...
Natuurlijke-Taalinterfaces5 Oplossing: Lambda-calculus Compositionele semantiek: –Ken aan iedere constituent een betekenis toe, –Betekenis van een grotere constituent is een combinatie van betekenis van de delen. –Methode: lambda-expressies DCG/unificatie methode is –Theoretisch minder duidelijk, –Een subset van lambda-calculus.
Natuurlijke-Taalinterfaces6 Lambda-calculus x.F : een functie x geeft aan wat het argument van de functie is, de waarde van x.F toegepast op A is F[x/A]: F waarin alle voorkomens van x zijn vervangen door A. Dit noemen we lambda-conversie. (x.slaap(x))(jan) = slaap(jan)
Natuurlijke-Taalinterfaces7 Meer voorbeelden Mark groet Ria (y. x.groet(x,y)) (r) = x.groet(x,r) (x.groet(x,r))(m) = groet(m,r) Iedere man (P.Q.x(P(x) Q(x))) (y.man(y)) = Q.x((y.man(y)) (x) Q(x)) = Q.x(man(x) Q(x))
Natuurlijke-Taalinterfaces8 Adjectieven Aardige man P. x(aardig(x) & P(x)) (y. man(y)) = x.(aardig(x) & (y. man(y))(x)) = x.(aardig(x) & man(x))
Natuurlijke-Taalinterfaces9 Regels Semantiek van een regel is in principe altijd applicatie van een functor op een argument. S NP VP sem: S’ = NP’(VP’) N 0 A N 1 sem: N 0 ’ = A’(N 1 ’)
Natuurlijke-Taalinterfaces10 Lambda-termen vs. Prolog tv(Y, X, groet(X, Y)) vp(Subj,Sem) --> tv(Obj,Subj,Sem), np(Obj). (y. x.groet(x,y)) (r) = x.groet(x,r)
Natuurlijke-Taalinterfaces11 Verschillen ‘s en Prolog ‘secundaire’ lambda-conversie –(P.Q.x(P(x) Q(x))) (y.man(y)) = Q.x((y.man(y)) (x) Q(x)) = Q.x(man(x) Q(x)) substitutie vs. unificatie
Natuurlijke-Taalinterfaces12 Coordinatie van NP’s en : x y P(P(x) & P(y)) jan en kees: xyP(P(x) & P(y)) (j) (k) = P(P(j) & P(k)) jan en kees slapen : P(P(j) & P(k)) (x.slaap(x)) = (x.slaap(x))(j) & (x.slaap(x))(k) = slaap(j) & slaap(k)
Natuurlijke-Taalinterfaces13 Lambda-termen in Prolog --> np(NP), vp(VP). vp(Sem) --> iv(Sem). iv(lambda(X,slaap(X))) --> [slaapt]. --> [jan]. [jan,slaapt] = –na conversie: s(slaap(jan))
Natuurlijke-Taalinterfaces14 Lambda-termen in Prolog --> det(Det), n(N). n(lambda(X,man(X))) --> [man]. det(lambda(P,lambda(Q, > --> [iedere]. [iedere,man] = np(la(P,la(Q,forall(Y, > la(X,man(X))) na conversie (2x): np(la(Q,forall(Y, man(Y) >
Natuurlijke-Taalinterfaces15 Lambda-conversie in Prolog Moet je na iedere toepassing van een regel lambda-conversie doen? Ja : –S(Sem) np(NP), vp(VP), –Nadeel 1: omslachtig, –Nadeel 2: niet onafhankelijk van parse- algoritme.
Natuurlijke-Taalinterfaces16 Lambda-conversie in Prolog Moet je na iedere toepassing van een regel lambda-conversie doen? Nee : –Conversie is een normalisatie-stap (dwz betekenis van de formule verandert niet), –Moment waarop je conversie doet is onbelangrijk (Church-Rosser theorem) –Dus kun je conversie ook achteraf doen, –Bijvoorbeeld in de pretty-printer.
Natuurlijke-Taalinterfaces17 Meer regels Iedere categorie heeft 1 argument voor de semantiek, De semantiek van constituenten is altijd applicatie --> tv(TV), np(NP). --> [groet].
Natuurlijke-Taalinterfaces18 Huiswerk/opdracht Lees Bouma 99, sectie 1.5 Lees Blackburn/Bos, sectie 2.1 t/m 2.3. Opdracht 2: –Verander de grammatica van opdracht 1 zodat er met lambda-termen gewerkt wordt. –Voeg een regel voor NP-coordinatie toe...