Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst...

81
Der Earley-Parser Vorlesung “Computerlinguistische Techniken” Alexander Koller 07. November 2014

Transcript of Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst...

Page 1: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-Parser

Vorlesung “Computerlinguistische Techniken” Alexander Koller

07. November 2014

Page 2: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der CKY-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Hans

Han

s is

st

ein

Käs

ebro

t.

Anfangs-position

Endposition

NP

V

Det

NNPVPS

Chart

isst ein Käsebrot

Page 3: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der CKY-ParserS → S S S → a

a a a

a

a

a

S

S

SSS

S

Page 4: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der CKY-ParserS → S S S → a

a a a

a

a

a

S

S

SSS

S

NB: Chart stellt exponentiell viele Parsebäume in kubischem Platz dar!

Page 5: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Implementierung

• Idee der Datenstruktur: ‣ chart[i][k] = Ch(i+1, k+1)

‣ chart ist eine Liste von Zeilen der Charts

‣ Jede Zeile ist eine Liste von Mengen von NT-Symbolen.

• Initialisierung:chart = []

for in in range(n+1): row = [] for j in range(n+1): row.append(set()) chart.append(row)

Page 6: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Implementierung

for i in range(n): # Terminalregeln for prod in grammar.productions(rhs=words[i]): chart[i][i+1].add(prod.lhs())

for width in range(2, n+1): # Binaere Regeln for i in range(0, n-width+1): for j in range(1, width): nts1 = chart[i][i+j] nts2 = chart[i+j][i+width] for nt1 in nts1: productions = grammar.productions(rhs=nt1) for production in productions: if production.rhs()[1] in nts2: chart[i][i+width].add(production.lhs())

Page 7: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Implementierung: Parser

• Für einen Parser merkt man sich zu jedem Nichtterminal in einer Chartzelle, auf welche (mehreren) Weisen man es bauen kann.

• chart[i][k] ist jetzt Dictionary (statt Menge). ‣ keys(chart[i][k]): Nichtterminale A, die den Teilstring

wi ... wk-1 abdecken können

‣ Eintrag chart[i][k][“A”]: Liste von Backpointern, d.h. Tripeln (B, C, j), die angeben, dass A aus B von i bis j plus C von j bis k gebaut werden kann.

Page 8: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Nicht-binäre Grammatiken

• CKY-Algorithmus verlangt, dass Grammatiken in CNF vorliegen. ‣ insbesondere: Regeln sind alle binär

• Ist das wichtig? Was würde passieren, wenn man CKY mit längeren rechten Seiten verwenden würde?

Page 9: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

CKY: nichtbinäre Version

für alle b von 2 bis n: für alle i1 von 1 bis n-b+1: für alle Produktionen A → B1 ... Br: ir+1 = i+b für alle i2 mit i1 < i2 < ir+1: für alle i3 mit i2 < i3 < ir+1: … für alle ir mit ir-1 < ir < ir+1: wenn Bj ∈ C(ij,ij+1) für alle 1≤ j ≤ r: füge A zu C(i,i+b) hinzu

Page 10: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

CKY: nichtbinäre Version

für alle b von 2 bis n: für alle i1 von 1 bis n-b+1: für alle Produktionen A → B1 ... Br: ir+1 = i+b für alle i2 mit i1 < i2 < ir+1: für alle i3 mit i2 < i3 < ir+1: … für alle ir mit ir-1 < ir < ir+1: wenn Bj ∈ C(ij,ij+1) für alle 1≤ j ≤ r: füge A zu C(i,i+b) hinzu

Laufzeit?

Page 11: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

CKY: nichtbinäre Version

für alle b von 2 bis n: für alle i1 von 1 bis n-b+1: für alle Produktionen A → B1 ... Br: ir+1 = i+b für alle i2 mit i1 < i2 < ir+1: für alle i3 mit i2 < i3 < ir+1: … für alle ir mit ir-1 < ir < ir+1: wenn Bj ∈ C(ij,ij+1) für alle 1≤ j ≤ r: füge A zu C(i,i+b) hinzu

Laufzeit?

Page 12: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

CKY: nichtbinäre Version

für alle b von 2 bis n: für alle i1 von 1 bis n-b+1: für alle Produktionen A → B1 ... Br: ir+1 = i+b für alle i2 mit i1 < i2 < ir+1: für alle i3 mit i2 < i3 < ir+1: … für alle ir mit ir-1 < ir < ir+1: wenn Bj ∈ C(ij,ij+1) für alle 1≤ j ≤ r: füge A zu C(i,i+b) hinzu

Laufzeit?

O(nr+1) !

Page 13: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Nichtbinärer CKY-Algorithmus

