Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive...

130
Parsing of Context-Free Grammars Bernd Kiefer {Bernd.Kiefer}@dfki.de Deutsches Forschungszentrum f¨ ur k ¨ unstliche Intelligenz Introduction to CL - Context-Free Grammars – p.1/32

Transcript of Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive...

Page 1: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Parsing of Context-Free Grammars

Bernd Kiefer

{Bernd.Kiefer}@dfki.de

Deutsches Forschungszentrum fur kunstliche Intelligenz

Introduction to CL - Context-Free Grammars – p.1/32

Page 2: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Limits of Regular Expressions

Assignment: Write a regular expression for fully bracketedarithmetic expressions!

Answer: ?

Introduction to CL - Context-Free Grammars – p.2/32

Page 3: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Limits of Regular Expressions

Assignment: Write a regular expression for fully bracketedarithmetic expressions!

Answer:This is not possible!Regular expressions can only count finite amounts ofbrackets

Introduction to CL - Context-Free Grammars – p.2/32

Page 4: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Limits of Regular Expressions

Assignment: Write a regular expression for fully bracketedarithmetic expressions!

Answer:This is not possible!Regular expressions can only count finite amounts ofbracketsWe need a more powerful formal device: context-freegrammars

Introduction to CL - Context-Free Grammars – p.2/32

Page 5: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Limits of Regular Expressions

Assignment: Write a regular expression for fully bracketedarithmetic expressions!

Answer:This is not possible!Regular expressions can only count finite amounts ofbracketsWe need a more powerful formal device: context-freegrammarsContext-free grammars provide a (finite) inventory ofnamed bracketsAll regular languages are also context-free, i.e.:for every regular expression, there is a context-freegrammar that accepts / derives the same language

Introduction to CL - Context-Free Grammars – p.2/32

Page 6: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Context-Free Grammars

A context-free grammar (CFG) consists of:

The set of terminal symbols Σ = a, b, c, . . . (the words orletters of the language)

The set of non-terminal symbols N = A,B,C, . . .

The startsymbol S ∈ N

The set of productions (rules) P , whereP ∋ r = A → α with α ∈ (Σ ∪ N)∗

(we use greek letters for strings of Σ ∪ N)

Example: A grammar for arithmetic expressions:

Σ = {int,+,*,(,) } , N = {E} , S = E

P = { E → E+E, E → E *E, E → (E), E → int }

Introduction to CL - Context-Free Grammars – p.3/32

Page 7: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

The Language of a CFG

Given a CFG G, the language L(G) is defined as the set ofall strings that can be derived from S

Given a string α from (Σ ∪ N)∗, derive a new string β:Choose one of the nonterminals in α, say, A

Choose one of the productions with A on the left handsideReplace A in α with the right hand side (rhs) of theproduction to get the derived string β

If α contains only symbols in Σ, then α ∈ L(G)

Example:α = int*(E); choose E → E +E; β = int*(E+E)

Introduction to CL - Context-Free Grammars – p.4/32

Page 8: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Derivations: Formally

A string α derives a string β, (α ⇒G

β) α, β ∈ (Σ ∪ N)∗, if:

there are γ, δ, η ∈ (Σ ∪ N)∗, A ∈ N such thatα = γ A δ , β = γ η δ and A −→ η ∈ P

We write α ⇒G

β for a one-step derivation

α∗⇒G

β is a many-step derivation: α ⇒G

α0 ⇒G

α1 . . . ⇒G

β

Language L(G) generated by G: L(G) = {s ∈ Σ∗|S∗⇒G

s}

The task of a parser: find one (or all) derivation(s) of astring in Σ∗, given a CFG G

Introduction to CL - Context-Free Grammars – p.5/32

Page 9: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Derivations: Example

Σ = {john, girl, car, saw, walks, in, the, a}

N = {S, NP, VP, PP, D, N, V, P}

P =

S →NP VP|N VP|N V|NP V N→john, girl, car

VP→V NP|V N|VP PP V→saw, walks

NP→D N|NP PP|N PP P→in

PP→P NP|P N D→the, a

S ⇒G

john saw the girl in a car

Introduction to CL - Context-Free Grammars – p.6/32

Page 10: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Derivations: Example

Σ = {john, girl, car, saw, walks, in, the, a}

N = {S, NP, VP, PP, D, N, V, P}

P =

S →NP VP|N VP|N V|NP V N→john, girl, car

VP→V NP|V N|VP PP V→saw, walks

NP→D N|NP PP|N PP P→in

PP→P NP|P N D→the, a

S ⇒G

N VP ⇒G

john saw the girl in a car

Introduction to CL - Context-Free Grammars – p.6/32

Page 11: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Derivations: Example

Σ = {john, girl, car, saw, walks, in, the, a}

N = {S, NP, VP, PP, D, N, V, P}

P =

S →NP VP|N VP|N V|NP V N→john, girl, car

VP→V NP|V N|VP PP V→saw, walks

