INF2820 Datalingvistikk V2016 14. gang, 27.4.2016 Jan Tore Lønning
I dag Formell setningssemantikk: Systematisk oversettelse fra naturlig språk til logisk språk Utvidelser av det logiske språket To trinn 1. Enkelt fragment uten kvantifiserte NP-er 2. Med kvantifiserte NP-er. Reviderer (1) 2
Semantikk noen poeng fra sist Vi legger vekt på at språket er om noe det denotasjonelle aspektet ved mening Modeller av verden En setning er sann eller usann i en modell Det logiske forholdet mellom setninger: konsekvens Oversettelse fra naturlig språk til et logisk språk Rekursive systematiske regler 3
Fremgangsmåte trinnvis 1. Definere oversettelsesregler fra naturlige språk: En etter en Følger de syntaktiske reglene 2. Utvide det logiske språket, Når det trengs for Å få passende representasjoner Å få oversettelsesregler: «noe å oversette til» Gjøre 1 og 2 i parallell: Utvidelser av det logiske språket kan kreve revisjon av tidligere innførte regler 4
To trinn Trinn 1 Transitive og intransitive verb Preposisjoner Konjunksjon, negasjon NP-er: Navn: Kari, Ola, Ikke kvantifiserte NP-er: ethvert barn, et hus Redskaper: Lambda uttrykk λx. ϕ Logiske typer Trinn 2 I tillegg Generelle NP-ledd Adjektiv Redskaper: Begrensete logiske kvantorer Variable over predikat (høyere-ordens variable) Revidere (skifte noen av) reglene fra trinn (1) 5
Første ide NP:: don S::Sin(don) VP::Sin Vi kan da innføre en oversettelsesregel som for eksempel: S(Vsem(Nsem)) NP(Nsem) VP(Vsem) Donald sings 6
Hva da med?? S::Sin(don) & Dan(don) VP::?? NP:: don VP::Sin VP::Dan Donald sings and dances 7
Hva med?? S::Env(don, scr) VP::?? NP:: don V::Env NP::scr Donald envies Scrooge 8
Hva med?? S::Sin(don) & Dan(don) S::Env(don, scr) VP::?? VP::?? NP:: don VP::Sin VP::Dan NP:: don V::Env NP::scr Donald sings and dances Donald envies Scrooge 9
Typer hvorfor? Vi vil inndele uttrykkene i det logiske språket i typer Det vil gjøre det enklere å snakke om utvidelser I førsteordens predikatlogikk er det i utgangspunktet tre ulike slags uttrykk: Termer: navn og variabler Relasjonssymboler (med en gitt aritet) Formler 26. april 2016 10
Typer for førsteordens logikk Så langt: Samme språk annen definisjon Vi vil si at: Alle formler er uttrykk av type t (for «truth value») Navn og variable er uttrykk av type e (De betegner «entiteter») Et unært predikat, e.g. Dan er av type (e t) Et binært relasjonssymbol, Env, er av type ((e,e) t) Et ternært relasjonssymbol, Giv, er av type ((e,e,e) t) etc. Sammensetningen Hvis R er av type ((e,e) t), og u og v av type e, så er R(u,v) av type t Hvis R er av type ((e,e,e) t), og u, w og v av type e, så er R(u,w,v) av type t osv. 26. april 2016 11
Utvidelse: λ-uttrykk 1 Hvis ϕ er av type t og x en variabel (av type e), så er (λx. ϕ) av type (e t) Det følger at hvis v er et navn eller en variable (av type e), så er (λx. ϕ) (v) av type t (en formel) 12
Bruk av dette S:: λx.(sin(x) & Dan(x)) (don) VP:: λx.(sin(x) & Dan(x)) NP:: don VP::Sin VP::Dan Donald sings and dances 13
Tolkningen av λ λx.(sin(x) & Dan(x))(don) er tolket til å bety det samme som (Sin(don) & Dan(don)) Generelt (λx. ϕ) (v) tolkes som det samme som ϕ [v/x] Forutsatt at v ikke forekommer i ϕ (ϕ [v/x] betyr: erstatt alle x-er i ϕ med v) Den syntaktiske operasjonen hvor (λx. ϕ)(v) erstattes med ϕ [v/x] kalles β-konversjon eller β-reduksjon 26. april 2016 14
I bruk S:: λx.(sin(x) & Dan(x)) (don) (Sin(don) & Dan(don)) VP:: λx.(sin(x) & Dan(x)) NP:: don VP::Sin VP::Dan Donald sings and dances 15
Hva med?? S::Env(don, scr) VP:: λx.env(x, scr) Hva med regelen VP( ) V( ) NP( )? NP:: don V::Env NP::scr Donald envies Scrooge 16
Hva med?? S:: ((λy.λx.env(x,y))(scr)) (don) VP(Vsem(Nsem)) V(VSem) NP(NSem) VP:: (λy.λx.env(x,y))(scr) NP:: don V:: λy.λx.env(x, y) NP::scr Donald envies Scrooge 17
Utvidelse: λ-uttrykk 2 Hvis ϕ er et velformet uttrykk av en eller annen type τ and x en variabel av type e, så er λx. ϕ et velformet uttrykk av type (e τ) Hvis v er et navn eller en variabel (av type e), så er λx. ϕ (v) av type τ OBS: Her er e og t typer, Mens τ (og σ) er variable over typer. De kan skiftes ut med en vilkårlig type Eksempel: λx.env(x,y) : (e t) λy.λx.env(x,y) : (e (e t)) (λy.λx.env(x,y))(scr) :(e t) ((λy.λx.env(x,y))(scr))(don):t Hvor: (λy.λx.env(x,y))(scr) =>(λx.env(x,scr)) ((λy.λx.env(x,y))(scr))(don) => Env(don, scr) 18
Oppdatering Så langt, tilnærming 1 Innført typer ϕ av type τ og x variabel av type e: λx. ϕ et velformet uttrykk av type (e τ) Kan takle navn, transitive verb med mer. Videre, tilnærming 2 Mangler generelle NP-ledd, kvantorer Flere redskaper: Begrensete logiske kvantorer Variable over predikat (høyere-ordens variable) Revidere (skifte noen av) reglene fra trinn (1) 19
Begrensete kvantorer utvidelse av FOL Syntaksen til FOL (førsteordens logikk) speiler ikke strukturen: NP VP Innfør begrensete kvantorer: Hvis ϕ er en formel og x en variabel, da er ( x: ϕ), og ( x: ϕ), begrensete kvantorer Hvis Q er en begrenset kvantor og ϕ en formel, så er Qϕ en formel Every old duck smiles x (Old(x) & Duc(x) Smi(x)) ( x: Old(x) & Duc(x)) Smi(x)) Some old duck smiles x (Old(x) & Duc(x) & Smi(x)) ( x: Old(x) & Duc(x)) Smi(x)) 20
S:: ( x: Duc(x)) Qua(x) NP::? DET::? N::Duc VP::Qua Every duck quacks 21
Høyere-ordensvariable + λ-uttrykk 3 S:: (λp. ( x: Duc(x)) P(x))(Qua) ( x: Duc(x)) Qua(x) NP:: λp.( x: Duc(x)) P(x) DET::? N::Duc VP::Qua Innfør variable (for predikat) av type (e t) Hvis ϕ er av type τ og x en variabel av type σ: så er λx. ϕ av type (σ τ) og hvis v er av type σ, så er (λx. ϕ)(v) av type τ Every duck quacks 22
Tilnærming 2: Semantiske regler S:: (λp. ( x: Duc(x)) P(x))(Qua) ( x: Duc(x)) Qua(x) S(Nsem(Vsem)) NP(Nsem) VP(Vsem) NP:: λp.( x: Duc(x)) P(x) DET:: N::Duc λq.λp.( x: Q(x)) P(x) VP::Qua NP(Dsem(Nsem)) DET(Dsem) N(Nsem) Every duck quacks 23
Tilnærming 2: Egennavn NP::? S:: (?)(Sin) PN:: don VP::Sin Sin(don) S(Nsem(Vsem)) NP(Nsem) VP(Vsem) Hva skal NPsemantikken være med denne regelen? Donald sings 24
Tilnærming 2: Egennavn S:: λp. (P(don))(Sin) Sin(don) NP:: λp. (P(don)) PN:: don VP::Sin S(Nsem(Vsem)) NP(Nsem) VP(Vsem) NP(λP. (P(PNSem))) PN(PNSem) Donald sings 25
Hva med TV (og DTV)? S:: (λp. ( x: Dog(x)) P(x)) (λz. ( y: Cat(y)) Cha(z,y)) ( x:dog(x)) ( y: Cat(y)) Cha(x,y) NP:: λp. ( x: Dog(x)) P(x) VP:: λz. ( y: Cat(y)) Cha(z,y) V:: λu.λz.cha(z,u) NP:: λp. ( y: Cat(y)) P(y) DET:: N::Dog λq.λp.( x: Q(x)) P(x) DET:: λq.λp.( y: Q(y)) P(y) N::Cat A dog chases every cat 26
TV + NP VP:: λz. ( y: Cat(y)) Cha(z,y) V:: λu.λz.cha(z,u) NP:: λp. ( y: Cat(y)) P(y) Hvordan oppnår vi dette? To alternativ: Alt A: Vi tilpasser semantikken i regelen VP TV NP Alt B: Vi gjør mest mulig i leksikonoppslaget for TV og får en noe enklere regel for VP TV NP 27
Alt A (no-sem.fcfg) VP[λx.Nsem(λy.TVsem(x,y))] TV[TVsem] NP[Nsem] TV[Cha] chased VP:: λx. ((λp. ( z: Cat(z)) P(z)) (λy.cha(x,y) )) => λx. ( z: Cat(z)) (λy.cha(x,y)) (z)=> λx. ( z: Cat(z)) (Cha(x,z)) V:: Cha NP:: λp. ( y: Cat(y)) P(y) 28
Alt B (a la NLTK) VP[TVsem(Nsem)] TV[TVsem] NP[Nsem] TV[λQ.λz. Q(λu.Cha(z,u)) ] chased VP:: λq.λz. Q(λu.Cha(z,u)) (λp. ( y: Cat(y)) P(y)) => λz. (λp. ( y: Cat(y)) P(y)) (λu.cha(z,u)) => λz. ( y: Cat(y)) (λu.cha(z,u)) (y)=> λz. ( y: Cat(y)) (Cha(z,y)) V:: λq.λz. Q(λu.Cha(z,u)) NP:: λp. ( y: Cat(y)) P(y) Q er en variabel av type ((e t) t) 29
Begrensete kvantorer Vi har innført begrensete kvantorer for å få et logisk språk med en form mer likt naturlig språk enn vanlig logikk Med lambda-uttrykk og variable over predikat er det også mulig å uttrykke dette uten begrensete kvantorer. Dvs. De begrensete kvantorene representeres med lambda-uttrykk 30
Uten begrensete kvantorer Every duck smiles and dances Semantikken til DET Begrensete (= så langt) ( x:duc(x)) (Smi(x) & Dan(x)) λq.λp.( x: Q(x)) P(x) Uten begrensete kvantorer (= NLTK) x (Duc(x) (Smi(x) & Dan(x))) λq.λp.( x(q(x) P(x))) Some duck smiles and dances Semantikken til DET ( x:duc(x)) (Smi(x)& Dan(x)) x (Duc(x) & Smi(x) & Dan(x)) λq.λp.( x: Q(x)) P(x) λq.λp.( x (Q(x)& P(x))) 26. april 2016 31
Generaliserte kvantorer Med notasjonen for begrensete kvantorer, kan vi også innføre generaliserte kvantorer Most ducks fly Five happy ducks fly Several ducks quack and bite Few happy ducks bite (Most x: Duck(x)) Fly(x) (Five x: Duck(x) & Happy(x)) Fly(x) (Several x: Duck(x)) (Quack(x) & Bite(x)) (Few x: Duck(x) & Happy(x)) Bite(x) 26. april 2016 32
Rekkeviddeflertydigheter Everybody did not sing x Sing(x) x Sing(x) All skaters have visited a small town in the middle of Norway x (Skater(x) y(small(y) & Town(y) & In(y,norw) & Visit(x,y))) y(small(y) & Town(y) & In(y,norw) & x (Skater(x) Visit(x,y))) Betraktet som en semantisk flertydighet men syntaktisk entydig Ulike forslag i litteraturen for å lage flere semantiske repr. til en syntaktisk repr. Også forslag til utvidete representasjonsspråk der flertydigheten beholdes 26. april 2016 33
NLTK-grammatikk med semantikk S[SEM = <?subj(?vp)>] -> NP[NUM=?n,SEM=?subj] VP[NUM=?n,SEM=?vp] NP[NUM=?n,SEM=<?det(?nom)> ] -> Det[NUM=?n,SEM=?det] Nom[NUM=?n,SEM=?nom] <...> er en spesialnotasjon Tillater spesiell symboler, som \ (for λ) Utløser λ-reduksjoner 34
Litt mer om typing Vi chase : ((e,e) t) chase(x, don) : t λx.chase(x, don) : (e t) λy.λx.chase(x, y) : (e (e t)) λy.λx.chase(x, y) (don): ((e t) NLTK chase(x, don) : t λx.chase(x, don) : (e t) λy.λx.chase(x, y) : (e (e t)) Men sier at chase : (e (e t)) og skriver (e (e t)) som e, e,t eller e 2,t 35