Lecture Note 3

blabbingunequaledΤεχνίτη Νοημοσύνη και Ρομποτική

24 Οκτ 2013 (πριν από 3 χρόνια και 7 μήνες)

82 εμφανίσεις

1

Chart Parsing

Allen

s Chapter 3

J & M

s Chapter 10



2
Chart Parsing

General Principles:


A
Bottom
-
Up
parsing method



Construct a parse starting from the input symbols



Build constituents from sub
-
constituents



When all constituents on the RHS of a rule are matched, create a
constituent for the LHS of the rule



The
Chart
allows storing partial analyses, so that they can be shared.



Data structures used by the algorithm:



The Key:

the current constituent we are attempting to “match”



An Active Arc:

a grammar rule that has a partially matched RHS



The Agenda:

Keeps track of newly found unprocessed constituents



The Chart:

Records processed constituents (non
-
terminals) that span
substrings of the input

3
Chart Parsing

Steps in the Process:


Input is processed left
-
to
-
right, one word at a time

1. Find all POS of the current word (terminal
-
level)

2. Initialize Agenda with all POS of the word

3. Pick a Key from the Agenda

4. Add all grammar rules that start with the Key as active
arcs

5. Extend any existing active arcs with the Key

6. Add LHS constituents of newly completed rules to the
Agenda

7. Add the Key to the Chart

8. If Agenda not empty


go to (3), else go to (1)


4
The Chart Parsing Algorithm

Extending Active Arcs with a Key:

-
Each
Active Arc

has the form:

<p
i
>

[A


X
1


C…X
m
] <p
j
>

-

A Key constituent has the form: <p
j

>C<p
k
>

-

When processing the Key <p
1
>C<p
2
>, we search the active
arc list for an arc <p
0
>[A


X
1


C…X
m
]<p
1
>, and
then create a new active arc


<p
0
>[A


X
1
…C

… X
m
]<p
2
>

-

If the new active arc is a completed rule:

<p
0
>[A


X
1
…C

]<p
2
>, then we add <p
0
>A<p
2
> to the
Agenda

-

After “using” the key to extend all relevant arcs, it is entered
into the Chart


5
The Chart Parsing Algorithm

The Main Algorithm: parsing input x = x
1
…x
n

1
. i =
0

2
. If Agenda is empty and i < n then set i = i +
1
, find all
POS of x
i

and add them as constituents <p
i
>C<p
i+
1
> to
the Agenda

3
. Pick a Key constituent <p
j
>C< p
k

> from the Agenda

4
. For each grammar rule of form A


CX
1
…X
m
, add

<p
j
>[A




CX
1
…X
m
]<p
j
> to the list of active arcs

5
. Use Key to extend all relevant active arcs

6
. Add LHS of any completed active arcs into the Agenda

7
. Insert the Key into the Chart

8
. If Key is <
1
>S<n> then Accept the input Else goto (
2
)


6
Chart Parsing
-

Example

The Grammar:

(
1
) S


NP VP

(
2
) NP


ART ADJ N

(
3
) NP


ART N

(
4
) NP


ADJ N

(
5
) VP


AUX VP

(
6
) VP


V NP


7
Chart Parsing
-

Example

The input:

“x = The large can can hold the water”

POS of Input Words:



the:
ART



large:
ADJ



can:
N, AUX, V



hold:
N, V



water:
N, V


8
The large

can can hold the water

9
The large

can

can hold the water


10
The large

can can hold

the water


11
The large
can can hold the water


12
The final Chart


13
Time Complexity of Chart Parsing



Algorithm iterates for each word of input (i.e. n iterations)



How many keys can be created in a single iteration i?



Each key in Agenda has the form <p
j
>C< p
i+
1
>,
1


j


i



Thus O(n) keys



Each key <p
j
>C<p
i+
1
> can extend active arcs of the form


<p
k
>[A


X
1


C…X
m
]<p
j
>, for
1


k


j



Each key can thus extend at most O(n) active arcs



Time required for each iteration is thus O(n
2
)



Time bound on entire algorithm is therefore O(n
3
)


14
Improved Chart Parser

Increasing the Efficiency of the Algorithm



Observation: The algorithm creates constituents that
cannot “fit” into a global parse structure. Example:

<
2
>[NP


ADJ N]<
3
>



These can be eliminated using
predictions



Using Top
-
down predictions:



For each non
-
terminal A, define First(A) = the set of all leftmost
non
-
terminals derivable from A



Compute in advance First(A) for all non
-
terminals A



When processing the key <p
j
>C<p
i+
1
> we look for grammar rules
that form an active arc <p
j
>[A



C X
2
…X
m
]<p
j
>



Add the active arc
only
if A is
predicted
: there already exists an
active arc <p
k
>[B


X
1


D…X
m
]<p
j
> such that A


First(D)



For p
k

=
1
(arcs of the form <
1
>[A




C X
2
…X
m
]<
1
>), add the
active arc
only
if A


First(S)


15
Improved Chart Parser
-

Example


16
The large
can can hold
the water


17
The large
can can hold the water


18
19