NP→D N|NP PP|N PP P→in

PP→P NP|P N D→the, a

S ⇒G

N VP ⇒G

john VP ⇒G

john saw the girl in a car

Introduction to CL - Context-Free Grammars – p.6/32

Page 12: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Derivations: Example

Σ = {john, girl, car, saw, walks, in, the, a}

N = {S, NP, VP, PP, D, N, V, P}

P =

S →NP VP|N VP|N V|NP V N→john, girl, car

VP→V NP|V N|VP PP V→saw, walks

NP→D N|NP PP|N PP P→in

PP→P NP|P N D→the, a

S ⇒G

N VP ⇒G

john VP ⇒G

john V NP ⇒G

john saw the girl in a car

Introduction to CL - Context-Free Grammars – p.6/32

Page 13: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Derivations: Example

Σ = {john, girl, car, saw, walks, in, the, a}

N = {S, NP, VP, PP, D, N, V, P}

P =

S →NP VP|N VP|N V|NP V N→john, girl, car

VP→V NP|V N|VP PP V→saw, walks

NP→D N|NP PP|N PP P→in

PP→P NP|P N D→the, a

S ⇒G

N VP ⇒G

john VP ⇒G

john V NP ⇒G

john saw NP ⇒G

john saw the girl in a car

Introduction to CL - Context-Free Grammars – p.6/32

Page 14: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Derivations: Example

Σ = {john, girl, car, saw, walks, in, the, a}

N = {S, NP, VP, PP, D, N, V, P}

P =

S →NP VP|N VP|N V|NP V N→john, girl, car

VP→V NP|V N|VP PP V→saw, walks

NP→D N|NP PP|N PP P→in

PP→P NP|P N D→the, a

S ⇒G

N VP ⇒G

john VP ⇒G

john V NP ⇒G

john saw NP ⇒G

john saw NP PP ⇒G

john saw the girl in a car

Introduction to CL - Context-Free Grammars – p.6/32

Page 15: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Derivations: Example

Σ = {john, girl, car, saw, walks, in, the, a}

N = {S, NP, VP, PP, D, N, V, P}

P =

S →NP VP|N VP|N V|NP V N→john, girl, car

VP→V NP|V N|VP PP V→saw, walks

NP→D N|NP PP|N PP P→in

PP→P NP|P N D→the, a

S ⇒G

N VP ⇒G

john VP ⇒G

john V NP ⇒G

john saw NP ⇒G

john saw NP PP ⇒G

john saw D N PP ⇒G

john saw the N PP ⇒G

john saw the girl

PP ⇒G

john saw the girl P NP ⇒G

john saw the girl in NP ⇒G

john saw the girl in D

N ⇒G

john saw the girl in a N ⇒G

john saw the girl in a car

Introduction to CL - Context-Free Grammars – p.6/32

Page 16: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Derivation (Parse) Trees

SNPN

john

VPV

saw

NPNP

Dthe

Ngirl

PPPin

NPDa

Ncar

SNPN

john

VPVP

Vsaw

NPDthe

Ngirl

PPPin

NPDa

Ncar

Encodes many possible derivations

PP node in the example can be attached to two nodes: thegrammar is ambigous

CF Parsers/Recognizers differ in the way the derivationtrees are build

Introduction to CL - Context-Free Grammars – p.7/32

Page 17: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Context-free Recognition

Task: given s ∈ Σ∗ and G, is s ∈ L(G) ?

Two ways to go:

start with the start symbol S and try to derive s bysystematic application of the productions:top down recognition (goal driven)

start with the string s and try to reduce it to the startsymbol:bottom up recognition (data driven)

Introduction to CL - Context-Free Grammars – p.8/32

Page 18: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S

expand(S, 0)

Introduction to CL - Context-Free Grammars – p.9/32

Page 19: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

expand(S, 0)

Introduction to CL - Context-Free Grammars – p.9/32

Page 20: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * S

expand(E, 1)

Introduction to CL - Context-Free Grammars – p.9/32

Page 21: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * Sint

expand(S, 1)

Introduction to CL - Context-Free Grammars – p.9/32

Page 22: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * SintS + S

expand(E, 1)

Introduction to CL - Context-Free Grammars – p.9/32

Page 23: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * SintS + Sint

expand(S, 1)

Introduction to CL - Context-Free Grammars – p.9/32

Page 24: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * SintS + Sint

expand(S, 1)

Introduction to CL - Context-Free Grammars – p.9/32

Page 25: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * SintS + Sint ( E )

expand(S, 3)

Introduction to CL - Context-Free Grammars – p.9/32

Page 26: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * SintS + Sint ( E )

S * S

expand(E, 4)

Introduction to CL - Context-Free Grammars – p.9/32

Page 27: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * SintS + Sint ( E )

S * Sint

expand(S, 4)

Introduction to CL - Context-Free Grammars – p.9/32

Page 28: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * SintS + Sint ( E )

S * Sint ( E )

expand(S, 6)

