Der Earley-Algorithmus Kursfolien Karin Haenelt 25.03.02 1 25.03.02 2 Inhalt Funktion des Earley-Algorithmus Begriffe Erkenner/Parser Kontextfreie Grammatik Ein Beispiel Funktionen des Algorithmus Funktionsweise des Algorithmus (Animation) Notationen und Definitionen Produktionsregeln Zustand Look-Ahead-Symbol Formale Spezifikation des Algorithmus Erläuterungen Predictor Scanner Completer
Funktion des Earley-Algorithmus Erkennungs-Algorithmus für Sprachen, die mit kontextfreien Regeln beschrieben werden Primär für formale Sprachen Anwendung auch für natürliche Sprachen 25.03.02 3 Erkenner / Parser Erkenner (Recognizer) Nimmt eine Zeichenkette als Eingabe Akzeptiert / verwirft sie je nach Grammatikregeln Parser Erkenner, der zusätzlich die Ableitungsbäume der Zeichenkette ausgibt 25.03.02 4
G = (V,T,P,S) V T P S Kontextfreie Grammatik Nicht-Terminale Terminale Produktionen Startsymbol Sprache Endliche Menge von Variablen Endliche Menge von primitiven Symbolen Regeln, die die Variabeln untereinander verknüpfen Spezielle Variable Rekursiv durch Nicht-Terminale und Terminale beschrieben 25.03.02 Hopcroft/Ullman, 1988, S. 81-83 5 Ein Beispiel: Darstellung (1) Φ S S NP VP NP dete nomn VP verb Φ S NP VP dete nomn verb der Mensch denkt 25.03.02 6
Ein Beispiel: Darstellung (2) Φ S S NP VP NP dete nomn VP verb S NP VP dete nomn verb der Mensch denkt 0 1 2 3 Kanten des Syntaxbaumes und ihre Abdeckung bezogen auf die Eingabe von der linken Grenze 0 (vor Wort 1) bis zur rechten Grenze 3 (hinter Wort 3) 25.03.02 7 Funktionen des Algorithmus Predictor Scanner Completer Expansion der Non-Terminal- Kategorien Überprüfung der Eingabekette auf Übereinstimmung mit erwarteter terminaler Kategorie Rückkehr zur übergeordneten Non-Terminal-Kategorie nach vollständiger Erkennung einer Non-Terminal-Kategorie 25.03.02 8
Funktionsweise des Algorithmus 0 Φ 11 1 S 10 2 NP 6 VP 3 dete 4 nomn 5 7 verb 9 8 der Mensch denkt 25.03.02 9 Notation: Produktionsregeln (1) a, b, c Terminal-Symbole z.b. - morpho-syntakt. Kategorien wie nomn - lexikalische Zeichen A, B, C Non-Terminal-Symbole z.b. syntakt. Kategorien wie S, NP, VP α, β, γ Ketten von Terminal- oder Non-Terminal- Symbolen λ leere Kette α n α...α (Kette mit n mal vorkommendem α ) α A α R 25.03.02 10 Anzahl der Symbole in α Produktionsregel Wurzel, Non-Terminal-Symbol, das für Satz steht
Notation: Produktionsregeln (2) α β β ist von α direkt abgeleitet, wenn γ, δ, η, A wobei α = γ A δ und β = γ η δ und A η eine Produktion ist α β β ist von α (ggf. über mehrere Produktionen) abgeleitet, wenn Ketten α 0, α 1,..., α m (m α = α 0 α 1... α m = β. 0) wobei Die Folge α 0,..., α m wird Ableitung (von β aus α) genannt 25.03.02 11 Notation: Produktionsregeln (3) X 1... X n k G Eingabe-Kette Anzahl der Look-Ahead-Symbole Grammatik 25.03.02 12
Notation: Instanzen der Produktionsregeln (1) Jedes Vorkommen einer Regel jede Instanz bekommt eine eigene Produktionsnummer S 1 (NP 2 der Mensch) (VP 3 denkt) p Nummer einer Produktion 1,..., d - 1 Anzahl der Produktionen p Anzahl der Symbole auf der rechten Seite einer Produktion D p C p1... C pp 25.03.02 13 Produktion (1=p=d-1) Notation: Instanzen der Produktionsregeln (2) D 0 R Produktion Nr. 0, R ist die Wurzel von G, ist ein neues Terminal-Symbol Terminal-Symbol, das in der Eingabekette nicht vorkommt; als Ketten-Ende- Markierung verwendet 25.03.02 14
Notation: Produktionsregeln Punktschreibweise Punkte in einer Produktionsregel markieren den aktuellen Bearbeitungszustand. Der Punkt steht jeweils vor der nächsten zu erkennenden Konstituente. S NP VP noch keine Konstituente erkannt S NP VP eine Konstituente (NP) erkannt S NP VP zwei Konstituenten (NP und VP) erkannt 25.03.02 15 Definition: Zustand Zustand def: ein Zustand s ist ein Quadrupel s= <p,j, f,α> p Nummer der Produktion, 0 = p = d-1 j Anzahl der erkannten Symbole auf der rechten Seite, 0 = j = p f Linke Grenze der Produktion, 0 = f = n+1 α 25.03.02 16 Zeichenkette, bestehend aus k Symbolen: Look-ahead-String s e s i X i+1 s p j f α p D p C p1.. C pp C p(j+1) Eingabe 0 0 dete 1 0 0 0 2 Φ S S 1 0 dete 2 1 0 0 2 S NP VP NP
Definition: Look-Ahead-Symbole H k (γ) = {α α terminal ist, α = k, und β, so dass γ * αβ} Menge terminaler Ketten, - die k-symbole lang sind und - die eine von γ abgeleitete Kette beginnen Beispiele: H 1 (dete adje nomn) = dete H 1 (NP) = dete 25.03.02 17 LET X n+i = LET S i be empty Add <0,0,0, k > to S 0 FOR i? 0 STEP 1 UNTIL n DO 25.03.02 18 (1 = i = k+1) (0 = i = n+1) Der Algorithmus BEGIN process the states of S i in order performing one of the following three operations on each state s = <p,j,f,α> (1) predictor IF s is nonfinal [ j? p ] AND C p(j+1) is a nonterminal THEN for each q such that C p(j+1) = D q and for each β H k (C p(j+2)... C pp α) add <q,0,i,β> to S i (2) completer IF s is final [ j = p ] AND α = X i+1... X i+k THEN for each <q,l,g,β> S f such that C q(l+1) = D p add <q,l+1,q,β> to S i (3) scanner IF s is nonfinal [ j p] AND C p(j+1) is terminal THEN IF C p(j+1) = X i+1 add <p,j+1,f,α> to S i+1 IF S i+1 is empty, return rejection IF i=n AND S i+1 = {<0,2,0, >}, return acceptance END
Die Agenda Ein Beispiel s e s i X i+1 s p j f α p D p C p1.. C pp C p(j+1) Eingabe 0 0 dete 1 0 0 0 2 Φ S S 1 0 dete 2 1 0 0 2 S NP VP NP 2 0 dete 3 2 0 0 verb 2 NP dete nomn dete 3 1 nomn 4 2 1 0 verb 2 NP dete nomn nomn der 4 2 verb 5 2 2 0 verb 5 2 verb 6 1 1 0 6 2 verb 7 3 0 2 7 3 8 3 1 2 8 3 9 1 2 0 9 3 10 0 1 0 10 4 11 0 2 0 25.03.02 19 2 NP 2 S 1 VP 1 VP 2 S 2 Φ 2 Φ dete nomn - Mensch NP VP VP verb verb verb - denkt NP VP - S S Predictor (1) predictor IF s is nonfinal [ j p] AND C p(j+1) is a nonterminal THEN for each q such that C p(j+1) = D q and for each β H k (C p(j+2)... C pp α) add <q,0,i,β> to S i Eingelesener Zustand <p,j,f,α> in S i Zustand 1 Φ S Erzeugter Zustand <q,0,i,β> in S i Zustand 2 S NP VP s e s i X i+1 s p j f α 0 0 dete 1 0 0 0 1 0 dete 2 1 0 0 p D p 2 Φ 2 S C p1.. C pp C p(j+1) S S NP VP NP 25.03.02 20
Scanner (3) scanner IF s is nonfinal [ j p ] AND C p(j+1) is terminal THEN IF C p(j+1) = X i+1 add <p,j+1,f,α> to S i+1 Eingelesener Zustand <p,j,f,α> in S i Zustand 3 NP dete nomn Erzeugter Zustand <p,j+1,f,α> in S i+1 Zustand 4 NP dete nomn s e s i X i+1 s p j f α p D p C p1.. C pp C p(j+1) Eingabe 2 0 dete 3 2 0 0 verb 2 NP dete nomn dete 3 1 nomn 4 2 1 0 verb 2 NP dete nomn nomn der 25.03.02 21 (2) completer Completer IF s is final [ j = p ] AND α = X i+1... X i+k THEN for each <q,l,g,β> S f such that C q(l+1) = D p add <q,l+1,q,β> to S i Eingelesener Zustand <p,j,f,α> in S i Zustand 5 NP dete nomn Mutter-Zustand <q,l,g,β> in S f Zustand 2 S NP VP Erzeugter Zustand <q,l+1,g,β> in S i Zustand 6 S NP VP s e s i X i+1 s p j f α p D p 0 0 dete 1 0 0 0 1 0 dete 2 1 0 0 2 0 dete 3 2 0 0 verb 3 1 nomn 4 2 1 0 verb 4 2 verb 5 2 2 0 verb 25.03.02 22 C p1.. C pp C p(j+1) Eingabe 2 Φ S S 2 S NP VP NP 2 NP dete nomn dete 2 NP dete nomn nomn der 2 NP dete nomn - Mensch 5 2 verb 6 1 1 0 2 S NP VP VP
Literatur Earley, Jay (1970): An Efficient Context-Free Parsing-Algorithm. In: Communications of the ACM, 6 (8), 451-455. Haenelt, Karin (2001): Der Earley-Algorithmus. Eine Erläuterung der formalen Spezifikation mit linguistischen Beispielen. Kursskript. 25.07.2001. http://kontext.fraunhofer.de/haenelt/kurs/folien/earley -Tutor.doc Hopcroft, John E. und Jeffrey D. Ullman (1988): Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. Addison-Wesley. 25.03.02 23