INF2820-V2018 Oppgavesett 10 Gruppe 18.4

Like dokumenter
INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 4.5 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 19.3 del 1 Jan Tore Lønning

INF2820 Datalingvistikk V gang, Jan Tore Lønning

3/5/2012. Chart alternativ datastruktur. Fundamentalregelen. Chart-parsing. Bottom-up FORMELL SPRÅKTEORI. Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

Oppgave 2. Eksamen INF2820, 2015, oppgave 2. La gramatikk G være:

INF 2820 V2015: Obligatorisk innleveringsoppgave 3

INF 2820 V2016: Obligatorisk innleveringsoppgave 3

INF2820 Datalingvistikk V Gang 6.3 Jan Tore Lønning

3/8/2011. I dag. Dynamic Programming. Example. Example FORMELLE EGENSKAPER VED SPRÅK (KAP. 16) Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

INF5830, H2009, Obigatorisk innlevering 2. 1 Oppgave: Unære produksjoner i CKY

INF2820 Datalingvistikk V2012. Jan Tore Lønning

2/24/2012. Dynamic Programming. I dag. Example. Example PARSING. Jan Tore Lønning

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF 2820 V2016: Innleveringsoppgave 3 del 1

3/1/2011. I dag. Recursive descent parser. Problem for RD-parser: Top Down Space. Jan Tore Lønning & Stephan Oepen

Oppgave 1. La G1 være grammatikken med hovedsymbol S og følgende regler:

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF 2820 V2016: Innleveringsoppgave 3 hele

INF 2820 V2018: Innleveringsoppgave 3

INF2820 V2017 Oppgavesett 5 arbeidsoppgaver

Spørsmål 1.1 (10%) Lag en ikke-deterministisk endelig tilstandsautomat (NFA) som beskriver dette språket.

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 26.2 Jan Tore Lønning

INF2820 V2017 Oppgavesett 5 Gruppe 21.2

UNIVERSITETET I OSLO

INF2820 Datalingvistikk V Gang 27.2 Jan Tore Lønning

2/22/2011. Høyre- og venstreavledninger. I dag. Chomsky-normalform (CNF) Chomsky-normalform (CNF) PARSING. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V gang, 27.2 Jan Tore Lønning

INF2820 Datalingvistikk V2011. Jan Tore Lønning & Stephan Oepen

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

Oppgave 1 (samlet 40%)

2/24/2012. Context-Free Grammars. I dag. Avledning. Eksempel: grammar1 PARSING. Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V2012

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V Gang 16.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

UNIVERSITETET I OSLO

INF 2820 V2018: Innleveringsoppgave 2

INF2820 Datalingvistikk V Gang 6.4 Jan Tore Lønning

UNIVERSITETET I OSLO

INF 2820 V2016: Obligatorisk innleverinsoppgave 2

INF2820 Datalingvistikk V Gang 23.3 Jan Tore Lønning

Oppgave 1 Vi har gitt følgende grammatikk for noe vi kan kalle speilengelsk :

Oppgave 1. Spørsmål 1.1 (10%) Gitt det regulære uttrykket: a((bcd)+(cd))*cd

Oppgave 1 (samlet 15%)

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 V2017 Oppgavesett 6 Gruppe 7.3

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V Gang 13.4 Jan Tore Lønning

Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed).

Obligatorisk oppgave 4, INF2820, 2014

INF2820 Datalingvistikk V Gang 6.4 Jan Tore Lønning

INF 2820 V2016: Obligatorisk innleverinsoppgave 1

Kap. 5, del 1: Parsering nedenfra-opp (Bottom up parsing) INF5110. Stein Krogdahl Ifi, UiO

INF 2820 V2018: Innleveringsoppgave 1

2/20/2012. I dag. Parsing. Recursive descent parser SÆRLIG TABELLPARSING. Venstre- og høyreavledning. Jan Tore Lønning

Oppgave 1 (samlet 15%)

Eksamen INF2820 Datalingvistikk, H2018, Løsningsforslag

Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF / Stein Krogdahl Ifi, UiO

Syntax/semantics - I INF 3110/ /29/2005 1

Syntaksanalyse. Skanner (repetisjon) Parsering top-down bottom-up LL(1)-parsering Recursive descent Forutsetninger. IN 211 Programmeringsspråk