Introduction to CL - Context-Free Grammars – p.9/32

Page 29: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * SintS + Sint ( E )

S * Sint ( E )

int

expand(S, 6)

Introduction to CL - Context-Free Grammars – p.9/32

Page 30: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * SintS + Sint ( E )

S * Sint ( E )

int

expand(S, 3)

Introduction to CL - Context-Free Grammars – p.9/32

Page 31: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing

Idea: Recursively compute all expansions of a nonterminal atsome input position

E → S+S, E → S *S,

S → (E), S → int

( int + ( int * int ) )

S( E )

S * SintS + Sint ( E )

S * Sint ( E )

int

expand(S, 0)

Introduction to CL - Context-Free Grammars – p.9/32

Page 32: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Recursive Descent Parsing II

expand returns a set of possible end positions

During expansion of one productionKeep track of a set of intermediate positions for thealready expanded partExpand the next terminal or nonterminal from everyintermediate positionIf the set of possible intermediate position gets empty,the production fails

When a production was successfully completed, theintermediate set is added to the set of end positions

May run into an infinite loop with left-recursive grammars,i.e. grammars where A

∗⇒G

Aβ for some A

Introduction to CL - Context-Free Grammars – p.10/32

Page 33: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Top Down Parsing: Optimizations

For every nonterminal, compute the set of terminals thatcan occur in the first position

Expand only those nonterminals / productions that arecompatible with the current input symbol

Avoid performing duplicate calls with identicalnonterminal/position pair: memoize previous calls

use a data structure whose index are tuples consistingof the function argumentsthe result of the lookup is the result of a previous callwith the same arguments (if available)The memoized method has to be strictly functional forthis to work

Introduction to CL - Context-Free Grammars – p.11/32

Page 34: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Epsilon Reduction

A CFG may contain productions of the form A → ǫ

Construct a CFG G′ with the same language as G and atmost one epsilon production: S → ǫ

for all nonterminals A with A → ǫ ∈ P :mark A as ǫ-deriving and add it to the set Q

while Q is not empty, remove a nonterminal X from Q:for all Y → α X β ∈ P , with α or β not empty, add Y → α β to P ′

for all Y → X, if Y is not marked as ǫ-deriving:mark Y as ǫ-deriving and add it to Q

if S is ǫ-deriving, add S → ǫ to P ′

add all non-ǫ productions of P to P ′

Introduction to CL - Context-Free Grammars – p.12/32

Page 35: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Chomsky Normal Form

A context-free grammar is in Chomsky Normal Form if:(i) it is ǫ-free,(ii) all productions have one of two forms:

• A → a with a ∈ Σ• A → B C with B,C ∈ N

Every CFG can be transformed into a CNF grammar withthe same language

Drawback: The original structure of the parse trees mustbe reconstructed, if necessary

The original and transformed grammar are said to beweakly equivalent

Introduction to CL - Context-Free Grammars – p.13/32

Page 36: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Chomsky Normal Form II

Convert an arbitrary CFG into CNF:Introduce new nonterminals and productions Aa → a

Replace all occurences of a by Aa

Eliminate unary productions A → B:add productions where A is replaced by B in the righthand sidesReplace productions with more than two symbols onthe right hand side by a sequence of productions:A → R1 R2 . . . Rn ⇒

A → R1A(1), A(1) → R2A

(2), · · · A(n−2) → Rn−1Rn

Introduction to CL - Context-Free Grammars – p.14/32

Page 37: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Chart Parsing

First algorithm independently developed by Cocke,Younger and Kasami (late 60s)

Given a string w of length n, use an n × n table to storesubderivations (hence chart or tabular parsing)

Works for all kinds of grammars: left/right recursive,ambiguous

Storing subderivations avoids duplicate computation: aninstance of dynamic programming

polynomial space and time bounds, although anexponential number of parse trees may be encoded!

Introduction to CL - Context-Free Grammars – p.15/32

Page 38: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

CYK Parsing

Input: G in Chomsky normal form, input string w1, . . . , wn

Systematically explore all possible sub-derivationsbottom-up

Use an n × n array C such that

If nonterminal A is stored in C(i, k): A∗⇒G

wi+1, . . . , wk

Maintain a second table B, such that if j ∈ B(i, k): ex.A → B C ∈ P,A ∈ C(i, k), B ∈ C(i, j) and C ∈ C(j, k)

B enables us to extract the parse trees

Implement C and B as three-dimensional boolean arrays ofsize n × n × |N | and n × n × n, respectively

Introduction to CL - Context-Free Grammars – p.16/32

Page 39: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

CYK – The Original

For i = 1 to n

For each Rj −→ ai, set C(i − 1, i, j) = true

For l = 2 to n – Length of new constituent

For i = 0 to n − l – Start of new constituent

For m = 1 to l − 1 – Length of first subconstituent

For each production Ra −→ RbRc

If C(i, i + m, b) and C(i + m, i + l, c) thenset C(i, i + l, a) = true