• CKY-Algorithmus versucht in jedem Schritt, r Konstituenten zusammenzubauen; im worst-case O(nr+1) Kombinationen. ‣ Rang einer Regel = Länge der rechten Seite

‣ r = Rang der Grammatik = max. Rang der Regeln

• Wenn Grammatik in CNF ist, ist r = 2, Laufzeit wird dann O(n3).

• Geht es auch für beliebige Grammatiken in Zeit O(n3)?

Page 14: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Chomsky-Normalform

• Eine kfG G heißt in Chomsky-Normalform, wenn sie nur zwei Typen von Regeln hat: ‣ A → B C, d.h. genau zwei Nichtterminale

‣ A → a, d.h. genau ein Terminalsymbol

• Für jede kfG G kann man eine kfG G’ in CNF mit L(G) = L(G’) berechnen.

• Aber die Parsebäume von G und G’ sind verschieden.

Page 15: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

CNF: Schritt 1

• Zunächst kümmern wir uns um Auftreten von Terminalsymbolen.

• Für jede Regel der Form A→ α a β: ‣ führe neue Regel A’ → a ein; A’ ist neues NT-Symbol

‣ führe neue Regel A → α A’ β ein

‣ entferne A → α a β aus der Grammatik

• Danach treten Terminale nur noch in Regeln der Form A → a auf.

Page 16: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

CNF: Schritt 2

• Jetzt eliminieren wir Regeln von Rang > 2.

• Für jede Regel der Form A → B1 ... Bn, n > 2: ‣ Entferne die Regel aus der Grammatik.

‣ Führe n-1 neue Regeln ein:A → B1 [A → B1 • B2 ... Bn][A → B1 • B2 ... Bn] → B2 [A → B1 B2 • ... Bn]...[A → B1 ... • Bn-1 Bn] → Bn-1 Bn

• Danach haben alle Regeln Rang ≤ 2.

Page 17: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

CNF: Schritt 3

• Zuletzt eliminieren wir Kettenregeln von der Form A → B.

• Für Regeln A→ α B β und B → C: ‣ füge Regel A → α C β hinzu

• Dann lösche alle Kettenregeln.

• Nun ist kfG in CNF. Sprache ist in jedem Schritt gleich geblieben.

Page 18: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Äquivalenz von kfGs

• Zwei kfGs G und G’ heißen schwach äquivalent, wenn L(G) = L(G’). ‣ d.h. Wortproblem von G und G’ gleich

• Zwei kfGs G und G’ heißen stark äquivalent, wenn sie jedem String die gleichen Parsebäume zuweisen. ‣ d.h. Parsingproblem von G und G’ gleich

Page 19: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

CNF: Parsebäume

• CNF einer kfG ist schwach, aber nicht stark äquivalent.

Hans schenkt Maria Blumen.

NP

V NPNP

VP

S

Hans schenkt Maria Blumen.

NP

V

NPNP

VP

S

[VP → V • NP NP]

CNF-Konversion

Page 20: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 21: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 22: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 23: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 24: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 25: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 26: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 27: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 28: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 29: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 30: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 31: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 32: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 33: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 34: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 35: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 36: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 37: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Parsebaum schrittweise bauen?

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 38: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Nicht-binäre Regeln

• Algorithmus auf dieser Grundlage könnte direkt aus nicht-CNF-Grammatik den Originalbaum berechnen.

• Könnte auch in kubischer Zeit laufen, weil er immer nur zwei Teilstrings auf einmal kombiniert:

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

Page 39: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

OperationenPredict:Will ein S ab Stringposition i bauen,habe Regel S → NP VP: kann versuchen, NP ab i zu bauen.

Scan:Will “Hans” ab Stringposition i bauen,an Position i steht tatsächlich i: habe erfolgreich “Hans” von i bis i+1 geparst.

Complete:Will S ab Position i mit Regel S → NP VPbauen. Habe von i bis j eine NP-Regel vollständig geparst. Deshalb habe ich inS → NP VP Fortschritt gemacht.

Page 40: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-Parser

• Items haben die Form [i, A → α • B β, k]: ‣ Item repräsentiert einen Versuch, eine A-Konstituente

ab Stringposition i zu lesen

‣ indem als erste Regel A → α B β angewendet wird

‣ bis vor Position k sind wir schon gekommen, dabei haben wir ein α gelesen

‣ d.h.: A ⇒ αBβ ⇒* wi ... wk-1 B β (wie vorhin)

• Drei Regeln, um Items zu manipulieren:Predict, Scan, Complete.

Page 41: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Operationen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist RegelPredict

[j, A → α • wi β, i][j, A → α wi • β, i+1]

Scan

[i, A → α • B β, j]

