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

Like dokumenter
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

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

INF2820 Datalingvistikk V Gang 9.3 Jan Tore Lønning

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

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

INF 2820 V2015: Obligatorisk innleveringsoppgave 3

INF2820 Datalingvistikk V Gang Jan Tore Lønning

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

UNIVERSITETET I OSLO

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

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

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

INF 2820 V2016: Innleveringsoppgave 3 hele

INF2820 Datalingvistikk V2012. Jan Tore Lønning

INF2820 Datalingvistikk V gang, Jan Tore Lønning

INF2820 Datalingvistikk V Gang 30.3 Jan Tore Lønning

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

Oppgave 1 (samlet 15%)

INF Algoritmer og datastrukturer

INF 2820 V2018: Innleveringsoppgave 3

Statisk semantisk analyse - Kap. 6

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

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

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

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

Syntax/semantics INF 3110/ /8/2004 1

INF 2820 V2016: Innleveringsoppgave 3 del 1

Slope-Intercept Formula

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

Obligatorisk oppgave 4, INF2820, 2014

Semantisk Analyse del I

INF2820 Datalingvistikk V gang, Jan Tore Lønning

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

INF2810: Funksjonell Programmering. Strømmer og utsatt evaluering

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 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) 24. februar 2012 3 4 5 6 1

Filling column 5 7 8 9 10 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 ) 11 24. februar 2012 12 2

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 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 13 24. februar 2012 14 Eksempel S VP PN Det As N As As A As VP løp smilte PN Kari Ola N gutt jente mor far A snill gammel trøtt Sample L1 Grammar 24. februar 2012 15 16 CNF Conversion CKY Algorithm 17 18 3

CKY Display 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 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 Chart alternativ datastruktur 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 (S, [0, 1]) (VP, [0,1]) (Det, [1,2]) (Nom, [2,3]) (N, [2,3]) (, [1, 3]) (S, [0,5]) S, VP, V, Nom, N 0 book 1 the 2 flight 3 through 4 Houston 5 Nom Det Nom, N P, PN PP 24. februar 2012 21 24. februar 2012 22 Chart alternativ datastruktur Begrensninger i CKY (S, [0, 1]) (VP, [0,1]) (Det, [1,2]) (Nom, [2,3]) (N, [2,3]) (, [1, 3]) (S, [0,5]) 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 Nom Hjelp for begge problemene å innføre dotted d items PP S, VP, V, Nom, N Det Nom, N P, PN 0 book 1 the 2 flight 3 through 4 Houston 5 24. februar 2012 23 24. februar 2012 24 4

States States/Locations The table-entries are called states and are represented with dotted-rules. S VP Det Nominal VP V - A VP is predicted Det Nominal - An is in progress - A VP has been found S VP [0,0] Det Nominal [1,2] VP V [0,3]. A VP is predicted at the start of the sentence An is in progress; the Det goes from 1 to 2 A VP has been found starting at 0 and ending at 3 25 26 Chart alternativ datastruktur Det Nom Fundamentalregelen Det Nom Nom Nom PP Nom Nom PP PP P Det Nom, N P, PN 0 book 1 the 2 flight 3 throughh 4 Houston 5 0 book 1 the 2 flight 3 through 4 Houston 5 Det Nom Det Nom Nom Nom PP PP P Det Nom Nom Nom PP PP P Partielt snapshot Fra (A B, [i,k] ) + (B, [k, j] ) Kan vi lage (A B, [i,j] ) 24. februar 2012 27 24. februar 2012 28 Chart-parsing Bottom-up 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. 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 29 24. februar 2012 30 5

Make-predictions, fig. 13.17 Chart-algoritme, fig. 13.16 24. februar 2012 31 24. februar 2012 32 Top-down Make-predictions, fig. 13.17 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 24. februar 2012 34 Eksempel Egenskaper Parse: gi jenta fisk med BU og TD-strategi S VP VP IV VP TV VP DTV N IV fisk sov TV fisk kjøp DTV gi N jenta fisk 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 35 24. februar 2012 36 6