set B(i, i + l, i + m) = true

If C(1, n, S) is true, w ∈ L(G)

Introduction to CL - Context-Free Grammars – p.17/32

Page 40: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

CYK Chart Example

C B

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

Introduction to CL - Context-Free Grammars – p.18/32

Page 41: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

CYK Chart Example

C B

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

N V D N P D N

NV

DN

PD

N

Introduction to CL - Context-Free Grammars – p.18/32

Page 42: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

CYK Chart Example

C B

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

N V D N P D N

NV

DN

PD

N

S NP NP

1

3

6

S

NP

NP

Introduction to CL - Context-Free Grammars – p.18/32

Page 43: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

CYK Chart Example

C B

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

N V D N P D N

NV

DN

PD

N

S NP NP

1

3

6

S

NP

NP

VP PP

2

5

VP

PP

Introduction to CL - Context-Free Grammars – p.18/32

Page 44: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

CYK Chart Example

C B

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

N V D N P D N

NV

DN

PD

N

S NP NP

1

3

6

S

NP

NP

VP PP

2

5

VP

PP

S NP

1

4

S

NP

Introduction to CL - Context-Free Grammars – p.18/32

Page 45: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

CYK Chart Example

C B

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

N V D N P D N

NV

DN

PD

N

S NP NP

1

3

6

S

NP

NP

VP PP

2

5

VP

PP

S NP

1

4

S

NP

NP

4NP

Introduction to CL - Context-Free Grammars – p.18/32

Page 46: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

CYK Chart Example

C B

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

N V D N P D N

NV

DN

PD

N

S NP NP

1

3

6

S

NP

NP

VP PP

2

5

VP

PP

S NP

1

4

S

NP

NP

4NP

VP

2,4VP

Introduction to CL - Context-Free Grammars – p.18/32

Page 47: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

CYK Chart Example

C B

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

N V D N P D N

NV

DN

PD

N

S NP NP

1

3

6

S

NP

NP

VP PP

2

5

VP

PP

S NP

1

4

S

NP

NP

4NP

VP

2,4VP

S

1S

Introduction to CL - Context-Free Grammars – p.18/32

Page 48: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Example Chart

S →NP VP|N VP|N V|NP V

VP→V NP|V N|VP PP

NP→D N|NP PP|N PP

PP→P NP|P N

N →john, girl, car

V →saw, walks

P →in

D →the, a

1 2 3 4 5 6 70 N S S S1 V VP VP(2)

2 D NP NP3 N NP4 P PP5 D NP6 N

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

Introduction to CL - Context-Free Grammars – p.19/32

Page 49: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Example Chart

S →NP VP|N VP|N V|NP V

VP→V NP|V N|VP PP

NP→D N|NP PP|N PP

PP→P NP|P N

N →john, girl, car

V →saw, walks

P →in

D →the, a

1 2 3 4 5 6 70 N S S S1 V VP VP(2)

2 D NP NP3 N NP4 P PP5 D NP6 N

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

Introduction to CL - Context-Free Grammars – p.19/32

Page 50: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Example Chart

S →NP VP|N VP|N V|NP V

VP→V NP|V N|VP PP

NP→D N|NP PP|N PP

PP→P NP|P N

N →john, girl, car

V →saw, walks

P →in

D →the, a

1 2 3 4 5 6 70 N S S S1 V VP VP(2)

2 D NP NP3 N NP4 P PP5 D NP6 N

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

Introduction to CL - Context-Free Grammars – p.19/32

Page 51: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Example Chart

S →NP VP|N VP|N V|NP V

VP→V NP|V N|VP PP

NP→D N|NP PP|N PP

PP→P NP|P N

N →john, girl, car

V →saw, walks

P →in

D →the, a

1 2 3 4 5 6 70 N S S S1 V VP VP(2)

2 D NP NP3 N NP4 P PP5 D NP6 N

0 john 1 saw 2 the 3 girl 4 in 5 a 6 car 7

Introduction to CL - Context-Free Grammars – p.19/32

Page 52: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Encoding Ambiguities

Σ = {john, girl, car, sees, in, the, a} N = {S, NP, VP, PP, D, N, V, P}

P =

S →NP VP, N→john, girl, car

VP→V|V NP|V NP PP V→sees

NP→N|D N|N PP|D N PP P→in

PP→P NP D→the, a

S

NP

N

john

VP

V

sees

NP

D

the

N

girl

PP

P

in

NP

D

a

N

car

Introduction to CL - Context-Free Grammars – p.20/32

Page 53: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Describing Chart Parsing Algorithms

Parsing algorithm should use original grammars for compara-

bility

Introduction to CL - Context-Free Grammars – p.21/32

Page 54: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Describing Chart Parsing Algorithms

Parsing algorithm should use original grammars forcomparability

They are described using chart items, which consist ofa symbol, derived from the grammara start and end position from 0, . . . , n

Introduction to CL - Context-Free Grammars – p.21/32

Page 55: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Describing Chart Parsing Algorithms

