INF2820 Datalingvistikk V2011 TABELLPARSING Jan Tore Lønning & Stephan Oepen 1. mars 2011 2 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 1. mars 2011 3 Recursive descent parser Lager en venstreavledning Bygger et tre: Fra toppen ( top-down ) Fra venstre mot høyre Tilstrekkelig å bare se på venstreavledninger fordi de svarer til trær Streber mot tidligst mulig å sjekke mot input-data Et trinn er ikke-deterministisk: Velg en regel! Dette gir et søkerom å holde orden på 1. mars 2011 4 Top Down Space Problem for RD-parser: Consider A flight from Indianapolis to Houston on TWA Det Nominal Nominal Noun Nominal Nominal PP Kan vi finne G uten Venstrerekursjon s.a. L(G ) = L(G)? 5 6 1
Bottom-up: Shift reduce parser Kim saw the girl with the telescope V Det girl with the telescope VDet girl with the telescope (SHIFT) VDet N with the telescope (REDUCE) V with the telescope (REDUCE) Bottom-up: Shift-Reduce parser Tilsvarer en reversert høyreavledning: Til hver høyreavledning svarer nøyaktig en SR-parse. To plasser for valg/ikke-determinisme: Skal vi flytte eller redusere? Hva skal vi velge når vi har flere valg for reduksjon? Vi kan gjøre den mer effektiv hvis grammatikken er på CNF: Når vi flytter, gjør vi samtidig en unær reduksjon. Svarer til regel på formen B t Bare se på de to siste symbolene når vi reduserer Svarer til regel på formen A BC 1. mars 2011 7 1. mars 2011 8 Problem for både RD og SR Ineffektivitet Så på eksempler sist RD: Eksempel: S VP Noen valg under Noen valg under VP Vi foretar valgene for VP på nytt for hvert alternativ under Tilsvarende for SR For hvert valg vi foretar må vi se på alle muligheter for resten av strengen på nytt 1. mars 2011 9 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 1. mars 2011 10 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) CKY Parsing First we ll limit our grammar to CNF Consider the rule A BC If there is an A somewhere in the input then there must be a B followed by a C in the input. If the A spans from ito jin the input then there must be some k st. i<k<j Ie. The B splits from the C someplace. 11 12 2
Sample L1 Grammar CNF Conversion 13 14 CKY CKY So let s build a table so that an A spanning from i to j in the input is placed in cell [i,j] in the table. So a non-terminal spanning an entire string will sit in cell [0, n] Hopefully an S If we build the table bottom-up, we ll know that the parts of the A must go from i to k and from k to j, for some k. Meaning that for a rule like A B C we should look for a B in [i,k] and a C in [k,j]. In other words, if we think there might be an A spanning i,j in the input AND A B C is a rule in the grammar THEN There must be a B in [i,k] and a C in [k,j] for some i<k<j 15 16 CKY So to fill the table loop over the cell[i,j] values in some systematic way What constraint should we put on that systematic search? For each cell, loop over the appropriate k values to search for things to add. 17 18 3
Filling column 5 19 20 21 22 23 24 4
CKY Algorithm CKY Parsing Is that really a parser? 25 26 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 1. mars 2011 27 Chart alternativ datastruktur (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 1. mars 2011 28 Nom Det Nom, N P, PN PP 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 1. mars 2011 29 1. mars 2011 30 5
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 31 32 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, i] ) Kan vi lage (A B, [i,j] ) 1. mars 2011 33 1. mars 2011 34 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) Innfør aktive kanter: Legg de nødvendige aktive kanter på formen (B, [k,i]) til agenda (/chart) Hold styring på rekkefølge Ulike strategier for Rekkefølge Og dermed hvilke aktive kanter som er nødvendige for å få fullstendig parse. Bottom-up Legg de nødvendige aktive kanter på formen (B, [k,i]) til agenda (/chart) : Når inaktiv/ukomplett kant (B, [m, n] ) flyttes til chartet: Finn alle A, s.a. A B er en regel, og Legg kanten (A B, [m, m]) til agenda 1. mars 2011 35 1. mars 2011 36 6
Make-predictions, fig. 13.17 Chart-algoritme, fig. 13.16 1. mars 2011 37 1. mars 2011 38 7