[i, A → α B • β, k]Complete

[j, B → γ •, k]

Page 42: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

Page 43: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1]

Page 44: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1]

Page 45: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1] [1, NP → • Hans, 1]

Page 46: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1] [1, NP → • Hans, 1] [1, NP → Hans •, 2]

Page 47: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1] [1, NP → • Hans, 1] [1, NP → Hans •, 2] [1, S → NP • VP, 2]

Page 48: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1] [1, NP → • Hans, 1] [1, NP → Hans •, 2] [1, S → NP • VP, 2] [2, VP → • V NP NP, 2]

Page 49: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1] [1, NP → • Hans, 1] [1, NP → Hans •, 2] [1, S → NP • VP, 2] [2, VP → • V NP NP, 2] [2, V → • schenkt, 2]

Page 50: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1] [1, NP → • Hans, 1] [1, NP → Hans •, 2] [1, S → NP • VP, 2] [2, VP → • V NP NP, 2] [2, V → • schenkt, 2] [2, V → schenkt •, 3]

Page 51: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1] [1, NP → • Hans, 1] [1, NP → Hans •, 2] [1, S → NP • VP, 2] [2, VP → • V NP NP, 2] [2, V → • schenkt, 2] [2, V → schenkt •, 3] [2, VP → V • NP NP, 3]

Page 52: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1] [1, NP → • Hans, 1] [1, NP → Hans •, 2] [1, S → NP • VP, 2] [2, VP → • V NP NP, 2] [2, V → • schenkt, 2] [2, V → schenkt •, 3] [2, VP → V • NP NP, 3] . . . [2, VP → V NP • NP, 4]

Page 53: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1] [1, NP → • Hans, 1] [1, NP → Hans •, 2] [1, S → NP • VP, 2] [2, VP → • V NP NP, 2] [2, V → • schenkt, 2] [2, V → schenkt •, 3] [2, VP → V • NP NP, 3] . . . [2, VP → V NP • NP, 4]

[2, VP → V NP NP •, 5] . . .

Page 54: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1] [1, NP → • Hans, 1] [1, NP → Hans •, 2] [1, S → NP • VP, 2] [2, VP → • V NP NP, 2] [2, V → • schenkt, 2] [2, V → schenkt •, 3] [2, VP → V • NP NP, 3] . . . [2, VP → V NP • NP, 4]

[2, VP → V NP NP •, 5] [1, S → NP VP •, 5]

. . .

. . .

Page 55: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Earley-Parser im Beispiel

NP

V NPNP

VP

S

Hans schenkt Maria Blumen

[i, A → α • B β, k][k, B → • γ, k]

B → γ ist Regel(P)

[j, A → α • wi β, i][j, A → α wi • β, i+1]

(S)[i, A → α • B β, j]

[i, A → α B • β, k](C)

[j, B → γ •, k]

[1, S’ → • S, 1] [1, S → • NP VP, 1] [1, NP → • Hans, 1] [1, NP → Hans •, 2] [1, S → NP • VP, 2] [2, VP → • V NP NP, 2] [2, V → • schenkt, 2] [2, V → schenkt •, 3] [2, VP → V • NP NP, 3] . . . [2, VP → V NP • NP, 4]

[2, VP → V NP NP •, 5] [1, S → NP VP •, 5] [1, S’ → S •, 5]

. . .

. . .

. . .

Page 56: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-Algorithmus

• Beginne mit Chart, die nur das Item [1, S’ → • S, 1] enthält (S ist Startsymbol; S’ ist frisches “Super-Startsymbol”).

• Wende Predict, Scan, Complete an, so lange es geht.

• Wenn dabei [1, S’ → S •, n+1] abgeleitet wurde, war Wort in der Sprache; sonst nicht.

Alternative, äquivalente Formulierung: Start-Items sind Items der Form [1, S → • γ, 1] für jede Regel S → γ; Ziel-Items sind alle [1, S → γ •, n+1].

Page 57: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 58: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 1

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 59: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 60: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 11, NP → • Hans, 1

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 61: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 2

1, NP → • Hans, 1

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 62: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 63: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 2

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 64: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 65: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 3

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 66: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 32, VP → V • NP, 3

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 67: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 32, VP → V • NP, 3

3, NP → • Det N, 3

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 68: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 32, VP → V • NP, 3

3, NP → • Det N, 33, Det → • ein, 3

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 69: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 32, VP → V • NP, 3

3, NP → • Det N, 33, Det → • ein, 3

3, Det → ein •, 4

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 70: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 32, VP → V • NP, 3

3, NP → • Det N, 33, Det → • ein, 3

3, Det → ein •, 43, NP → Det • N, 4

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 71: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 32, VP → V • NP, 3