Parsing algorithm should use original grammars forcomparability

They are described using chart items, which consist ofa symbol, derived from the grammara start and end position from 0, . . . , n

The symbol of complete items is one of Σ ∪ N

Introduction to CL - Context-Free Grammars – p.21/32

Page 56: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Describing Chart Parsing Algorithms

Parsing algorithm should use original grammars forcomparability

They are described using chart items, which consist ofa symbol, derived from the grammara start and end position from 0, . . . , n

The symbol of complete items is one of Σ ∪ N

Incomplete chart items encode partially filled rulesthe symbol is a pair (r, i) of rule and dot position ifP ∋ r : A → αβ with |α| = i

write alternatively: A → α rβ

Introduction to CL - Context-Free Grammars – p.21/32

Page 57: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Bottom-Up Chart Parsing

How, when and which chart items are created or combinedcharacterizes a parsing algorithm or parsing strategy

First: A modified variant of Cocke-Younger-Kasami (CYK)algorithm

Prerequisites: CFG G, input string w = a1, . . . , an

Data Structures:A n + 1 × n + 1 chart C, where each cell contains a set of(complete or incomplete) chart itemsA set of chart items A (those must still be treated insome way)

Initialization: add all (ai, i − 1, i) to A and Ci−1,i

Introduction to CL - Context-Free Grammars – p.22/32

Page 58: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Bottom-Up Parsing Algorithm

while A not emptytake an (X, i, j) from A and remove itif X ∈ Σ ∪ N

for P ∋ r ≡ A → Xα docheck and add(A → X rα, i, j)

for k ∈ 0, . . . , i − 1 dofor all (A → β rXα, k, i) ∈ C do

check and add(A → βX rα, k, j)else – incomplete item: X ≡ A → β rY α

for k ∈ j + 1, . . . , n doif (Y, j, k) ∈ C check and add(A → βY rα, i, k)

check and add(X ≡ A → α rβ, i, j) ≡if β = ǫ then if (A, i, j) 6∈ C add (A, i, j) to A and C endifelse if (A → α rβ, i, j) 6∈ C add (A → α rβ, i, j) to A and C endif

Introduction to CL - Context-Free Grammars – p.23/32

Page 59: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Bottom-Up: The Details

How to implement A and C efficiently?

Implementation of the (n + 1)2 sets in C:

Introduction to CL - Context-Free Grammars – p.24/32

Page 60: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Bottom-Up: The Details

How to implement A and C efficiently?

Implementation of the (n + 1)2 sets in C:

Operations: add single element, contains element

Introduction to CL - Context-Free Grammars – p.24/32

Page 61: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Bottom-Up: The Details

How to implement A and C efficiently?

Implementation of the (n + 1)2 sets in C:

Operations: add single element, contains elementbit vector of size |G| := |Σ| + |N | +

P∋r:A→α |Aα|

Introduction to CL - Context-Free Grammars – p.24/32

Page 62: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Bottom-Up: The Details

How to implement A and C efficiently?

Implementation of the (n + 1)2 sets in C:

Operations: add single element, contains elementbit vector of size |G| := |Σ| + |N | +

P∋r:A→α |Aα|

Implementation of the set A:

Introduction to CL - Context-Free Grammars – p.24/32

Page 63: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Bottom-Up: The Details

How to implement A and C efficiently?

Implementation of the (n + 1)2 sets in C:

Operations: add single element, contains elementbit vector of size |G| := |Σ| + |N | +

P∋r:A→α |Aα|

Implementation of the set A:

Operations: add , get and remove some element

Introduction to CL - Context-Free Grammars – p.24/32

Page 64: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Bottom-Up: The Details

How to implement A and C efficiently?

Implementation of the (n + 1)2 sets in C:

Operations: add single element, contains elementbit vector of size |G| := |Σ| + |N | +

P∋r:A→α |Aα|

Implementation of the set A:

Operations: add , get and remove some element(priority) queue, stackA is called agenda and can be used to implementsearch strategies

Keep terminal items separate from the chart for space andtime efficiency

Introduction to CL - Context-Free Grammars – p.24/32

Page 65: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Runtime of CYK Algorithm

check and add(X ≡ A → α rβ, i, j) ≡if β = ǫ then if (A, i, j) 6∈ C add (A, i, j) to A and C endifelse if (A → α rβ, i, j) 6∈ C add (A → α rβ, i, j) to A and C endif

Introduction to CL - Context-Free Grammars – p.25/32

Page 66: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Runtime of CYK Algorithm

check and add(X ≡ A → α rβ, i, j) ≡ all operations O(1)if β = ǫ then if (A, i, j) 6∈ C add (A, i, j) to A and C endifelse if (A → α rβ, i, j) 6∈ C add (A → α rβ, i, j) to A and C endif

Introduction to CL - Context-Free Grammars – p.25/32

Page 67: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Runtime of CYK Algorithm

