INF2820 Datalingvistikk V2012. Jan Tore Lønning

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

INF2820 Datalingvistikk V gang, 27.2 Jan Tore Lønning

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

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

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

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V Gang 4.5 Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V Gang 6.3 Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 26.2 Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 27.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 2.3 Jan Tore Lønning

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

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

INF2820 Datalingvistikk V2012. Jan Tore Lønning

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

INF2820 Datalingvistikk V2012

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

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

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang 13.3 Jan Tore Lønning

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820-V2018 Oppgavesett 10 Gruppe 18.4

INF 2820 V2015: Obligatorisk innleveringsoppgave 3

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF 2820 V2016: Obligatorisk innleveringsoppgave 3

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

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

INF2820 Datalingvistikk V Gang Jan Tore Lønning

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

INF2820 Datalingvistikk V Gang 16.3 Jan Tore Lønning

INF2820 Datalingvistikk V2012. Jan Tore Lønning

Eksamen INF2820 Datalingvistikk, H2018, Løsningsforslag

2/6/2012. Begrensninger ved regulære språk. INF2820 Datalingvistikk V2012. Formelle språk som ikke er regulære KONTEKSTFRIE GRAMMATIKKER.

UNIVERSITETET I OSLO

INF2820 Datalingvistikk V2012. Jan Tore Lønning

Oppgave 1 (samlet 40%)

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

INF2820 Datalingvistikk V2014. Jan Tore Lønning

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

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).

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

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

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

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

INF2820 Datalingvistikk V Gang 6.4 Jan Tore Lønning

INF2820 Datalingvistikk V2014. Forelesning 4, 6.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 23.3 Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Jan Tore Lønning

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

INF2820 Datalingvistikk V2015. Forelesning 4, 9.2 Jan Tore Lønning

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

INF2820 Datalingvistikk V Gang 30.3 Jan Tore Lønning

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

Kap. 4 del I Top Down Parsering INF5110 v2006. Stein Krogdahl Ifi, UiO

INF5110 V2012 Kapittel 4: Parsering ovenfra-ned

INF 2820 V2016: Innleveringsoppgave 3 hele

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 V2017 Oppgavesett 5 Gruppe 21.2

INF2820 Datalingvistikk V2016. Forelesning 4, 10.2 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 13.4 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 6.4 Jan Tore Lønning

INF2820 Datalingvistikk V Gang 5.3 Jan Tore Lønning

INF2820 Datalingvistikk V2015. Jan Tore Lønning

Oppgave 2. INF5110 oppgave 2 på eksamen v04 med teori. FirstMengder. Arne Maus Ifi. Eks. 4.9 Beregning av First-mengde. terminal

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

INF2820 Datalingvistikk V2017 Forelesning 1.2 Jan Tore Lønning

INF2820 V2017 Oppgavesett 5 arbeidsoppgaver

INF / Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

1/31/2011 SAMMENHENGER FSA OG REGULÆRE UTTRYKK. Regulære språk. Fra FSA til RE. Fra regulært uttrykk til NFA REGULÆRE UTTRYKK I DATALINGVISTIKK DEL 2

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

Oppgave 1 (samlet 15%)

INF2820 Datalingvistikk V2014. Jan Tore Lønning

INF2820 Datalingvistikk V2016. Forelesning 4, 10.2 Jan Tore Lønning

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

Kap. 5 del 2: LR(1)- og LALR(1)-grammatikker INF5110 V2005. Stein Krogdahl, Ifi, UiO

INF2820 Datalingvistikk V2017 Forelesning 2, 23.1 Jan Tore Lønning

Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF5110 V2009

INF 2820 V2018: Innleveringsoppgave 3

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

INF /2, 2015 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

INF2820 Datalingvistikk V Gang 16.3 Jan Tore Lønning

Transkript:

INF2820 Datalingvistikk V2012 Jan Tore Lønning

TABELLPARSING OG CHART- PARSING 24. februar 2012 2

I dag Mellomspill: Chomsky Normal Form Tabellparsing: CKY-algoritmen Innlede Chart-Parsing 24. februar 2012 3

Dynamic Programming DP search methods fill tables with partial results and thereby Avoid doing avoidable repeated work Solve exponential problems in polynomial time (well, no not really) Efficiently store ambiguous structures with shared sub-parts. Vi skal se på: CKY Chartparsing (Earleys algoritme svarer til en variant av chartparsing) 2/24/2012 Speech and Language Processing - Jurafsky and Martin 4

