40
INF2820 Datalingvistikk – V2015 9. Gang – 16.3 Jan Tore Lønning

INF2820 Datalingvistikk – V2015...INF2820 Datalingvistikk – V2015 9. Gang – 16.3 Jan Tore Lønning I dag Med anbefalt lesing – og rekkefølge • Grammatiske trekk («features»)

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

  • 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