2 Du kan svare på norsk, dansk, svensk eller engelsk. Du skal besvare alle spørsmålene. Vekten på de ulike spørsmålene er oppgitt. Du bør lese gjennom hele settet slik at du kan stille spørsmål til faglærerne når de kommer i tilfelle noe er uklart. Hvis du føler noen forutsetninger mangler, lag dine egne og redegjør for dem! Oppgave 1 (samlet 40%) La grammatikk G1 være: VP -> VS CP CP -> C S NP -> DET N NP -> NP PP VP -> VP PP PP -> P NP NP -> 'dyret' 'treet' 'Kari' 'Ola' N -> 'dyr' 'tre' DET -> 'et' 'ethvert' VP -> 'sov' 'smilte' 'danset' VTV -> 'kjente' 'likte' 'dyttet' VS -> 'trodde' 'så' 'fortalte' C -> 'at' P -> 'fra' 'til' 'ved' Spørsmål 1.1 (10%) Tegn opp de 3 trærne som grammatikken tilordner til ordsekvensen 1) Kari så at Ola dyttet et dyr fra treet
3 Tre A: Tre B: Tre C:
4 Spørsmål 1.2 (5%) Forklar kort forskjellene i mening som svarer til de 3 forskjellige syntaktiske analysene. A) Seingen skjer fra treet, dvs. Kari sitter i treet og ser det som skjer. Dyttingen, Ola og dyret behøver ikke være i treet. B) Dyttingen skjer fra treet, dvs. dyret blir dyttet fra treet. Kari kan stå hvor som helst og se dette. C) Dyret fra treet er en måte å beskrive et bestemt dyr (til forskjell fra f.eks. dyret fra hulen ). Dette dyret blir dyttet. Hverken dytting eller seing behøver å skje noe bestemt sted. Spørsmål 1.3 (10%) Vis hvordan en «shift-reduce recognizer» kan gå frem for å finne en av de 3 analysene. Du behøver bare å finne en av analysene, ikke alle tre, og du behøver bare å vise de vellykkete valgene. <> Kari saa at Ola dyttet et dyr fra treet NP <> saa at Ola dyttet et dyr fra treet NP VS <> at Ola dyttet et dyr fra treet NP VS C <> Ola dyttet et dyr fra treet NP VS C NP <> dyttet et dyr fra treet NP VS C NP VTV <> et dyr fra treet NP VS C NP VTV DET <> dyr fra treet NP VS C NP VTV DET N <> fra treet NP VS C NP VTV NP <> fra treet NP VS C NP VP <> fra treet NP VS C S <> fra treet NP VS CP <> fra treet NP VP <> fra treet NP VP P <> treet NP VP P NP <> # NP VP PP <> # NP VP <> # S <> # (Også andre mulige løsninger. Greit her å bruke algoritmen som vist, som alltid reduser enkeltord etter skifting, men fint med en begrunnelse for dette. Også riktig om en bruker den generelle algoritmen.)
5 Spørsmål 1.4 (5%) Hvorfor tror du vi bruker en «shift-reduce recognizer» og ikke en «recursive descent recognizer» her? Grammatikken inneholder venstrerekursive regler NP -> NP PP VP -> VP PP En RD-algoritme vil kunne lede til en bunnløs rekursjon der vi predikerer flere og flere PP-er uten å teste mot input: NP NP PP NP PP PP NP PP PP Spørsmål 1.5 (10%) Vis hvordan CKY-algoritmen kan brukes til å anerkjenne at ordsekvensen i (1) er en setning ved å konstruere en CKY-tabell for den. Nummerer symbolene i den rekkefølgen du legger dem inn i tabellen. (0) Kari (1) saa (2) at (3) Ola (4) dyttet (5) et (6) dyr (7) fra (8) treet (9) 0) 1)NP 13)S 22)S 1) 2)VS 12)VP 21)VP 2) 3)C 11)CP 20)CP 3) 4)NP 10)S 19)S 4) 5)VTV 9)VP 18)VP 5) 6)DET 8)NP 17)NP 6) 7)N 7) 14)P 16)PP 8) 15)NP
6 Oppgave 2 (20%) I norsk kan vi etter kopulaverb, som være og bli, ha et substantiv i ubestemt form uten noen determinativ foran, som for eksempel student i setning (2). 2) Kari er student Grammatikken G2 genererer denne setningen og noen til: VP -> VI VP -> VCOP NOM NP -> PN NP -> DET NOM NOM -> N N -> 'elev' 'student' 'professor' PN -> 'Kari' 'Ola' DET -> 'en' 'enhver' VI -> 'sover' 'smiler' VTV -> 'kjenner' 'liker' VCOP -> 'er' 'blir' Du skal nå utstyre grammatikken med trekk (eng: features ) og utvide den. Du skal utvide klassen av NP til også å inneholde substantiv i ubestemt og bestemt form i entall og flertall med determinativer, som i Ubestemt Bestemt Entall En student Studenten Den studenten Flertall Studenter Mange studenter Noen studenter De studentene Disse studentene Du skal passe på at det blir riktig samsvar mellom determinativ og substantiv, og ikke f.eks. *en studenten, *mange student, *mange studentene, *de studenten. Du skal også passe på at det blir riktig samsvar i kopulakonstruksjonen. Riktig er f.eks. Kari er student Mange elever blir studenter Feil er f.eks. Kari er elever Mange elever blir student Mange elever blir studentene
7 S -> NP[NUM=?n] VP[NUM=?n] VP -> VI VP[NUM=?n] -> VCOP NOM[NUM=?n, -DEF] NP[DEF=?d, NUM=?n] -> DET[DEF=?d, NUM=?n] NOM[DEF=?d, NUM=?n] NP[+DEF, NUM=sg] -> PN NOM[DEF=?d, NUM=?n] -> N[DEF=?d, NUM=?n] N[-DEF, NUM=sg] -> 'elev' 'student' 'professor' N[-DEF, NUM=pl] -> 'elever' 'studenter' 'professorer' N[+DEF, NUM=sg] -> 'eleven' 'studenten' 'professoren' N[+DEF, NUM=pl] -> 'elevene' 'studentene' 'professorene' DET[-DEF, NUM=sg] -> 'en' 'enhver' DET[+DEF, NUM=sg] -> 'den' 'denne' DET[-DEF, NUM=pl] -> 'mange' 'noen' DET[+DEF, NUM=pl] -> 'disse' 'de' VI -> 'sover' 'smiler' VTV -> 'kjenner' 'liker' VCOP -> 'er' 'blir' Oppgave 3 (samlet 20%) Følgende lille fcfg-fragment, no-sem, inneholder regler for noen få norske setninger og tilordner dem semantiske representasjoner. % start S S[SEM=<?npsem(?vpsem)>] -> NP[SEM=?npsem] VP[SEM=?vpsem] NP[SEM=<\X.X(?npsem)>] -> PN[SEM=?npsem] NP[SEM=<?dsem(?nsem)>] -> Det[SEM=?dsem] Nom[SEM=?nsem ] VP[SEM=?vpsem] -> IV[SEM=?vpsem] VP[SEM=<\s.?npsem(\o.?tvsem(s,o))>] -> TV[SEM=?tvsem] NP[SEM=?npsem] Nom[SEM=?nsem] -> N[SEM=?nsem] PN[SEM=<ola>] -> 'Ola' PN[SEM=<kari>] -> 'Kari' IV[SEM=<sov>] -> 'sov' IV[SEM=<smilte>] -> 'smilte' TV[SEM=<likte>] -> 'likte' TV[SEM=<beundret>] -> 'beundret' Det[SEM=<\P Q.exists x.(p(x) & Q(x))>] -> 'et' Det[SEM=<\P Q.all x.(p(x) -> Q(x))>] -> 'ethvert' N[SEM=<hus>] -> 'hus' N[SEM=<barn>] -> 'barn' N[SEM=<dyr>] -> 'dyr'
8 Spørsmål 3.1 (10%) Vis hvordan setningen 3) Kari beundret et dyr vil bli analysert i denne grammatikken, og følgelig hvilken semantisk representasjon den får. Se neste side Spørsmål 3.2 (10%) Grammatikken skal utvides med PP-ledd som modifiserer Nom-ledd. For å få dette legger vi til reglene Nom[ ] -> Nom[ ] PP[ ] PP[ ] -> P[ ] NP[ ] P[ ] -> 'fra' Fyll ut -feltene med semantiske trekk slik at setning (4) får den semantiske representasjonen (5). 1) Kari beundret ethvert dyr fra et hus 2) all x.((dyr(x) & exists z.(hus(z) & fra(x,z))) -> beundret(kari,x)) Nom[SEM=<\x.(?nom(x) &?pp(x))>] -> Nom[SEM=?nom] PP[SEM=?pp] PP[SEM=<\s.?npsem(\o.?psem(s,o))>] -> P[SEM=?psem] NP[SEM=?npsem] P[SEM=<fra>] -> 'fra'
9
10 Oppgave 4 (samlet 20%) La grammatikk G4 være VP -> VI VP -> VS 'at' S NP -> DET NOM NOM -> N NOM -> NOM REL REL -> 'som' S/NP S/NP -> NP/NP VP S/NP -> NP VP/NP VP/NP -> VTV NP/NP VP/NP -> VS 'at' S/NP NP/NP -> NP -> 'dyret' 'barnet' 'Kari' 'Ola' N -> 'dyr' 'barn' DET -> 'et' 'ethvert' VI -> 'sov' 'smilte' 'danset' VTV -> 'kjente' 'likte' 'klappet' VS -> 'trodde' 'visste' 'fortalte' Her er et symbol som S/NP å oppfatte som en enkel ikke-terminal (eller mao. et enkelt kategorisymbol). Skrivemåten er valgt for lettere å se hva symbolene står for. S/NP kan oppfattes som en «S som mangler en NP». Tilsvarende er NP/NP en «NP som mangler en NP». Derfor kan den være tom. Spørsmål 4.1 (5%) Tegn opp treet grammatikken tilordner til ordsekvens (6). 3) Kari klappet et dyr som Ola fortalte at barnet likte
11 Spørsmål 4.2 (15%) Vi ønsker å bruke denne grammatikken sammen med CKY-algoritmen. Men skal vi gjøre det, må grammatikken være på Chomsky-normalform (CNF). Finn en grammatikk på CNF for språket beskrevet av G4. Viss trinnene i omformingen. (Det holder på hvert trinn å si hvilke regler som blir strøket og hvilke som blir lagt til) Trinn 1: Fjerner tomme produksjoner, som gir VP -> VI VP -> VS 'at' S NP -> DET NOM NOM -> N NOM -> NOM REL REL -> 'som' S/NP S/NP -> NP/NP VP S/NP -> VP S/NP -> NP VP/NP VP/NP -> VTV NP/NP
12 VP/NP -> VTV VP/NP -> VS 'at' S/NP NP -> 'dyret' 'barnet' 'Kari' 'Ola' N -> 'dyr' 'barn' DET -> 'et' 'ethvert' VI -> 'sov' 'smilte' 'danset' VTV -> 'kjente' 'likte' 'klappet' VS -> 'trodde' 'visste' 'fortalte' Trinn 2: Fjerner unære produksjoner med ikke-terminal på høyre side som gir: VP -> VS 'at' S NP -> DET NOM NOM -> NOM REL REL -> 'som' S/NP S/NP -> NP/NP VP S/NP -> VTV NP S/NP -> VS 'at' S S/NP -> NP VP/NP VP/NP -> VTV NP/NP VP/NP -> VS 'at' S/NP NP -> 'dyret' 'barnet' 'Kari' 'Ola' N -> 'dyr' 'barn' NOM -> 'dyr' 'barn' DET -> 'et' 'ethvert' VI -> 'sov' 'smilte' 'danset' VP -> 'sov' 'smilte' 'danset' S/NP -> 'sov' 'smilte' 'danset' VTV -> 'kjente' 'likte' 'klappet' VP/NP -> 'kjente' 'likte' 'klappet' VS -> 'trodde' 'visste' 'fortalte' Trinn 3: Setter inn ikketerminaler for terminaler som står på høyresider med mer enn ett symbol
13 VP -> VS A S NP -> DET NOM NOM -> NOM REL REL -> R S/NP S/NP -> NP/NP VP S/NP -> VTV NP S/NP -> VS A S S/NP -> NP VP/NP VP/NP -> VTV NP/NP VP/NP -> VS A S/NP NP -> 'dyret' 'barnet' 'Kari' 'Ola' N -> 'dyr' 'barn' NOM -> 'dyr' 'barn' DET -> 'et' 'ethvert' VI -> 'sov' 'smilte' 'danset' VP -> 'sov' 'smilte' 'danset' S/NP -> 'sov' 'smilte' 'danset' VTV -> 'kjente' 'likte' 'klappet' VP/NP -> 'kjente' 'likte' 'klappet' VS -> 'trodde' 'visste' 'fortalte' R -> 'som' A -> 'at' Trinn 4: Omfomer slik at alle høyresider med ikketerminaler inneholder nøyaktig 2 VP -> VS X1 X1 -> A S NP -> DET NOM NOM -> NOM REL REL -> R S/NP S/NP -> NP/NP VP S/NP -> VTV NP S/NP -> VS Y1 Y1 -> A S S/NP -> NP VP/NP
14 VP/NP -> VTV NP/NP VP/NP -> VS Z1 Z1 -> A S/NP NP -> 'dyret' 'barnet' 'Kari' 'Ola' N -> 'dyr' 'barn' NOM -> 'dyr' 'barn' DET -> 'et' 'ethvert' VI -> 'sov' 'smilte' 'danset' VP -> 'sov' 'smilte' 'danset' S/NP -> 'sov' 'smilte' 'danset' VTV -> 'kjente' 'likte' 'klappet' VP/NP -> 'kjente' 'likte' 'klappet' VS -> 'trodde' 'visste' 'fortalte' R -> 'som' A -> 'at' SLUTT