Bottom up parsering (nedenfra-og-opp) Kap. 5 del 1 Intro til parsering nedenfra-og-opp samt LR(0) og SLR(1) grammatikker INF5110 v2006

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang 13.4 Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

Kap. 5, Del 3: INF5110, fra 1/3-2011

INF5110 Kap. 5: Parsering nedenfra-og-opp (Bottom-up parsing) 21/ Stein Krogdahl Ifi, UiO. Angående Oblig 1:

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V Gang 20.3 Jan Tore Lønning

Oppgaver uke 1: Løsningsforslag

Notat for oblig 2, INF3/4130 h07

Hjemmeeksamen 2 i INF3110/4110

INF2820 Datalingvistikk V Gang 16.3 Jan Tore Lønning

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker

INF2820 Datalingvistikk V Gang 30.3 Jan Tore Lønning

Repetisjon. 1 binærtall. INF3110 Programmeringsspråk. Sist så vi ulike notasjoner for syntaks: Jernbanediagrammer. BNF-grammatikker.

INF2820 Datalingvistikk V Gang 20.3 Jan Tore Lønning

INF3110 Programmeringsspråk

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Språktyper og syntaksanalyseteknikker. Dagens temaer. Hvordan lage en deterministisk automat? Fra jernbanediagram til ID-automat

Kap.4 del 2 Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO

INF INF1820. Arne Skjærholt INF1820. Dagens språk: Russisk. dyes yataya l yektsiya. Arne Skjærholt. десятая лекция

Spørsmål og svar rundt oblig 1 og verktøy

MAT-INF 1100: Obligatorisk oppgave 1

Sigrunn Askland (UiA)

Norsyg en syntaksbasert dyp parser for norsk

Slides til 12.1 Formelt språk og formell grammatikk

Transkript:

INF2820-V2018 Oppgavesett 10 Gruppe 18.4 Chart-parsing med papir og penn Denne oppgaven tjener flere formål: Få bedre grep på chart-parsing See hvordan en chart-parser behandler venstrerekursjon Praktisk trening med eksamensliknende spørsmål Vi har tidligere sett at en RD-parser har problemer med venstrerekursjon. Vi skal her se at en chartparser ikke har samme type problemer selv om den innfører aktive kanter top-down. Vi vil ta som eksempel norske adverb. Det er ikke så lett å beskrive nøyaktig med en CFG hvor ulike typer adverb kan, og ikke kan, forekomme. Se derfor på denne grammatikken som en forenklet, grov tilnærming. La G være grammatikken 1. S NP VP 2. NP NOM 3. VP IV 4. IV IV ADV 5. NOM N 6. N studenten læreren 7. DET den denne 8. IV smilte lo sov 9. ADV ikke ofte raskt lenge sjelden Oppgave 1 Se på setningen, sent 1: Studenten smilte ikke ofte lenge Parse setningen for hånd som med en chart-parser. Bruk en TD-strategi for innføring av aktive (inkomplette) kanter. Løsningen skal bestå av 1. Et fullstendig chart 2. Agendaen (Du vil jo ikke kunne fjerne kanter fysisk fra denne når du gjør oppgaven med penn og papir, men du kan markere kantene når de fjernes.) 3. Hver kant skal utstyres med unikt nummer. Dette skal være det samme i chart og i agenda for å markere samme kant. Nummeret skal markere rekkefølgen kantene flyttes fra agenda til chart. Kantene i agenda skal ha en liten forklaring på hvor de kommer fra, for eksempel 1