3, NP → • Det N, 33, Det → • ein, 3

3, Det → ein •, 43, NP → Det • N, 4

4, N → • kb, 4

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 72: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 32, VP → V • NP, 3

3, NP → • Det N, 33, Det → • ein, 3

3, Det → ein •, 43, NP → Det • N, 4

4, N → • kb, 4

4, N → kb •, 5

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 73: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 32, VP → V • NP, 3

3, NP → • Det N, 33, Det → • ein, 3

3, Det → ein •, 43, NP → Det • N, 4

4, N → • kb, 4

4, N → kb •, 53, NP → Det N •, 5

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 74: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 32, VP → V • NP, 3

3, NP → • Det N, 33, Det → • ein, 3

3, Det → ein •, 43, NP → Det • N, 4

4, N → • kb, 4

4, N → kb •, 53, NP → Det N •, 52, VP → V NP •, 5

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 75: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 32, VP → V • NP, 3

3, NP → • Det N, 33, Det → • ein, 3

3, Det → ein •, 43, NP → Det • N, 4

4, N → • kb, 4

4, N → kb •, 53, NP → Det N •, 52, VP → V NP •, 51, S → NP VP •, 5

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 76: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Der Earley-ParserS → NP VPNP → Det NVP → V NP

V → isstNP → Hans

Det → einN → Käsebrot

Anfangs-position

Punkt-position

1, S’ → • S, 11, S → • NP VP, 1

1, NP → Hans •, 21, S → NP • VP, 2

1, NP → • Hans, 1

2, VP → • V NP, 22, V → • isst, 2

2, V → isst •, 32, VP → V • NP, 3

3, NP → • Det N, 33, Det → • ein, 3

3, Det → ein •, 43, NP → Det • N, 4

4, N → • kb, 4

4, N → kb •, 53, NP → Det N •, 52, VP → V NP •, 51, S → NP VP •, 5

1, S’ → S •, 5

Hans isst ein Käsebrot

Han

siss

tei

nK

.bro

t

PredictScan

Complete

Page 77: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Implementierung

• Wir verwalten Items, mit denen wir noch nichts gemacht haben, in einer Agenda. ‣ Agenda ist eine Queue von Items: Nimm Items vom

Anfang weg, füge neue Items am Ende hinzu.

• Alle Items, die wir jemals gesehen haben, schreiben wir in die Chart. ‣ Eine Menge Si von Items für jede Punktposition i.

‣ Jedes Si = eine Zeile auf der vorherigen Folie.

Page 78: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Implementierung

• So lange es geht: nimm erstes Item [i, A → α • β, k] von der Agenda. ‣ Wenn β leer ist (Punkt am Schluss), dann wende Complete

mit Items in Si an, die auf ein A warten.

‣ Wenn erstes Zeichen in β Terminalsymbol ist, dann wende Scan an.

‣ Wenn erstes Zeichen in β Nichtterminalsymbol B ist, dann wende Predict mit allen Regeln für B an.

‣ Schreibe ein neues Item nur dann auf Agenda, wenn es noch nicht in Chart steht.

• Agenda wird irgendwann leer; dann testen, ob [1, S’ → S •, n+1] in Sn+1 steht oder nicht.

Page 79: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Laufzeit

• Implementierung schreibt jedes Item nur einmal auf die Agenda.

• Wie viele Items gibt es? Am flexibelsten Complete:

• Es gibt O(n3) Instanzen von Complete. Daher gesamte Laufzeit nur O(n3).

• Für manche Klassen von kfGen ist Earley sogarO(n2) oder O(n).

[i, A → α • B β, j]

[i, A → α B • β, k]Complete

[j, B → γ •, k]

Page 80: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Top-down und bottom-up

• Earley-Parser verbindet Elemente von top-down und bottom-up Parsern.

Iteration überRegeln

Iteration überString-Zerlegungen

Recursive Descent top-down top-down

CKY bottom-up bottom-up

Earley top-down(Predict)

bottom-up(Scan, Complete)

Page 81: Der Earley-Parser Earley-Pars… · Der CKY-Parser S → NP VP NP → Det N VP → V NP V → isst NP → Hans Det → ein N → Käsebrot Hans t. Anfangs-position Endposition

Zusammenfassung

• CKY hat Nachteile: ‣ nur für Grammatiken in CNF definiert

‣ nichtbinäre Version hat Laufzeit O(nr+1)

• Earley-Parser: ‣ wendet beim Parsing CNF-Konversion an

‣ und kontrolliert unnötige Arbeit durch Top-Down-Prediction

‣ Laufzeit O(n3) für beliebige kfGs

‣ Korrektheit: zeigen wir nächste Woche allgemeiner.