Example 2/24/2012 Speech and Language Processing - Jurafsky and Martin 5

Example 2/24/2012 Speech and Language Processing - Jurafsky and Martin 6

Example Filling column 5 2/24/2012 Speech and Language Processing - Jurafsky and Martin 7

Example 2/24/2012 Speech and Language Processing - Jurafsky and Martin 8

Example 2/24/2012 Speech and Language Processing - Jurafsky and Martin 9

Example 2/24/2012 Speech and Language Processing - Jurafsky and Martin 10

Example 2/24/2012 Speech and Language Processing - Jurafsky and Martin 11

Chomsky-normalform (CNF) En grammatikk er på Chomsky-normalform hvis alle reglene er på en av følgende former: A B C A t (t en terminal) Enhver CFG G hvor ε L(G), er svakt ekvivalent til en G på CNF. Altså L(G) = L(G ) 24. februar 2012 12

Chomsky-normalform (CNF) Enhver CFG G hvor ε L(G) er svakt ekvivalent til en G på CNF Bevisskisse: 1. Erstatt alle regler på formen A ε 2. Erstatt alle regler på formen A B for B en ikke-terminal 3. For hver regel A β, der β > 1 og β inneholder en eller flere terminaler t1,, tn: 1. Innfør nye ikke-terminaler T1,, Tn. 2. Erstatt ti med Ti 3. Innfør reglene Ti ti for i = 1,, n 4. For hver regel A B1 B2 Bn, n > 2, : 1. Innfør nye ikke-terminaler C1,, Cn-1 og regler 2. A B1 C1 3. Ci Bi+1 Ci+1 for i = 1,, n-1 24. februar 2012 13

To trinn til: 2. Erstatt alle regler på formen A B for B en ikke-terminal: For enhver ikke-terminal B og For enhver A s.a. A B eller A + B og For enhver β s.a. B β: Innfør A β, hvis den ikke alt finnes Fjern alle unære regler med ikke-terminal h.s. 1. Erstatt alle regler på formen A ε: Identifiser alle ikke-terminaler A, s.a. A + ε For hver regel B β: Legg til alle regler på formen B β der β fremkommer ved å stryke en eller flere ikke-terminaler som avleder ε, fra β. Stryk alle regler på formen A ε 24. februar 2012 14

Eksempel S NP VP NP PN NP Det As N As ε As A As VP løp smilte PN Kari Ola N gutt jente mor far A snill gammel trøtt 24. februar 2012 15

Sample L1 Grammar 2/24/2012 Speech and Language Processing - Jurafsky and Martin 16

CNF Conversion 2/24/2012 Speech and Language Processing - Jurafsky and Martin 17

CKY Algorithm 2/24/2012 Speech and Language Processing - Jurafsky and Martin 18

CKY def cky(words, cfg): tabl = [[[] for i in range(len(words)+1) ] for j in range(len(words))] for i in range(len(words)): tabl[i][i+1] = [p.lhs() for p in cfg.productions() if p.is_lexical() and p.rhs()[0] == words[i]] for j in range(i-1,-1,-1): for k in range(j+1, i+1, 1): for p in grammar.productions(): if (p.rhs()[0] in tabl[j][k] and p.rhs()[1] in tabl[k][i+1]): if not p.lhs() in tabl[j][i+1]: tabl[j][i+1].append(p.lhs()) return tabl 19

Display def cellstring(cell): return (',').join(nt.symbol() for nt in cell) def display(tabl, words): n = len(words) cellstrings = [cellstring(tabl[i][j]) for i in range(n) for j in range(n+1)] space = max([len(cell) for cell in cellstrings + words])+2 for i in range(n): print words[i].ljust(space), print(' ') for start in range(n): for count in range(start): print " ".ljust(space), for end in range(start+1, n+1): cell = tabl[start][end] print ("["+cellstring(cell)+"]").ljust(space), print(' ') 20

I dag Oppsummering fra sist: Recursive-descent og Shift-reduce parser Svakheter med disse Tabellparsing: Dynamisk programmering CKY-algoritmen Chartparsing: Dotted items Fundamentalregel Bottom-up strategi Neste gang: alternative strategier 24. februar 2012 21

