INF1820 V2013 Oppgave 3b CFGer og semantikk Innleveringsfrist, onsdag 1. mai Lever inn svarene dine i en fil som angir brukernavnet ditt, slik: oblig3a brukernavn.py En perfekt besvarelse på denne oppgaven er verdt 100 poeng. 1 En CFG for norsk (40 poeng) På norsk har vi samsvarsbøyning i kjønn, tall og bestemthet mellom bestemmer og substantiv og en liten rest av kasusbøyning i pronomenene. I denne oppgaven skal du skrive en liten kontekstfri grammatikk for norsk som tar høyde for kjønn i ubestemt form entall, og kasus. (a) Setninger grammatikken skal akseptere: 1. ei jente ser en gutt 2. en gutt ser ham 3. jeg ser henne 4. hun spiser et eple 5. hun ser ham 6. han ser det 7. de deler et eple 8. vi ser ei ku 9. ei ku ser oss 1
(b) Setninger grammatikken ikke skal akseptere: 1. *ei gutt ser ham 2. *ham ser henne 3. *en gutt ser han 4. *hun ser de 5. *en ku ser oss 6. *et ku ser dem Det viktige er altså å passe på at bestemmere bare går med subtantiver av samme kjønn 1 og at nominativformene av pronomenene er forbeholdt subjektsplass og akkusativsformene objektsplass. NLTK inneholder flere forskjellige parsere som tildeler syntaktisk struktur til en setning automatisk, i henhold til en grammatikk. I denne oppgaven bruker vi RecursiveDescent-parseren som er beskrevet i del 8.3 av NLTK-boka. Du formulerer grammatikken direkte som en streng slik: grammar = nltk.parse_cfg(u""" S -> NP VP NP -> Det N NP -> Pron VP -> V NP Det -> "en" "ei" "et" N -> "gutt" "jente" "ku" "eple" Pron -> "jeg" "du" "han" "hun" "den" "det" \ "meg" "deg" "ham" "henne" \ "vi" "dere" "dem" "oss" V -> "ser" "spiser" "deler" """) parser = nltk.recursivedescentparser(grammar) En regel A -> B C tilsvarer en regel A B C i foreleningene, det vil si at frasetypen A består av en frase av typen B først, etterfulgt av en frase av typen C. En regel N -> bil" betyr at kategorien N kan oppfylles av et ord bil i inputstrengen, slik som N bil i foilene, og er disjunksjon på samme måte som i regulære uttrykk. 1 I en større grammatikk ville vi (blant annet) også ha måttet ta høyde for tall og bestemthet, men det blir litt mye for denne obligen. 2
Du kan teste grammatikken din på en setning slik: sent = u"per så Kari".split() for tree in parser.nbest_parse(sent): print tree Dette vil skrive ut en analyse i klammenotasjon for hver analyse grammatikken tilordner setningen: (S (NP Per) (VP (V så) (NP Kari))) 2 Manuell annotering av ordbetydning (25 poeng) I denne oppgaven skal du manuelt annotere setningsbetydning og kommentere observasjonene dine. Skriv svarene som utkommentert tekst i Pythonfila du leverer som besvarelse. Setningene 1 10 under er hentet fra SemCor-korpuset, som er annotert med ordbetydning. Alle setningene inneholder verbet leave, som vi er interessert for i denne oppgaven. 1. But questions with which committee members taunted bankers appearing as witnesses left little doubt that they will recommend passage of it. 2. The departure of the Giants and the Dodgers to California left New York with only the Yankees. 3. After the coach listed all the boy s faults, Hartweger said, Coach before I leave here, you ll get to like me. 4. R. H. S. Crossman, M.P., writing in The Manchester Guardian, states that departures from West Berlin are now running at the rate not of 700, but of 1700 a week, and applications to leave have risen to 1900 a week. 5. The house has been swept so clean that contemporary man has been left with no means, or at best with wholly inadequate means, for dealing with his experience of spirit. 6. A second and also good practice is to shear off the tops, leaving an inch high stub with just a leaf or two on each branch. 3
7. No doubt some experiences vanish so completely as to leave no trace on the sleeper s mind. 8. He is a widower, his three children are dead, he has no one left on earth ; also he is a drunk, and has lost his job on that account 9. Piepsam tries to stop him by force, receives a push in the chest from Life, and is left standing in impotent and growing rage, while a crowd begins to gather. 10. The audience leaves the play under a spell, It is the kind of spell which the exposure to spirit in its living active manifestation always evokes. Slå opp leave i WordNet 2, og bruk betydningene under verbet og se bort fra substantivbetydningene. For hver setning velger du én betydning ( sense ) for verbet i setningen, og noterer valget ditt. I webgrensesnittet kan du klikke på Display Options og velge Show Sense Numbers for å få en nummerert oversikt over de forskjellige betydningene. Bruk disse nummerene i besvarelsen din. I tillegg, vurder følgende aspekter ved arbeidet: Hvilke setninger var vanskelige å annotere? Hvorfor? Hvilke par eller grupperinger av betydninger var vanskelige å skille fra hverandre? Hvilke kriterier brukte du for å skille dem? 3 Betydningsklassifikasjon med Naive Bayes (35 poeng) Fila wsd tren.txt inneholder (fiktive) treningsdata annotert med ordbetydning for lemmaet skim. Hver linje inneholder en liste med trekk og en kategori, skilt av mellomrom. Første element i hver linje er betydningen, resten er trekk. Første linje er: Reading book day novel Dette vil si at betydningen for dette eksempelet er reading og inneholder trekkene book, day, og novel. 2 Bruk web-grensesnittet http://wordnetweb.princeton.edu/perl/webwn 4
Ved hjelp av treningsdataene i wsd tren.txt lager du sannsynlighetsdistribusjoner med Python slik som vi gjorde for HMM-sannsynlighetene i forrige oblig, men denne gangen for de to distribusjonene vi bruker i Naive Bayes: P (S), distribusjonen over betydninger, og P (F S), distribusjonen av trekk gitt betydning. Ved hjelp av disse distribusjonene svarer du på følgende spørsmål: Hva er P (removing), sannsynligheten til betydningen removing? Ett av trekkene i fila er day. Hva er sannsynligheten for dette trekket gitt betydningen reading: P (day reading)? Fila wsd test.txt inneholder et testeksempel på samme format som treningsdataene, men uten betydning:? paper surface towards Bruk Naive Bayes-formelen og Python til å beregne den mest sannsynlige betydningen for dette eksempelet. Husk at i Naive Bayes er den mest sannsynlige betydningen ŝ gitt ved: ŝ = argmax s S P (s) n P (f i s) Du kan lese mer om Naive Bayes for WSD i Jurafsky & Martin, 20.2. i=1 5