check and add(X ≡ A → α rβ, i, j) ≡ all operations O(1)if β = ǫ then if (A, i, j) 6∈ C add (A, i, j) to A and C endifelse if (A → α rβ, i, j) 6∈ C add (A → α rβ, i, j) to A and C endif

while A not emptytake an (X, i, j) from A and remove itif X ∈ Σ ∪ N

for P ∋ r ≡ A → Xα docheck and add(A → X rα, i, j)

for k ∈ 0, . . . , i − 1 dofor all (A → β rXα, k, i) ∈ C do

check and add(A → βX rα, k, j)else – incomplete item: X ≡ A → β rY α

for k ∈ j + 1, . . . , n doif (Y, j, k) ∈ C check and add(A → βY rα, i, k)

Introduction to CL - Context-Free Grammars – p.25/32

Page 68: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Runtime of CYK Algorithm

check and add(X ≡ A → α rβ, i, j) ≡ all operations O(1)if β = ǫ then if (A, i, j) 6∈ C add (A, i, j) to A and C endifelse if (A → α rβ, i, j) 6∈ C add (A → α rβ, i, j) to A and C endif

while A not emptytake an (X, i, j) from A and remove it max. |G| × (n + 1)2

if X ∈ Σ ∪ N

for P ∋ r ≡ A → Xα docheck and add(A → X rα, i, j)

for k ∈ 0, . . . , i − 1 dofor all (A → β rXα, k, i) ∈ C do

check and add(A → βX rα, k, j)else – incomplete item: X ≡ A → β rY α

for k ∈ j + 1, . . . , n doif (Y, j, k) ∈ C check and add(A → βY rα, i, k)

Introduction to CL - Context-Free Grammars – p.25/32

Page 69: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Runtime of CYK Algorithm

check and add(X ≡ A → α rβ, i, j) ≡ all operations O(1)if β = ǫ then if (A, i, j) 6∈ C add (A, i, j) to A and C endifelse if (A → α rβ, i, j) 6∈ C add (A → α rβ, i, j) to A and C endif

while A not emptytake an (X, i, j) from A and remove it max. |G| × (n + 1)2

if X ∈ Σ ∪ N

for P ∋ r ≡ A → Xα do max. |G|check and add(A → X rα, i, j)

for k ∈ 0, . . . , i − 1 dofor all (A → β rXα, k, i) ∈ C do

check and add(A → βX rα, k, j)else – incomplete item: X ≡ A → β rY α

for k ∈ j + 1, . . . , n doif (Y, j, k) ∈ C check and add(A → βY rα, i, k)

Introduction to CL - Context-Free Grammars – p.25/32

Page 70: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Runtime of CYK Algorithm

check and add(X ≡ A → α rβ, i, j) ≡ all operations O(1)if β = ǫ then if (A, i, j) 6∈ C add (A, i, j) to A and C endifelse if (A → α rβ, i, j) 6∈ C add (A → α rβ, i, j) to A and C endif

while A not emptytake an (X, i, j) from A and remove it max. |G| × (n + 1)2

if X ∈ Σ ∪ N

for P ∋ r ≡ A → Xα do max. |G|check and add(A → X rα, i, j)

for k ∈ 0, . . . , i − 1 do max. n timesfor all (A → β rXα, k, i) ∈ C do

check and add(A → βX rα, k, j)else – incomplete item: X ≡ A → β rY α

for k ∈ j + 1, . . . , n doif (Y, j, k) ∈ C check and add(A → βY rα, i, k)

Introduction to CL - Context-Free Grammars – p.25/32

Page 71: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Runtime of CYK Algorithm

check and add(X ≡ A → α rβ, i, j) ≡ all operations O(1)if β = ǫ then if (A, i, j) 6∈ C add (A, i, j) to A and C endifelse if (A → α rβ, i, j) 6∈ C add (A → α rβ, i, j) to A and C endif

while A not emptytake an (X, i, j) from A and remove it max. |G| × (n + 1)2

if X ∈ Σ ∪ N

for P ∋ r ≡ A → Xα do max. |G|check and add(A → X rα, i, j)

for k ∈ 0, . . . , i − 1 do max. n timesfor all (A → β rXα, k, i) ∈ C do max. |G| times

check and add(A → βX rα, k, j)else – incomplete item: X ≡ A → β rY α

for k ∈ j + 1, . . . , n doif (Y, j, k) ∈ C check and add(A → βY rα, i, k)

Introduction to CL - Context-Free Grammars – p.25/32

Page 72: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Runtime of CYK Algorithm

check and add(X ≡ A → α rβ, i, j) ≡ all operations O(1)if β = ǫ then if (A, i, j) 6∈ C add (A, i, j) to A and C endifelse if (A → α rβ, i, j) 6∈ C add (A → α rβ, i, j) to A and C endif

while A not emptytake an (X, i, j) from A and remove it max. |G| × (n + 1)2

if X ∈ Σ ∪ N

for P ∋ r ≡ A → Xα do max. |G|check and add(A → X rα, i, j)

