INF2820 Datalingvistikk – V2015...INF2820 Datalingvistikk – V2015 9. Gang – 16.3 Jan Tore...
Transcript of INF2820 Datalingvistikk – V2015...INF2820 Datalingvistikk – V2015 9. Gang – 16.3 Jan Tore...
-
INF2820 Datalingvistikk – V2015 9. Gang – 16.3 Jan Tore Lønning
-
I dag Med anbefalt lesing – og rekkefølge • Grammatiske trekk («features»)
• NLTK boka, seksj 9.1 • Trekkstrukturer («feature structures»)
• J&M, seksj 15.1 • Unifikasjon og subsumpsjon
• J&M, seksj. 15.2 • Trekkstrukturer i NLTK
• NLTK-boka seksj. 9.2 • Trekkbaserte grammatikker
(=Unifikasjonsgrammatikker) • Delvis:
• J&M, seksj15.3, NLTK boka seksj 9.3 2
-
Trekk (“features”) – trinn for trinn
NLTK ch.9, ex. 8 S NP_SG VP_SG S NP_PL VP_PL NP_SG Det_SG N_SG NP_PL Det_PL N_PL VP_SG V_SG VP_PL V_PL Det_SG 'this' Det_PL 'these' N_SG 'dog' N_PL 'dogs' V_SG 'runs' V_PL 'run'
Kategorier og trekk S NP[NUM=sg] VP[NUM=sg] S NP[NUM=pl] VP[NUM=pl] NP[NUM=sg] Det[NUM=sg] N[NUM=sg] NP[NUM=pl] Det[NUM=pl] N[NUM=pl] VP[NUM=sg] V[NUM=sg] VP[NUM=pl] V[NUM=pl] Det[NUM=sg] 'this' Det[NUM=pl] 'these' N[NUM=sg] 'dog' N[NUM=pl] 'dogs' V[NUM=sg] 'runs' V[NUM=pl] 'run'
March 12, 2015 3
-
Trekk – trinn for trinn 2
Kategorier og trekk S NP[NUM=sg] VP[NUM=sg] S NP[NUM=pl] VP[NUM=pl] NP[NUM=sg] Det[NUM=sg] N[NUM=sg] NP[NUM=pl] Det[NUM=pl] N[NUM=pl] VP[NUM=sg] V[NUM=sg] VP[NUM=pl] V[NUM=pl] Det[NUM=sg] 'this' Det[NUM=pl] 'these' N[NUM=sg] 'dog' N[NUM=pl] 'dogs' V[NUM=sg] 'runs' V[NUM=pl] 'run'
Saml sammen likheter S NP[NUM=?x] VP[NUM=?x] NP[NUM=?x] Det[NUM=?x] N[NUM=?x] VP[NUM=?x] V[NUM=?x] Det[NUM=sg] 'this' Det[NUM=pl] 'these' N[NUM=sg] 'dog' N[NUM=pl] 'dogs' V[NUM=sg] 'runs' V[NUM=pl] 'run'
March 12, 2015 4
-
Intuitiv tolkning
CFG
S NP VP
Hvis • words[i,j] er en NP og • words[j,k] er en VP
Så • kan words[i,k] være en S
Med trekk
S NP[NUM=?x] VP[NUM=?x]
Hvis • words[i,j] er en NP og • words[j,k] er en VP • og NP sin NUM = VP sin NUM
Så • kan words[i,k] være en S
March 12, 2015 5
-
Mot en formalisering • Formelt:
• Kan en kategori ha flere enn ett trekk? • Hvilke verdier kan et trekk ta? • Hva er de mulige grammatikkreglene? • Hvordan skal vi tolke grammatikkreglene?
• Anvendelser: • Hvordan skal en grammatikk med trekk for et gitt fenomen
formuleres naturlig? • Hva mer kan trekk brukes til?
• Generaliseringer • Grammatikker for språk som ikke er kontekstfrie • Semantiske representasjoner
• Komputasjonelt: • Hvordan kan trekkgrammatikker parses?
6 March 12, 2015
-
Flere enn ett trekk i en kat., eks: tysk S
NP[CASE=nom, NUM=?x, PERS=?y] VP[NUM=?x, PERS=y?]
NP[CASE=?z,NUM=?x, PERS=3rd] Det[CASE=?z,NUM=?x, GEN=?u] N[CASE=?z,NUM=?x, GEN=?u]
VP[NUM=?x] V[SUBC= dtv, NUM=?x] NP[CASE=dat] NP[CASE=acc]
Det[NUM=sg, CASE=nom, GEN=mask] 'der'
7
-
Flere enn ett trekk i en kat., eks: tysk S
NP[CASE=nom, NUM=?x, PERS=?y] VP[NUM=?x, PERS=?y]
NP[CASE=?z,NUM=?x, PERS=3rd] Det[CASE=?z,NUM=?x, GEN=?u] N[CASE=?z,NUM=?x, GEN=?u]
VP[NUM=?x] V[SUBC= dtv, NUM=?x] NP[CASE=dat] NP[CASE=acc]
Det[NUM=sg, CASE=nom, GEN=mask] 'der'
8
-
I dag Med anbefalt lesing – og rekkefølge • Grammatiske trekk («features»)
• NLTK boka, seksj 9.1 • Trekkstrukturer («feature structures»)
• J&M, seksj 15.1 • Unifikasjon og subsumpsjon
• J&M, seksj. 15.2 • Trekkstrukturer i NLTK
• NLTK-boka seksj. 9.2 • Trekkbaserte grammatikker
(=Unifikasjonsgrammatikker) • Delvis:
• J&M, seksj15.3, NLTK boka seksj 9.3 9
-
Trekkstrukturer
• Lang tradisjon i lingvistikk
• Eks.: fonologi • En mengde trekk og
verdier: • For hvert trekk er det
definert hvilke verdier som er mulige
• Et skritt videre: • Hele trekkstrukturer
som verdier 10
-
Trekkstrukturer som grafer
• To alternative notasjoner for det samme 11
Directed Acyclic Graphs
(DAGs)
Attribute Value Matrices (AVMs)
-
Deling («Reentrancies»)
12
-
Deling og programmering
• Likher mellom «reentrancy» og
• To variable peker til samme objekt (identitet), vs.
• To variable har samme verdi
>>> a = [3,4,5] >>> b = [6,7,a,9] >>> c = a[:] >>> a.pop() 5 >>> a ? >>> c ? >>> b ? >>>
13
-
I dag Med anbefalt lesing – og rekkefølge • Grammatiske trekk («features»)
• NLTK boka, seksj 9.1 • Trekkstrukturer («feature structures»)
• J&M, seksj 15.1 • Unifikasjon og subsumpsjon
• J&M, seksj. 15.2 • Trekkstrukturer i NLTK
• NLTK-boka seksj. 9.2 • Trekkbaserte grammatikker
(=Unifikasjonsgrammatikker) • Delvis:
• J&M, seksj15.3, NLTK boka seksj 9.3 14
-
Unifikasjon av trekkstrukturer
12. mars 2015 15
-
12. mars 2015 16
-
12. mars 2015 17
-
12. mars 2015 18
-
Subsumpsjon og unifikasjon
Subsumpsjon
• F subsummerer G • ”F er minst like generell som G” • • Hvis og bare hvis:
• F er atomær og F=G • Ellers
• For hvert trekk x i F: F(x) subsumerer G(x)
• For alle stier p, q in F: Hvis F(p) = F(q), så G(p) = G(q)
Unifikasjon
• H er unifikasjonen av F og G
• H = • Hvis og bare hvis
• • • Og H er den mest
generelle slike trekkstrukturen
12. mars 2015 19
-
I dag Med anbefalt lesing – og rekkefølge • Grammatiske trekk («features»)
• NLTK boka, seksj 9.1 • Trekkstrukturer («feature structures»)
• J&M, seksj 15.1 • Unifikasjon og subsumpsjon
• J&M, seksj. 15.2 • Trekkstrukturer i NLTK
• NLTK-boka seksj. 9.2 • Trekkbaserte grammatikker
(=Unifikasjonsgrammatikker) • Delvis:
• J&M, seksj15.3, NLTK boka seksj 9.3 20
-
NLTK - implementasjon >>> fs1 = nltk.FeatStruct(TENSE='past', NUM='sg') >>> fs1 [NUM='sg', TENSE='past'] >>> print fs1 [ NUM = 'sg' ] [ TENSE = 'past' ] >>> from nltk import FeatStruct >>> fs2 = FeatStruct(CAT='vp', AGR = fs1) >>> print fs2 [ AGR = [ NUM = 'sg' ] ] [ [ TENSE = 'past' ] ] [ ] [ CAT = 'vp' ]
21 12. mars 2015
-
NLTK - implementasjon >>> fs3 = fs2.unify(FeatStruct( "[AGR = ?x, SUBJ = [AGR = ?x]]"))
>>> print fs3 [ AGR = (1) [ NUM = 'sg' ] ] [ [ TENSE = 'past' ] ] [ ] [ CAT = 'vp' ] [ ] [ SUBJ = [ AGR -> (1) ] ]
22 12. mars 2015
-
I dag Med anbefalt lesing – og rekkefølge • Grammatiske trekk («features»)
• NLTK boka, seksj 9.1 • Trekkstrukturer («feature structures»)
• J&M, seksj 15.1 • Unifikasjon og subsumpsjon
• J&M, seksj. 15.2 • Trekkstrukturer i NLTK
• NLTK-boka seksj. 9.2 • Trekkbaserte grammatikker
(=Unifikasjonsgrammatikker) • Delvis:
• J&M, seksj15.3, NLTK boka seksj 9.3 23
-
Grammatikker – to alternative format
1. Trekkstrukturer i reglene
• NLTK er et (begrenset) forsøk på å implementere dette formatet
2. Regler + likninger
• Jurafsky og Martin
12. mars 2015 24
-
1. Regler med trekkstrukturer • S NP VP • NP Det N
• V ’serve’
• V ’serves’ • En ikke-terminal suppleres med en partiell trekkstruktur
• Mulig deling mellom trekkstrukturene i en regel • Terminalene er uendret
12. mars 2015 25
-
1B. NLTKs format • S NP VP • S NP[AGR=?x] VP[AGR=?x]
• NP Det N • NP[AGR=?x] Det[AGR=?x] Nom[AGR=?x] • V ’serves’
• V[AGR=[NUM=SG, PERS=3rd]] ’serves’
• NLTKs format er en implementasjon av denne formalismen • Men som vi vil se senere, har implementasjonen en del
begrensninger i forhold til formalismen
13. mars 2015 26
-
Generalisering av formalisme 1 • Vi trenger ikke egne symboler for ikke-terminalene • Vi kan bruke et trekk for dem, f.eks. Cat • Fordeler:
• Enklere teori • Større fleksibilitet, f.eks. variable over kategorier
Trekkstrukturgrammatikk • Syntaktisk regel:
• En trekkstr. på v.s • Null eller flere t.s. på h.s • Deling mellom trekkstr.ene
• Leksikalsk regel: • En trekkstr. på v.s • En terminal på h.s.
12. mars 2015 27
-
Tolkning av trekkstrukturgrammatikker
• Har definert: • Trekkstrukturer og unifikasjon • Grammatikkregler med trekkstrukturer
• Gjøre presist hvordan en trekkstrukturgrammatikk
definerer et språk • (mangler både fra J&M og NLTK-boka)
• Vi vil gi en semi-formell definisjon
• (ikke formalisere alle detaljer) 28 12. mars 2015
-
Husk: CFG og trær • Et lokalt tre:
• En node som ikke er et blad
• Alle døtrene • Rekkefølgen
mellom døtrene • Kantene mellom
mor og datter
• En regel • B s1, s2, …, sn • tillater (”license”) et
lokalt tre hvis og bare hvis det har formen:
12. mars 2015 29
B
s1 s2 sn … …..
-
Trær • En CFG G, generer et tre t hviss
• Toppen av t er merket med S • Bladene er merket med terminaler • Hvert lokalt tre er tillatt av en
produksjonsregel • T(G) for mengde av trær generert
av G • Utkomme (”yield”) av treet t er
symbolene på bladene i riktig rekkefølge
• En streng w er avledbar fra G hviss w er utkomme til et tre i T(G).
12. mars 2015 30
Forkortelse: ”hviss” for
”hvis og bare hvis”
-
Trær med trekkstrukturer
12. mars 2015 31
NP, VP,
V, N, DET, NP,
N, DET,
S,
the restaurant serves many fish
Hver ikke-terminal node inneholder en trekkstruktur
-
Betingelser på grammatikalitet
12. mars 2015 32
NP, VP,
V, N, DET, NP,
N, DET,
S,
the restaurant serves many fish
Hvert lokalt tre må tillates av en grammatikkregel
-
R1: S NP VP
Lokalt tre tillatt av regel – eks 1
• Regelen R1 svarer til et lokalt tre t2 • R1 tillater t1 hvis t1 «utvider» t2, • Mer formelt: hvis t2 subsummerer t1
33 12. mars 2015
NP, VP,
S, Hvert lokalt tre må tillates av en grammatikkregel
t1:
-
Subsumpsjone av trær
• Vi kan utvide definisjonen av subsumpsjon fra trekkstrukturer til trær med trekkstrukturer på nodene
• Et tre T subsummerer et tre T’ dersom • T er atomær og T = T’, eller • T har en mor M og døtre D1, D2, …, Dn, og
T’ har en mor M’ og like mange døtre D’1, D’2, …, D’n, der • M subsummerer M’, og • Di subsummerer D’i for i = 1, 2, …, n, og • Alle delinger i T er også delinger i T’.
34
-
Lokalt tre tillatt av regel –eks 2
R: DET[AGR=[PERS=‘3rd’]]-> ‘the’ R svarer til det lokale treet t’ som subsummerer t
35 12. mars 2015
DET, Hvert lokalt tre må tillates av en grammatikkregel
the
DET,
the
t:
t':
-
Tolkning av grammatikk
• Et tre T med trekkstrukturer er tillatt av grammatikk G hvis og bare hvis.
• Hvis t1, t2, …, tn er alle de lokale trærne i T, så fins det tilsvarende regler i G, si g1, g2, …, gn s.a.: tre ti er tillatt av regel gi for i= 1, 2, …, n
• Hvis T’ er et annet tre tillat av de samme reglene g1, g2, …, gn, og T’ subsummerer T, så subsummerer også T T’.
36 13. mars 2015
"Det skal ikke være med mer i treet enn det reglene krever. "
-
Grammatikker – to alternative format
1. Trekkstrukturer i reglene 2. Regler + likninger
12. mars 2015 37
• S NP VP
• NP Det NOM • V ’serves’ •
•
-
Lokalt tre tillatt av regel –eks 1
• J&M-format: • Det lokale treet lystrer alle likningene
38 12. mars 2015
NP, VP,
S, Hvert lokalt tre må tillates av en grammatikkregel
-
Lokalt tre tillatt av regel –eks 2
• Regler + likninger: • Det lokale treet lystrer alle
likningene
DET the
=3rd
• Trekkstr. i regel DET[AGR=[PERS=‘3rd’]]-> ‘the’
12. mars 2015 39
DET, Hvert lokalt tre må tillates av en grammatikkregel
the
DET,
the
-
Sammenlikning av formatene
1. Trekkstrukturer i reglene • Utvid ikke-terminaler med
partielle trekkstrukturer • Variable i trekkstrukturene
for deling («reentrancy»)
• Brukt for eksempel i tidlig Head-driven Phrase Structure Grammars (HPSG)
2. Regler + likninger • Legg likninger til CFG-reglene • En likning mellom
• To stier, eller • En sti og en atomær verdi
• Inspirert av
• PATR • Lexical-Functional Grammar
12. mars 2015 40
Blir det samme (før evt utvidelser)
INF2820 Datalingvistikk – V2015I dagTrekk (“features”) – trinn for trinnTrekk – trinn for trinn 2Intuitiv tolkningMot en formaliseringFlere enn ett trekk i en kat., eks: tyskFlere enn ett trekk i en kat., eks: tyskI dagTrekkstrukturerTrekkstrukturer som graferDeling («Reentrancies»)Deling og programmeringI dagUnifikasjon av trekkstrukturerSlide Number 16Slide Number 17Slide Number 18Subsumpsjon og unifikasjonI dagNLTK - implementasjonNLTK - implementasjonI dagGrammatikker – to alternative format1. Regler med trekkstrukturer1B. NLTKs formatGeneralisering av formalisme 1 Tolkning av trekkstrukturgrammatikkerHusk: CFG og trærTrærTrær med trekkstrukturerBetingelser på grammatikalitetLokalt tre tillatt av regel – eks 1Subsumpsjone av trærLokalt tre tillatt av regel –eks 2Tolkning av grammatikkGrammatikker – to alternative formatLokalt tre tillatt av regel –eks 1Lokalt tre tillatt av regel –eks 2Sammenlikning av formatene