10. (NP. NOM, [0,0]) ), TD fra 3 og R2 47. (S NP. VP, [0,1]) ), FR fra 9 og 15 Den første sier at kanten ble konstruert med top-down regelen for å introdusere aktive kanter, fra kant 3 og regel 2. Den andre sier at kanten ble konstruert ved fundamentalregelen fra kantene 9 og 15 Agenda An edge is represented like <edge> = (<dotted item>,<span>) <dotted item> = (<lhs>,<rhs found>,<rhs to find>) <span> = (<begin>,<end>) Examples (S ->. NP VP, [0,0]) as ((S,[],[NP, VP]),(0,0)) (S -> NP. VP, [0,3]) as ((S,[NP],[VP]),(0,3)) (S -> NP VP., [0,5]) as ((S,[NP, VP],[]),(0,5)) 1 : ((S, [], [NP, VP]), (0, 0)) initialisering 2 : ((N, ['studenten'], []), (0, 1)) innlesning setning, oppslag i leksikon 3 : ((IV, ['smilte'], []), (1, 2)) 4 : ((ADV, ['ikke'], []), (2, 3)) 5 : ((ADV, ['ofte'], []), (3, 4)) 6 : ((ADV, ['lenge'], []), (4, 5)) d.s. 7 : ((NP, [], [NOM]), (0, 0)) TD: 3 + R2 8 : ((NOM, [], [N]), (0, 0)) TD: 7 + R5 9 : ((NOM, [N], []), (0, 1)) FR: 8 + 2 10 : ((NP, [NOM], []), (0, 1)) FR: 7 + 9 11 : ((S, [NP], [VP]), (0, 1)) FR: 1 + 10 12 : ((VP, [], [IV]), (1, 1)) TD: 11 + R3 13 : ((VP, [IV], []), (1, 2)) FR: 12 + 3 14 : ((IV, [], [IV, ADV]), (1, 1)) TD: 12 + R4 15 : ((S, [NP, VP], []), (0, 2)) FR: 13 + 11 16 : ((IV, [IV], [ADV]), (1, 2)) FR: 14 + 3 17 : ((IV, [IV, ADV], []), (1, 3)) FR: 16 + 4 18 : ((VP, [IV], []), (1, 3)) FR: 17 + 12 19 : ((IV, [IV], [ADV]), (1, 3)) FR: 17 + 14 20 : ((S, [NP, VP], []), (0, 3)) FR: 18 + 11 21 : ((IV, [IV, ADV], []), (1, 4)) FR: 19 + 17 22 : ((VP, [IV], []), (1, 4)) FR: 21 + 12 23 : ((IV, [IV], [ADV]), (1, 4)) FR: 21+ 5 2

24 : ((S, [NP, VP], []), (0, 4)) FR: 22 + 11 25 : ((IV, [IV, ADV], []), (1, 5)) FR: 23 + 6 26 : ((VP, [IV], []), (1, 5)) FR: 24 + 12 27 : ((IV, [IV], [ADV]), (1, 5)) FR: 24 + 14 28 : ((S, [NP, VP], []), (0, 5)) FR: 26 + 11 Oppgave 2 Et vellykket parse vil bruke den venstrerekursive regelen 4. IV IV ADV flere ganger. Hvorfor blir ikke dette et problem? Fordi kanten 14 : ((IV, [], [IV, ADV]), (1, 1)) bare trenger å predikeres én gang. Den samme aktive kanten kan så kombineres både med kant 3, kant 17 og kant 24. NLTKs chart-parser Oppgave 3 Vi har ved flere anledninger brukt nltk.chartparser() for å teste grammatikkene våre. Men vi har ikke brydd oss om hvordan algoritmen og programmet virker. Programmet gir oss mulighet til å se litt mer ved å bruke trace. Parameterne settes litt annerledes enn slik det står i boka. Vi må velge"trace"- nivå allerede når vi konstruerer parseren fra grammatikken. Vi lager først tre ulike varaianter av parseren for grammatikk grammatikk10.cfg som du finner i /projects/nlp/inf2820/cfg. (Husk at grammatikken leses inn ved g10 = nltk.data.load( )) >>> cp = nltk.chartparser(g10) >>> cp1 = nltk.chartparser(g10, trace = 1) >>> cp2 = nltk.chartparser(g10, trace = 2) Prøv nå >>> for t in cp.parse(sent1): t.pretty_print() Og tilsvarende med cp1 og cp2. Se på utskriftene : 1. Se at du skjønner utskriftene 2. Se hvordan de prøver å tegne et chart 3. Sammenlikn med din egen parsing med papir og penn 4. Hvilken regelpåkallingsstrategi er det som brukes? Oppgave 4 NLTK lar oss manipulere regelpåkallingsstrategien. Konstruer parserne >>> cp_td = nltk.chartparser(g10, nltk.chart.td_strategy, trace = 1) >>> cp_bubu = nltk.chartparser(g10, nltk.chart.bu_strategy, trace = 1) 3

Bruk også disse på setning 1. Sammenlikn resultatet med oppgave 3 og din egen løsning fra oppgave 1. Hvilken strategi ser ut til å være default for NLTK? 4