for k ∈ 0, . . . , i − 1 do max. n timesfor all (A → β rXα, k, i) ∈ C do max. |G| times

check and add(A → βX rα, k, j)else – incomplete item: X ≡ A → β rY α

for k ∈ j + 1, . . . , n do max. n timesif (Y, j, k) ∈ C check and add(A → βY rα, i, k)

Introduction to CL - Context-Free Grammars – p.25/32

Page 73: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

CYK – Summary

Polynomial complexity: O(|G|2n3)

Explores all possible sub-derivations

Advantageous for robust parsing:Extract the biggest/best chunks for ungrammatical input

That a derivation must start at S is not used at allAverage time is near or equal to the worst caseMay lead to poor performance in practice

Two main steps:if (X, i, j) ∈ C, X ∈ Σ ∪ N and A → Xα ∈ P :add (A → X rα, i, j) to C

if (A → β rY α, i, j) ∈ C and (Y, j, k) ∈ C:add (A → βY rα, i, k) to C

Introduction to CL - Context-Free Grammars – p.26/32

Page 74: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Predictive Bottom-Up: Earley Parsing

Described by J. Earley (1970): Predict Top-Down andComplete Bottom-Up

Initialize by adding the terminal items and (S → α, 0, 0) forall S → rα ∈ P

Three main operations:Prediction if (A → β rY α, i, j) ∈ C, add (Y → rγ, j, j) to C for

every Y → γ ∈ P

Scanning if (A → β raj+1α, i, j) ∈ C, add (A → βaj+1rα, i, j + 1)

to C

Completion if (Y, i, j), Y ∈ N and (A → β rY α, j, k) ∈ C , add(A → βY rα, i, k)

Introduction to CL - Context-Free Grammars – p.27/32

Page 75: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

Introduction to CL - Context-Free Grammars – p.28/32

Page 76: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

Introduction to CL - Context-Free Grammars – p.28/32

Page 77: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

Introduction to CL - Context-Free Grammars – p.28/32

Page 78: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

Introduction to CL - Context-Free Grammars – p.28/32

Page 79: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

N

Introduction to CL - Context-Free Grammars – p.28/32

Page 80: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

Introduction to CL - Context-Free Grammars – p.28/32

Page 81: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

Introduction to CL - Context-Free Grammars – p.28/32

Page 82: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

Introduction to CL - Context-Free Grammars – p.28/32

Page 83: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

Introduction to CL - Context-Free Grammars – p.28/32

Page 84: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

Introduction to CL - Context-Free Grammars – p.28/32

Page 85: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

Introduction to CL - Context-Free Grammars – p.28/32

Page 86: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

Introduction to CL - Context-Free Grammars – p.28/32

Page 87: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

Introduction to CL - Context-Free Grammars – p.28/32

Page 88: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NP

Introduction to CL - Context-Free Grammars – p.28/32

Page 89: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

VPVP→V NP rPPS

Introduction to CL - Context-Free Grammars – p.28/32

Page 90: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

VPVP→V NP rPPS

PP→rP NP

P→rin

PPP→P rNP

Introduction to CL - Context-Free Grammars – p.28/32

Page 91: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

VPVP→V NP rPPS

PP→rP NP

P→rin

PPP→P rNP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

Introduction to CL - Context-Free Grammars – p.28/32

Page 92: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

VPVP→V NP rPPS

PP→rP NP

P→rin

PPP→P rNP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NP

Introduction to CL - Context-Free Grammars – p.28/32

Page 93: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

VPVP→V NP rPPS

PP→rP NP

P→rin

PPP→P rNP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

PP→rP NP

P→rin

Introduction to CL - Context-Free Grammars – p.28/32

Page 94: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

VPVP→V NP rPPS

PP→rP NP

P→rin

PPP→P rNP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

PP→rP NP

P→rin

PP

Introduction to CL - Context-Free Grammars – p.28/32

Page 95: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

VPVP→V NP rPPS

PP→rP NP

P→rin

PPP→P rNP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

PP→rP NP

P→rin

PP

NP

Introduction to CL - Context-Free Grammars – p.28/32

Page 96: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

VPVP→V NP rPPS

PP→rP NP

P→rin

PPP→P rNP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

PP→rP NP

P→rin

PP

NPVP

Introduction to CL - Context-Free Grammars – p.28/32

Page 97: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing Example

john saw the girl in a car

S→rNP VP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

NNP

NP→N rPP

NP→rP NP

S→NP rVP

VP→rV

VP→rV NP

VP→rV NP PP

V→rsaw

VVP

VP→V rNPVP→V rNP PPS

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

VPVP→V NP rPPS

PP→rP NP

P→rin

PPP→P rNP

NP→rN

NP→rD N

NP→rN PP

NP→rD N PP

N→rjohn

N→rgirl

N→rcar

D→rthe

D→ra

DNP→D rN

NP→D rN PP

N→rjohn

N→rgirl

N→rcar

N