Chart alternativ datastruktur (S, [0, 1]) (VP, [0,1]) (Det, [1,2]) (Nom, [2,3]) (N, [2,3]) (NP, [1, 3]) (S, [0,5]) S, VP, X2 NP S, VP, X2 Nom NP PP S, VP, V, Nom, N Det Nom, N P NP, PN 0 book 1 the 2 flight 3 through 4 Houston 5 24. februar 2012 22

Chart alternativ datastruktur (S, [0, 1]) (VP, [0,1]) (Det, [1,2]) (Nom, [2,3]) (N, [2,3]) (NP, [1, 3]) (S, [0,5]) S, VP, X2 NP S, VP, X2 Nom NP PP S, VP, V, Nom, N Det Nom, N P NP, PN 0 book 1 the 2 flight 3 through 4 Houston 5 24. februar 2012 23

Begrensninger i CKY 1. Grammatikken må være på CNF 2. Det foreslås strukturer som holder lokalt, men ikke globalt: Løsninger baserer seg på å kombinere TD og BU Hjelp for begge problemene å innføre dotted items 24. februar 2012 24

States The table-entries are called states and are represented with dotted-rules. S VP NP Det Nominal VP V NP - A VP is predicted - An NP is in progress - A VP has been found 2/24/2012 Speech and Language Processing - Jurafsky and Martin 25

States/Locations S VP [0,0] A VP is predicted at the start of the sentence NP Det Nominal [1,2] VP V NP [0,3]. An NP is in progress; the Det goes from 1 to 2 A VP has been found starting at 0 and ending at 3 2/24/2012 Speech and Language Processing - Jurafsky and Martin 26

Chart alternativ datastruktur NP Det Nom Nom Nom PP NP PP P NP Det Nom, N P NP, PN 0 book 1 the 2 flight 3 through 4 Houston 5 NP Det Nom Nom Nom PP PP P NP NP Det Nom Nom Nom PP PP P NP Partielt snapshot 24. februar 2012 27

Fundamentalregelen NP Det Nom Nom Nom PP 0 book 1 the 2 flight 3 through 4 Houston 5 NP Det Nom Fra (A α B β, [i,k] ) + (B γ, [k, j] ) Kan vi lage (A α B β, [i,j] ) 24. februar 2012 28

Chart-parsing To datastrukturer: Chart Agenda Hovedstruktur: Fjern en kant k fra agenda Hvis k ikke alt finnes i chartet: Legg k til chartet For alle aktuelle kanter m i chartet: Prøv å matche k mot m m/fundamentalregelen: Hvis de matcher, legg resultatet i agenda Gjenta til agenda er tom I tillegg må vi tenke på: Initialisering: for w ordet på plass n og alle leksikalske regler B w, for en B, skal (B w, [n-1,n] ) legges til agenda (/chart) på et tidspkt. Innfør aktive kanter: Legg de nødvendige aktive kanter på formen (B γ, [k,k]) til agenda. Hold styring på rekkefølge Ulike strategier for Rekkefølge Og dermed hvilke aktive kanter som er nødvendige for å få et fullstendig parse. 24. februar 2012 29

Bottom-up Legg de nødvendige aktive kanter på formen (B γ, [k,k]) til agenda : Når inaktiv/komplett kant (B γ, [m, n] ) flyttes til chartet: Finn alle A, β s.a. A B β er en regel, og Legg kanten (A B β, [m, n]) til agenda. (kunne alternativt lagt (A B β, [m, m]) til agenda: Kan være hensiktsmessig Gjør sammenlikning med TD-strategi lettere) 24. februar 2012 30

Make-predictions, fig. 13.17 24. februar 2012 31

24. februar 2012 32 Chart-algoritme, fig. 13.16

Top-down Legg de nødvendige aktive kanter på formen (B γ, [k,k]) til agenda (/chart) : Initialiser: Legg ( S, [0, 0]) i agenda Når aktiv/inkomplett kant (A α B β, [m, n] ) flyttes til chartet: Finn alle regler på formen (B γ) for en eller annen γ, og legg kanten (B γ, [n, n]) til agenda. 24. februar 2012 33

Make-predictions, fig. 13.17 24. februar 2012 34

Eksempel Parse: gi jenta fisk med BU og TD-strategi S VP VP IV VP TV NP VP DTV NP NP NP N IV fisk sov TV fisk kjøp DTV gi N jenta fisk 24. februar 2012 35

Egenskaper Merk Unære regler Mer enn to symb. på høyreside Dette går fint Venstrerekursjon ikke noe problem Tomme prod. OK ved TD-strategi, Problem ved BU 24. februar 2012 36