NPNP→D N rPP

PP→rP NP

P→rin

PP

NPVP

S

Introduction to CL - Context-Free Grammars – p.28/32

Page 98: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Earley Parsing – Summary

The number of useless items is reduced

Superior runtime for unambiguous grammars: O(n2)

Valid prefix property

Not all sub-derivations are computed

Introduction to CL - Context-Free Grammars – p.29/32

Page 99: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left Corner Parsing

Observation: Earley parsing predicts items that can notsucceed

Idea: predict only items that can also be derived from theleftmost terminal item

Formalization: left-corner relationA >l B ⇐⇒ ∃β : A → Bβ ∈ P,B ∈ Σ ∪ N

A >∗

l is the transitive closure of >l

Reformulation of the prediction step:If (A → β rY α, i, j) and (B, j, k) ∈ C, with B ∈ Σ ∪ N add(C → B rγ, j, k) if Y >∗

l C

This formulation also avoids the zero-length predictionswith the dot in initial position

Introduction to CL - Context-Free Grammars – p.30/32

Page 100: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

Introduction to CL - Context-Free Grammars – p.31/32

Page 101: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

Introduction to CL - Context-Free Grammars – p.31/32

Page 102: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

Introduction to CL - Context-Free Grammars – p.31/32

Page 103: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

Introduction to CL - Context-Free Grammars – p.31/32

Page 104: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

Introduction to CL - Context-Free Grammars – p.31/32

Page 105: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

Introduction to CL - Context-Free Grammars – p.31/32

Page 106: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

Introduction to CL - Context-Free Grammars – p.31/32

Page 107: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

Introduction to CL - Context-Free Grammars – p.31/32

Page 108: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

Introduction to CL - Context-Free Grammars – p.31/32

Page 109: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

Introduction to CL - Context-Free Grammars – p.31/32

Page 110: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

Introduction to CL - Context-Free Grammars – p.31/32

Page 111: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

Introduction to CL - Context-Free Grammars – p.31/32

Page 112: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

Introduction to CL - Context-Free Grammars – p.31/32

Page 113: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

Introduction to CL - Context-Free Grammars – p.31/32

Page 114: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

Introduction to CL - Context-Free Grammars – p.31/32

Page 115: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

Introduction to CL - Context-Free Grammars – p.31/32

Page 116: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

Introduction to CL - Context-Free Grammars – p.31/32

Page 117: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

Introduction to CL - Context-Free Grammars – p.31/32

Page 118: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

Introduction to CL - Context-Free Grammars – p.31/32

Page 119: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

P

Introduction to CL - Context-Free Grammars – p.31/32

Page 120: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

P

PP→P rNP

Introduction to CL - Context-Free Grammars – p.31/32

Page 121: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

P

PP→P rNP

D

Introduction to CL - Context-Free Grammars – p.31/32

Page 122: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

P

PP→P rNP

D

NP→D rN

Introduction to CL - Context-Free Grammars – p.31/32

Page 123: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

P

PP→P rNP

D

NP→D rN

NP→D rN PP

Introduction to CL - Context-Free Grammars – p.31/32

Page 124: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

P

PP→P rNP

D

NP→D rN

NP→D rN PP

N

Introduction to CL - Context-Free Grammars – p.31/32

Page 125: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

P

PP→P rNP

D

NP→D rN

NP→D rN PP

N

NP

Introduction to CL - Context-Free Grammars – p.31/32

Page 126: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

P

PP→P rNP

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

Introduction to CL - Context-Free Grammars – p.31/32

Page 127: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

P

PP→P rNP

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

PP

Introduction to CL - Context-Free Grammars – p.31/32

Page 128: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

P

PP→P rNP

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

PP

NP

Introduction to CL - Context-Free Grammars – p.31/32

Page 129: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Left-Corner Example

john saw the girl in a car

N

NP→N rPP

NP

S→NP rVP

V

VP

VP→V rNP

VP→V rNP PP

S

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

VP

VP→V NP rPP

S

P

PP→P rNP

D

NP→D rN

NP→D rN PP

N

NP

NP→D N rPP

PP

NP

VP

S

Introduction to CL - Context-Free Grammars – p.31/32

Page 130: Bernd Kiefer Deutsches Forschungszentrum fu¨r ku¨nstliche … · 2009. 6. 24. · Recursive Descent Parsing Idea: Recursively compute all expansions of a nonterminal at some input

Context-Free Parsing: Summary

Context-free grammars provide you with a finite set ofinfinitely embeddable brackets

Two main approaches to CF recognition: top down(goal-driven) and bottom-up (data driven)

Storing sub-derivations for re-use (dynamic programming)in a chart lead to a polynomial algorithm with worst case n3

The chart offers a compact (polynomial size) storage for apossibly exponential number of results

Earley and Left Corner Parsing improve the averageruntime over the naïve CYK algorithm, and have a betterworst case complexity for some classes of context-freegrammars

Introduction to CL - Context-Free Grammars – p.32/32