Parsing – Zusammenfassung Daniel Bruder Oct/Nov 2012 2.2.1 2.2.2 2.2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 Teil III: Chart-Parsing 3.1 Kapitel 6: Bottom-Up-Chart-Parsing . . . . . . . . . . . . . . . . . . . . . 3.1.1 Ein genereller Bottom-Up-Chart-Parser . . . . . . . . . . . . . . . 3.1.2 Der Cocke-Kasami-Younger-Algorithmus . . . . . . . . . . . . . . Berechnung einer einfachen Analysematrix . . . . . . . . . . . . . Berechnung einer komplexen Analysematrix . . . . . . . . . . . . Zeit- und Speicherbedarf des Cocke-Kasami-Younger-Algorithmus 3.1.3 Implementierung der Algorithmen . . . . . . . . . . . . . . . . . . Prolog-Implementierung des generellen Bottom-Up-Chart-Parsers . Repräsentation des Lexikons und der Grammatik . . . . . . Hauptprädikate . . . . . . . . . . . . . . . . . . . . . . . . Der Cocke-Kasami-Younger-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 6 6 6 6 6 6 6 6 6 6 Contents 1 2 Teil I: Grundlagen 1.1 Kapitel 1: Was ist Parsing? . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Parsing und Compilerbau . . . . . . . . . . . . . . . . . . . 1.1.2 Parsing und Kognitive Psychologie . . . . . . . . . . . . . 1.1.3 Parsing in der Computerlinguistik . . . . . . . . . . . . . . Die Rolle von Parsern in natürlichensprachlichen Systemen Parsing natürlicher Sprache . . . . . . . . . . . . . . . . . Grammatikformalismen . . . . . . . . . . . . . . . . . . . 1.2 Kapitel 2: Begriffe & Repräsentationen . . . . . . . . . . . . . . . 1.2.1 Einige grundlegende Begriffe . . . . . . . . . . . . . . . . 1.2.2 Zur Klassifikation von Parsingalgorithmen . . . . . . . . . Verarbeitungsrichtung . . . . . . . . . . . . . . . . . . . . Analyserichtung . . . . . . . . . . . . . . . . . . . . . . . Suchstrategien . . . . . . . . . . . . . . . . . . . . . . . . 1.2.3 Komplexität und Effizienz . . . . . . . . . . . . . . . . . . Zur Bewertung von empirischen Tests von Parsingsystemen 1.2.4 Rpräsentation des linguistischen Wissens . . . . . . . . . . 1.2.5 Die Beschreibung von Algorithmen und Prozeduren . . . . Der Beschreibungskopf . . . . . . . . . . . . . . . . . . . . Der Spezifikationsteil . . . . . . . . . . . . . . . . . . . . . Der Operationsteil . . . . . . . . . . . . . . . . . . . . . . Teil II: Elementare Analysealgorithmen 2.1 Kapitel 3: Top-Down-Parsing . . . . . . . . . . 2.1.1 Grundzüge . . . . . . . . . . . . . . . 2.1.2 Kontrollstrukturen . . . . . . . . . . . Depth-first-Parsing mit Backtracking . Breadth-first-Parsing ohne Backtracking 2.1.3 Grenzen des Top-Down-Parsings . . . . 2.1.4 Implementierung . . . . . . . . . . . . Lisp . . . . . . . . . . . . . . . . . . . Prolog . . . . . . . . . . . . . . . . . . 2.2 Kapitel 4: Bottom-Up-Parsing . . . . . . . . . 3.2 3.3 3.4 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 . . . . . . . . . . 4 4 4 4 4 4 4 5 5 5 5 Berechnung einer einfachen Analysematrix . . . . . . . . . . Berechnung einer komplexen Analysematrix . . . . . . . . . Generierung von Strukturbeschreibungen . . . . . . . . . . . Kapitel 7: Der Earley-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Unterschiede zwischen dem Cocke-Kasami-Younger- und dem EarleyAlgorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Darstellung des Erkennungsalgorithmus . . . . . . . . . . . . . . . . Version 1: Berechnung der Chart durch Vorwärtsbewegung . . . . . . Version 2: Zwischenspeicherung neuer Kanten . . . . . . . . . . . . 3.2.3 Erweiterung des Algorithmus . . . . . . . . . . . . . . . . . . . . . Tilgungs- und Kettenregeln . . . . . . . . . . . . . . . . . . . . . . . Look-ahead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4 Die Generierung von Strukturbeschreibungen . . . . . . . . . . . . . Explizite Repräsentation . . . . . . . . . . . . . . . . . . . . . . . . Implizite Repräsentation . . . . . . . . . . . . . . . . . . . . . . . . 3.2.5 Implementierung der Algorithmen . . . . . . . . . . . . . . . . . . . Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Repräsentation des linguistischen Wissens . . . . . . . . . . . Hauptprädikate . . . . . . . . . . . . . . . . . . . . . . . . . Hilfsprädikate . . . . . . . . . . . . . . . . . . . . . . . . . . Lisp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Der Recognizer . . . . . . . . . . . . . . . . . . . . . . . . . Der Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kapitel 8: Insel-Parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Notwendige Modifikationen des Earley-Algorithmus . . . . . . . . . Datenstrukturen und Operationen . . . . . . . . . . . . . . . . . . . Berechnung der Chart durch Vorwärtsbewegung . . . . . . . . . . . Zwischenspeicherung der neu generierten Kanten . . . . . . . . . . . 3.3.2 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kantenselektoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . Identifikation der Inseln im Satz . . . . . . . . . . . . . . . . . . . . Die Hauptfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . Kapitel 9: ID/LP-Syntaxen . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Motivation für den ID/LP-Algorithmus . . . . . . . . . . . . . . . . 3.4.2 Parsen mit ID/LP-Syntaxen . . . . . . . . . . . . . . . . . . . . . . Indirektes Parsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . Direktes Parsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shiebers Algorithmus . . . . . . . . . . . . . . . . . . . . . Bartons Repräsentation . . . . . . . . . . . . . . . . . . . . . 3.4.3 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lisp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Spezielle Funktionen zum Verarbeiten von ID/LP-Syntaxen . Teil IV: Deterministisches Parsen 4.1 Kapitel 10: LR-Parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 3 1 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 Grundzüge . . . . . . . . . . . . . . . . . . . . . . Ein deterministischer Shift-reduce-Recognizer . . . Ein Shift-reduce-Recognizer mit Backtracking . . . Daten und Prozeduren . . . . . . . . . . . . . . . . Backtracking . . . . . . . . . . . . . . . . . . . . . 2.2.4 Vom Recognizer zum Parser . . . . . . . . . . . . . 2.2.5 Ein Shift-reduce-Parser in Prolog . . . . . . . . . . Die Repräsentation der Stacks und Regeln . . . . . . Programmstruktur . . . . . . . . . . . . . . . . . . Das Programm im Überblick . . . . . . . . . . . . . 2.2.6 Ein breadth-first arbeitender Shift-reduce-Recognizer 2.2.7 Ein Shift-reduce-Recognizer in Lisp . . . . . . . . . Kapitel 5: Left-Corner-Parsing . . . . . . . . . . . . . . . . 2.3.1 Grundzüge . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Ein Left-Corner-Erkennungsalgorithmus . . . . . . 2.3.3 Ein Left-Corner-Parsingalgorithmus . . . . . . . . . 2.3.4 Left-Corner-Parsing mit Look-ahead . . . . . . . . . 2.3.5 Left-Corner-Parsing in Lisp . . . . . . . . . . . . . Der Recognizer . . . . . . . . . . . . . . . . . . . . Der Parser . . . . . . . . . . . . . . . . . . . . . . . 2.3.6 Das BUP-System . . . . . . . . . . . . . . . . . . . Das Kernprogramm als Recognizer . . . . . . . . . Optimierung: Die LINK-Relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.2 LR-Syntaxen . . . . . . . . . . . . . . . . . . . . . . . . . . LR-Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ein Algorithmus zur Generierung kanonischer LR(1)-Tabellen Effiziente Repräsentation von LR-Parsingtabellen . . . . . . . Implementierung . . . . . . . . . . . . . . . . . . . . . . . . Lisp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prolog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kapitel 11: Der Tomita-Algorithmus . . . . . . . . . . . . . . . . . . 4.2.1 LR-Parsing beliebiger kontextfreier Syntaxen . . . . . . . . . 4.2.2 Stack-Listen . . . . . . . . . . . . . . . . . . . . . . . . . . Baum-strukturierter Stack . . . . . . . . . . . . . . . . . . . Graph-strukturierter Stack . . . . . . . . . . . . . . . . . . . Effiziente Strukturverwaltung . . . . . . . . . . . . . . . . . 4.2.3 Der Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . Der Erkennungsalgorithmus . . . . . . . . . . . . . . . . . . Der Parsingalgorithmus . . . . . . . . . . . . . . . . . . . . 4.2.4 Komplexität . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.5 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . 5 Teil V: Unifikationsbasierte Grammatikformalismen 5.1 Kapitel 12: Definite Clause Grammatiken . . . . . . . . . . . 5.1.1 Syntaktische Regeln als logische Ausdrücke . . . . . . 5.1.2 Differenzlisten . . . . . . . . . . . . . . . . . . . . . 5.1.3 Vom Recognizer zum Parser . . . . . . . . . . . . . . 5.1.4 Nicht-kontextfreie Erweiterungen . . . . . . . . . . . 5.1.5 Ein Earley-basierter Parser für DCGs . . . . . . . . . 5.2 Kapitel 13: Ein Chart-Parser für unifikationsbasierte Syntaxen 5.2.1 Indirektes Parsen . . . . . . . . . . . . . . . . . . . . 5.2.2 Direktes Parsen . . . . . . . . . . . . . . . . . . . . . Repräsentation von Regeln und Kategorien . . . . . . Parsen mit merkmalsbasierten Syntaxen . . . . . . . . 5.2.3 Implementierung . . . . . . . . . . . . . . . . . . . . 6 Glossar 7 Überblick 1 1.1 Teil I: Grundlagen Kapitel 1: Was ist Parsing? Sprachanalysemethode Annahme: 7 • Grammatik ist formal bzw. formalisierbar. 7 • Grammatiken sind komplexe Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 8 8 9 9 9 9 9 9 9 9 9 10 – die in systematischer Form phonologische, morphologische, . . . pragmatische Informationen üver eine natürliche Sprache repräsentieren • Es gibt für Grammatiken – formale Adäquatheitskriterien: Konsistenz, Entscheidbarkeit, . . . – empirische Adäquatheitskriterien: Beobachtungs-, Beschreibungs-, lärungsadäquatheit Erk- • PP-Attachment: Im Deutschen Präpositionalphrasen sowohl attibutiv als auch adverbiell möglich → 2 syntaktische Strukturbeschreibungen mit unterschiedlichen Lesarten: “Der Mann sah die Frau mit dem Fernrohr” • Anaphernresolution: Reflexiv- und Reziprokpronomina (sich, einander, herself, each other). Es gibt Anaphern, die nur koreferentiell mit Nominalphrasen in der Nähe interpretiert werden können (Frage, was als Kopf der NP erkannt wird: Bill oder John, dann ist ein Satz ungrammatisch): – Bill believes that John hurt himself – Bill believes that John hurt him • Zu fast allen Grammatikformalismen wurden auch Parsingalgorithmen entwickelt – – – – – Unifikationsgrammatiken: PATR-II, GPSG, LFG, HPSG, . . . Tree Adjoining Grammars (TAGs) Dependenzgrammatiken Kategorialgrammatiken System, die sich an der Government-&-Binding-Theorie orientieren (“parameterbased parsing”) • Garden-Path-Sätze – Sätze, wo lokale zunächst niht offensichtliche syntaktische Ambiguität auftreten und erst spät aufgelöst werden: v.a. bei Relativsätzen im Englischen, die ohne “that” oder “who” eingeleitet werden können: ∗ “the horse raced past the barn” ∗ “the horse raced past the barn fell” (erst mit zweitem finiten Verb andere Bedeutung.) • Parsing ist: – Prüfen auf Grammatikalität (Korrektheit) + Interpretation (Strukturbeschreibung) • Faktoren: 1.1.1 – Können auch Mehrfachverschachtelt sein 1.1.3 Parsing in der Computerlinguistik – Eingabe: natürlichsprachliche Ausdrücke oder einer formalen Sprache Die Rolle von Parsern in natürlichensprachlichen Systemen – Ausgabe: Strukturbeschreibung (verschiedene Möglichkeiten der Repräsentation), Parsing natürlicher Sprache wichtigste: Baumdiagramme, Attribut-Wert-Matrizen (Merkmalsstrukturen) Grammatikformalismen – Parser: 1.2 Kapitel 2: Begriffe & Repräsentationen Parsing und Compilerbau Notwendigkeit der Maschinensprache -> höhere Programmiersprachen -> Parsing notwendig zur Kompilierung Schritte: 1. Syntaktische Analyse: ergibt Strukturbeschreibung (SB) (Das ist der Parsing-Teil über lexikalische Analyse.) 2. Semantische Analyse: Verwenden der SB zur Generierung eines Maschinenprogramms (M) mit derselben Semantik: Abbilden von SB -> M. Lexikalische Analyse(↑)/Syntaktische Analyse dient auch in natürlichsprachlichen Systemen dazu, semantische Operationen zu unterstützen. Strukturbaum/Teilbaum = Schema → Anweisungen mit intendierter Semantik zugeordnet. Unterschied nat. Sprache vs. künstlicher Sprache: Maß an Vagheit & Ambiguität Fundamentale Begriffe, verschiedene Kriterien zur Klassifikation von Parsingalgorithmen. Möglichkeiten der Repräsentation linguistischen Wissens diskutieren. 1.2.1 Einige grundlegende Begriffe Parser Algorithmus Erkennungsalgorithmus Verfahren, um für eine Kette w von Symbolen zu entscheiden ob sie zu der durch die Syntax G festgelegten Sprache L(G) gehört oder nicht, wobei G eine beliebige Syntax eiens zuvor spezifizierten Typs sein kann. Parsingalgorithmus im Unterschied zu Erkennungsalgorithmus wird nicht nur boolescher Wert zurückgegeben wird, sondern auch Strukturbeschreibungen für w (Strukturbeschreibungen können in verschiedenen Repräsentationsformaten zurückgegeben werden). 1.1.2 Parsing und Kognitive Psychologie Analysealgorithmen für verschiedene Syntaxtypen: • deterministische kontextfreie Sprachen Fragestellungen der Psycholinguistik: • kontextfreie Sprachen in Chomsky-Normalform • Wie verarbeitet Mensch Sprache? • diverse Arten von kategorialen Syntaxen • Welche kognitiven Prozesse und mentalen Zustände spielen dabei eine Rolle? • etc. • Wie hängt die sprachliche Kompetenz mit Performanz mit anderen kognitiven Fähigkeiten Parser-Generator: abstrakte Maschine 2. Grades: generiert aus Syntax einen Parser eines und Verhaltensweisen zusammen? bestimmten Parsingalgorithmus. Psycholinguistsiche Untersuchungen mit Bezügen zur Parsingtheorie: 1.2.2 Zur Klassifikation von Parsingalgorithmen 3 Kriterien: • Verarbeitungsrichtung • Analyserichtrung • Suchstrategie Verarbeitungsrichtung • Unidirektionale [. . . ] • Bidirektionale [. . . ] Analyserichtung • Unidirektionale [. . . ] • Top-Down [. . . ] • Bottom-Up [. . . ] • Bidirektionale [. . . ] Suchstrategien • Deterministische und Nicht-deterministische Algorithmen • Parsing als Suchproblem 1.2.3 Komplexität und Effizienz Zur Bewertung von empirischen Tests von Parsingsystemen 1.2.4 Rpräsentation des linguistischen Wissens 1.2.5 Die Beschreibung von Algorithmen und Prozeduren Der Beschreibungskopf Der Spezifikationsteil Der Operationsteil 2 Teil II: Elementare Analysealgorithmen Hier: Elementare, einfachste Analysealgorithmen. Geeignet für bel. kontextfreie Sprachen. Unterscheidung durch Analyserichtung. Verarbeitung top-down, bottom-up oder, als Mischform: left-corner. Charakteristisch für alle: Keine Speicherung von Zwischenergebnissen. Es kann Vorkommen, dass Satzabschnitt mehrfach auf dieselbe Art und Weise analysiert wird. Bsp: S -> NP S S -> NP Aux VP S -> NP VP PP S -> NP VP • Kontrollstruktur [. . . ] • Komplexität: alle hier vorgestellten polynomiell. 2.1 Kapitel 3: Top-Down-Parsing Bei Top-Down kann gearbeitet werden mit: • Depth-first-Suche mit Backtracking • Breadth-first-Suche 2.1.1 Grundzüge von oben nach unten gerichteter Aufbau. Beginn vom Startsymbol der Syntax. Suche nach Ableitung. Suche nach Ableitung die Schritt für Schritt erlaubt, eine oder ggfs. mehrere Strukturbeschreibungen für die Eingabekette zu generieren. 2.1.2 Kontrollstrukturen Parsen ist nicht-deterministischer Prozess: Es gibt Situationen wo mehrere alternative Regeln angewendet werden können. Jede Regeln repräsentiert eine Möglichkeit, die begonnene Ableitung fortzusetzen. diese lassen sich in Baum repräsentieren. Begonnen Ableitung muss sich aber dann nicht fortsetzen lassen. Depth-first-Parsing mit Backtracking RECOGNIZE-TD-DF: immer nur eine Ableitung des Satzes verfolgen und andere mögliche Ableitung erst untersuchen nachdem die aktuelle Ableitung terminiert ist. Informationen über andere mögliche Ableitungen werden in Stack gespeichert. Wenn mehrere Ableitungsmöglichkeiten, dann Eintrag in Stack. Vorzüge des Algorithmus (abgesehen von Aufwand für Stackverwaltung): durch minimale Änderungen einzelner Operationen verschiedene Suchstrategien realisierbar (bspw. LIFO == Stack == Depth-first vs. FIFO == Queue == Breadth-first.). STRUKTUR lässt sich als weitere Avriable mitführen. Enthält Liste der Regeln, die bei der aktuellen Ableitung verwendet wurden: Bei erfolgreicher Terminierung des Ableitungsprozesses wird aus dieser Regelfolge die Strukturbeschreibung generiert. Danach Backtracking – so lange der Stack nicht leer ist. Breadth-first-Parsing ohne Backtracking Letzte Variante des TD-Parsings. Diese ohne Backtracking. Bei jeder Ableitungs-Verzweigung iwrd Prozess gestartet, der diese Ableitung verfolgt. Algorithmus terminiert, wenn alle Analysemöglichkeiten für einen Satz untersucht wurden. Prozesse werden separat gefürht: paraller Parser bietet sich an. RECOGNIZE-TD-BF beginnt wieder am Startsymbol für Satz w. 2.1.3 Grenzen des Top-Down-Parsings Schell implementierbar, geeignet für kontextfreie Sprachen (für jede kontextfreie Sprache kann Syntax angegeben werden). Es können aber nicht beliebige kontextfreie Synaxen mit diesen Algorithmen verarbeitet werden: • Syntax darf nicht linksrekursiv sein (bei Verarbeitungsrichtung links → rechts) bzw. rechtsrekursiv (Verarbeitungsrichtung RTL). Sonst Terminierung nicht sichergestellt. Beispiel-Grammatik die immer weiter wächst: AP -> AP adj AP -> adj Oft aber ist eine Linksrekursion in der Grammatik weniger leicht erkennbar (v.a. wenn Syntax Tilgungsregeln oder/und unäre Regeln hat). 1. Jeder linksrekursive kontextfreie Syntax lässt sich aber in schwach äquivalente kontextfreie Syntax umschreiben, die nicht linksrekursiv ist. Linksrekursive Regeln sind aber oft linguistisch motiviert und daher Reformulierung der Syntax nicht akzeptabel. 2. Bei Syntax ohne Tilgungsregeln andere Lösung: Ableitungs eines Satzes muss nur dann weiterverfolgt werden wenn Zahl der Symbole >= übrige Worte ist. 2.1.4 Implementierung 2.3 Prolog 2.2 2.2.1 2.2.6 Ein breadth-first arbeitender Shift-reduce-Recognizer 2.2.7 Ein Shift-reduce-Recognizer in Lisp Lisp Kapitel 4: Bottom-Up-Parsing Grundzüge Bottom-Up-Parser arbeiten datengesteuert, d.h. sie versuchen w in einem oder mehreren Schritten auf das Startsymbol der Syntax zurückzuführen. Die Regeln der Syntax werden dabei von rechts nach links angewendet: Die Symbole einer rechten Regelseite werden durch das Symbol auf der linken Regelseite ersetzt. Diese Ersetzungsrichtung wird “Reduktion” genannt. Ein Satz wird akzeptiert wenn es gelingt, eine Folge von Reduktionsschritten zu finden, die ihn auf das Startsymbol der Syntax reduziert. Wichtigste Klasse: shift-reduce-Parser. Name von den beiden Operationen. Operationen sind Manipulationen des Stacks. Stack enthält Satz w, bzw. den noch nicht analysierten Satzabschnitt, ein anderer Stack für Zwischenergebnis. Verarbeitungsrichtung meist LTR. Schritt 1: Wort w von Stack1 nach Stack2 (shift) Schritt 2: Versuch, Stackinhalt von Stack2 mithilfe von Syntaxregeln zu reduzieren (reduce). Schritt 3: Wenn keine weitere Reduktion möglich, dann Schritt 1, nächstes Wort. Restriktionen für Syntaxen: • ok: links-/rechtsrekursive Regeln. • nicht-ok: Tilgungsregeln und unären Regeln die zu Zyklen führen • Syntax muss also syklenfrei sein und keine Tilgungsregeln enthalten! – (um sicherzustellen dass Analyse terminiert.) Kapitel 5: Left-Corner-Parsing 2.3.1 Grundzüge Left-Corner-Parser verbinden Aspekte des Bottom-Up-Parsings mit denen des Top-DownParsings: • Für reines Bottom-Up-Parsing ist es charakteristisch, dass eine Regel k0 → − > k1 , . . . kn nur dann angewendet werden kann, wenn für jede Kategorie k_i (1 <= i <= n) bereits eine vollständige Teilstruktur gefunden wurde. • Für Left-Corner-Parsing ist es nur erforderlich, dass bereits eine von k_1 dominierte Struktur erkannt wurde (linke Ecke einer Regel) – diese Regel wird dann verwendet, um sowohl Annahmen über die k_1 dominierende Kategorie als auch über die die nachfolgenden Konstituenten zu formulieren. • Zusammenfassend: – linke Ecke einer Regel wird Bottom-Up erkannt – der Rest top-down verarbeitet. [. . . ] 2.3.2 Ein Left-Corner-Erkennungsalgorithmus 2.3.3 Ein Left-Corner-Parsingalgorithmus 2.3.4 Left-Corner-Parsing mit Look-ahead 2.3.5 Left-Corner-Parsing in Lisp Der Recognizer Der Parser – Tilgungsregel könnte sonst beliebig oft angewendet werden, um Stack2 zu reduzieren. 2.3.6 Das BUP-System – normalerweise sinkt nämlich Größe von Stack2 monoton. 2.2.2 Ein deterministischer Shift-reduce-Recognizer 2.2.3 Ein Shift-reduce-Recognizer mit Backtracking Daten und Prozeduren Backtracking 2.2.4 Vom Recognizer zum Parser 2.2.5 Ein Shift-reduce-Parser in Prolog Die Repräsentation der Stacks und Regeln Programmstruktur Das Programm im Überblick Gegen Ineffizienz sollte man Zwischenergebnisse abspeichern → Chart. Chart ist abstrakter Datentyp, charakterisiert durch konstituierenden Objekte und auf diesen Objekten definierten Operationen. Chart meist als Vektor, Matrix oder azyklischer Graph repräsentiert. Objekte in Chart: “Kanten”. Aktive und passive Kanten. Aktive Kante: partiell erkannte Konstituente des Satzes Passive Kate: vollständig erkannte Konstituente Informationen einer Kante: • kategorialer Typ der repräsentierten Konstituente • Angabe des Satzabschnitts, über den sie sich erstreckt • bei aktiven Kanten: Spezifikation des schon erkannten und des noch zu erkennenden Teils der Konstituente Abschnitte eines Satzes über Positionen zwischen den Wörtern nummeriert, dann Verweis auf Indizes. Operationen fügen Kanten in die Chart ein, 2 Typen: • Operationen, die passive Kanten auf Grundlage des verfügbaren lexikalischen Wissens in die Chart eintragen • Operationen, die abhängig von schon in der Chart enthaltenen Kanten und dem verfügbaren syntaktischen Wissen weitere (aktive/passive) Kanten erzeugen. [. . . ] 3.1 Optimierung: Die LINK-Relation 3 Teil III: Chart-Parsing Ad Bisherige, einfache Parsing-Algorithmen: • Pro: anders als die meisten v.a. im Compilerbau verwendeten Algorithmen (zB LL oder LR-Parsingalgorithmen) insofern für cl-Zwecke geeignet, als sie prinzipiell die Analyse bel. kontefreier Sprache ermöglichen. • Contra: – starke Restriktionen bzgl. der Klasse der Syntaxen, die sie verarbeiten können: ∗ keine links-/rechtsrek. REgeln bei TD ∗ keine Tilgungsregeln bei BU und LC – ineffizient: da unabhängig von Kontrollstrategie (depth-frist mit backtracking / quasiparallele breadth-first-Suche) nichtverhindert werden kann, dass ein Satzabschnitt mehrfach auf dieselbe Art und Weise analysiert wird. Repräsentation des Lexikons und der Grammatik Hauptprädikate Der Cocke-Kasami-Younger-Algorithmus Berechnung einer einfachen Analysematrix Berechnung einer komplexen Analysematrix Generierung von Strukturbeschreibungen 3.2 Kapitel 7: Der Earley-Algorithmus Earley-Darstellung im Gegensatz zum CKY. Erst: Erkennungsalgorithmus für kontextfreie Syntaxen ohne Tilgungs- und Ersetzungsregeln., dann: Varianten für beliebige kontextfreie Syntaxen 3.2.1 Unterschiede Algorithmus Ein genereller Bottom-Up-Chart-Parser zwischen dem Cocke-Kasami-Younger- Berechnung einer einfachen Analysematrix Berechnung einer komplexen Analysematrix – Tilgungs- und Ersetzungsregeln möglich. • Passive und aktive Kanten werden in die Chart eingetragen • CKY ist rein Bottom-Up – und weist die charakteristischen Mängel auf: es werden Konstituenten gebildet, ohne daß sichergestellt ist, ob sie zu größern Konstituenten kombiniert werden können (angeblich 80% meist nicht höher kombinierbar). Tilgungs- und Kettenregeln Look-ahead 3.2.4 Die Generierung von Strukturbeschreibungen Explizite Repräsentation Implizite Repräsentation 3.2.5 Implementierung der Algorithmen Prolog Repräsentation des linguistischen Wissens 3.1.3 Hauptprädikate Prolog-Implementierung des generellen Bottom-Up-Chart-Parsers Earley- – links-/rechtsrekursiv möglich Zeit- und Speicherbedarf des Cocke-Kasami-Younger-Algorithmus Implementierung der Algorithmen dem – keine CNF nötig Idee: zuerst lexikalische Kanten bilden für alle Wörter des Satzes. D.h. Kanten die Kon3.2.2 Darstellung des Erkennungsalgorithmus stituenten repräsentierten, deren Wurzel mit einer lexikalischen Kategorie etikettiert ist (zb [1 N 1]) – alle anderen Kanten sind dann syntaktische Kanten. Dann: nach Regeln Kombination Version 1: Berechnung der Chart durch Vorwärtsbewegung zu neuen (syntaktischen) Kanten, bis keine mehr gefunden werden können. Version 2: Zwischenspeicherung neuer Kanten 3.1.2 Der Cocke-Kasami-Younger-Algorithmus 3.2.3 Erweiterung des Algorithmus Kann als Spezialfall des generellen Bottom-Up-Parsers gesehen werden. Syntax: ChomskyNormalform → Vereinfachung, effizienter. Chart: als Pyramide, da nur weniger Felder verwendet werden. Untere Zeile: nur lexikalische Kategieren der Wörter Indizes der Felder: zeigen an, welcher Satzabschnitt abgedeckt wird. Inhalt des Feldes: enthält lexikalische/syntaktische Kategoriensymbole Variante: Inhalt des Feldes trägt zusätzlich die beiden Subkonstituenten, die Eintrag ins Feld legitimieren. und Unterschiede: • Earley erlaubt beliebige KFS: Kapitel 6: Bottom-Up-Chart-Parsing Zwei Bottom-Up-Chart-Parser: genereller, CKY keine Zyklen, keine Tilgungen, bei CKY: Chomsky-Normalform (effizienter) 3.1.1 Das Kernprogramm als Recognizer Hilfsprädikate Lisp Shiebers Algorithmus Der Recognizer Bartons Repräsentation Der Parser 3.4.3 Implementierung 3.3 Lisp Kapitel 8: Insel-Parsing Grundlage: Earley-Parser. Verarbeitungsrichtung: nicht unidirektional: also nicht LTR, sondern kann Inseln markieren und die Analyse in beide Richtungen fortsetzen. ### Motivation für Insel-Parsing Motivation: vor allem in Verarbeitung akustischer Signale, kann es äußerst schwierig werden, die für das Parsen relevanten Einheiten eindeutig zu identifizieren. Bei akustisch-phonetischer Analyse normalerweise nicht Folge von Wortformen sondern eine Menge z.T. inkompatibler Worthypothesen (die zu ganz unterschiedlichen Analyseergebnissen führen können). 3.3.1 Notwendige Modifikationen des Earley-Algorithmus Datenstrukturen und Operationen Berechnung der Chart durch Vorwärtsbewegung Zwischenspeicherung der neu generierten Kanten 3.3.2 Implementierung Kantenselektoren Identifikation der Inseln im Satz Die Hauptfunktionen 3.4 Kapitel 9: ID/LP-Syntaxen Versuch, fundamentale methodologische Hauptprobleme zu lösen: Hierarchische Organisation linguistischer Beschreibungsebenen. Neuere Formalismen modular organisiert (und meist unifikationsbasiert). Postulieren “unabhängige” Komponenten, diese interagieren relativ frei miteinander. Kontextfreie Phrasenstrukturregeln werden ersetzt durch “Immediate-dominance”- und “Linearprecedence”-Regeln (ID/LP). Zuerst: ID/LP erläutern, dann: 2 Varianten des Earley-Algorithmus, die direkte Verarbeitung von ID/LP-Syntaxen ermöglichen. 3.4.1 Motivation für den ID/LP-Algorithmus ID/LP aus GPSG (Generalisierte Phrasen Struktur Grammatik). Weiter modifiziert zu HPSG (Head-driven Phrase Structure Grammar). Problem: kontextfreie Regeln vermischen 2 unterschiedliche Typen von syntaktischen Relationen, die es verhindern, wichtige Generalisierungen explizit auszudrücken: Jede KF-Regel drückt gleichzeitig Dominanz-Beziehung zwischen Symbol auf der linken und den auf der rechten Seite aus und diese sind global. 3.4.2 Parsen mit ID/LP-Syntaxen Indirektes Parsen Direktes Parsen 4.1.2 LR-Parser 4.1.3 Ein Algorithmus zur Generierung kanonischer LR(1)-Tabellen 4.1.4 Effiziente Repräsentation von LR-Parsingtabellen 4.1.5 Implementierung Spezielle Funktionen zum Verarbeiten von ID/LP-Syntaxen 4 Teil IV: Deterministisches Parsen Bisher Parsingalgorithmen, die kontextfreie Sprachen verarbeiten können. Immer: Suche nach Ableitung für gegebenen Satz. Dazu: verschiedene Strategien (Depth-first mit Backtracking / Breadth-first ohne Backtracking / Speicherung aller Teilergebnisse in der Chart). Aber: Kontextfreie Sprachen haben eine Untermenge: determistische kontextfreie Sprachen. Für Deterministische Kontextfreie Sprachen (DKFS) kann immer ein Kellerautomat konstruiert werden, der sie akzeptiert. Bedeutung von DKFS: • Für diese sind Erkennungs- und Parsingalgorithmen erheblich günstiger in Zeitu und Raum. Deterministische Parsingalgorithmen v.a. vei Compilerbau von Bedeutung, da viele Programmiersprachen in diese Klasse fallen. • Für CL von untergeordneter Bedeutung: – Debatte über Kontextfreiheit von Sprachen: nach 30 Jahren zwar unstrittig, dass natürliche Sprachen nicht als kontextfreie Sprachen betrachtet werden können. – Doch: Anfang der 80er Tomita-Algorithmus (weit verwendet in vielen nat-sprl. Systemen). Basiert auf Parsingalgorithmus für LR-Sprachen und verwendet speziellen Typ DKF Syntaxen. (Später LR-Syntax / LR-Sprache → LR-Parsingalgorithmus → Tomita-Algorithmus) 4.1 4.1.1 LR-Syntaxen Sind Syntaxen, die von LR-Parsern verarbeitet werden können. 2 Operationen: shift/reduce. Abhängig vom Look-ahead(↑) verschiedene LR-Syntaxen: LR(0)-Syntaxen, LR(1)-Syntaxen, . . . , LR-(k)-Syntaxen (aus Effizienzgründen normalerweise Betrachtung von LR(0)- und LR(1)Syntaxen). Ausserdem: Für jede LR(k)-Syntax lässt sich schwach äquivalente LR(0)-Syntax konstruieren, dann allerdings ergeblich größere Zahl von nicht-terminalen Symbolen. “Die LR(k)-Syntaxen bilden die größte Klasse von kontextfreien Syntaxen, die sich mit deterministschen Bottom-Up-Parsern verarbeiten lassen. Die Klasse der kontextfreien Sprachen, für die es eine LR(k)-Syntax gibt, ist extensional äquivalent mit der Kasse von kontextfreien Sprachen, die von deterministschen Kellerautomaten akzeptiert werden.” Ein Shift-reduce-Parser erzeugt bei der Analyse eines Satzes w [. . . .] eines Rechtsreduktion , wenn [. . . ] 2. Ist es möglich, für alle diese Konstruktionen linguistisch adäquate Analysen mit kontextfreien Syntaxen zu formulieren? • → überwiegend verneint von CL-lern: • KF-Syntaxen sind nicht in der Lage, die in nat. Sprachen bestehenden Kookkurrenzrestriktionen adäquat abzubilden – besonders problematische Fälle: Lisp – Kongruenz und Rektion(↑): bspw. macht N P → detn ganzes Paradigma auf: N P → detmas nmas etc. auf mit falschen Ergebnissen wie “der Baum”, “*die Baum”, “*das Baum” – Wortstellung: “partial ordering freedom”(↑) (z.b. v.a. im Deutschen bei nominalen Kategorien) – nicht-lokale Abhängigkeiten (s.o.): kontinuierliche Vorkommen(↑), diskontinuierliche Vorkommen(↑) Prolog 4.2 Kapitel 10: LR-Parsing LR-Parser: deterministsche shift-reduce-Parser Verarbeitungsrichtung: LTR, bilden Rechtsreduktionen. LR-Parser wie Shift-reduce-Parser: zwei Prozeduren als Stackoperationen (Anwendung einer Regel: reduce, nächstes Wort auf den Stack: shift). Kapitel 11: Der Tomita-Algorithmus Weiterentwicklung des LR-Parsingalgorithmus. Genereller Parsingalgorithmus. Kann für bel. kontextfreie Sprachen verwendet werden. Wichtigster Unterschied zu dem einfachen LR-Algo aus dem vorigen Kapitel: Verwendung eines graphstrukturierten Stacks, der eien effiziente Verarbeitung von Parsingtabellen mit Mehrfacheinträgen erlaubt. 4.2.1 LR-Parsing beliebiger kontextfreier Syntaxen Beschreibung dieser Phänomene mit kontextfreien Regeln grundsätzlich beschreibbar, dennoch Bei Anwendung des vorhergehend beschriebenen Algo für Parsingtabellen bei bel. KF Syntaxen, nicht adäquat, weil 1. Führt zu Syntax mit sehr vielen Regeln. kann es zu Fällen kommen, wo in Tabelle Mehrfacheinträge vorkommen: diese lassen sich nicht innerhalb eines einfachen LR-Parsers verwenden (nicht in jedem Zustand eindeutige nächste • wirkt sich beim Parsen negativ auf Zeit/Speicher aus Operation, d.h. Parser kann nicht mehr deterministisch arbeiten). 2. verdeckt die den Phänomenen zugrundeliegenden sprachlichen Regularitäten: Mehrfacheinträge sind “Stackgruppen”, 3 Strategien, mit diesen zu arbeiten im folgenden. [. . . ] • Kongruenzprinzipien des Deutschen (KNG-Kongruenz) sind damit nicht explizit formuliert sondern implizit durch große Menge von Regeln. 4.2.2 Stack-Listen Der Erkennungsalgorithmus Theorie der distinktiven Merkmale [. . . ] aus der Phonologie: → binäre Merkmale um Selektionsregeln zu formulieren → von Chomsky in Standardtheorie verwendet. Unifikationsgrammatiken, Charakteristika(↑) Aus Charakteristika liegt es nahe, dieselben Algorithmen zu verwenden wie bei kontextfreien Sprachen. Merkmalsstrukturen: einfache Merkmalsstrukturen können als DAGs interpretiert werden, meistens als Attribut-Wert-Matrizen geschrieben (AWM) Der Parsingalgorithmus 5.1 Baum-strukturierter Stack Graph-strukturierter Stack Effiziente Strukturverwaltung 4.2.3 Der Algorithmus 4.2.4 Komplexität 4.2.5 Implementierung 5 Teil V: Unifikationsbasierte Grammatikformalismen Alle bisher vorgestellten Algos laufen gut bei Verarbeitung einfacher kontextfreier Sprachen. Frage für CL: Sind Syntaxen dieses Typs für natürliche Sprachen auch geeignet → “Kontextfreiheit natürlicher Sprache”? 2 Fragen: 1. Lassen sich alle Konstruktionen, die natürliche Sprachen aufweisen, prinzipiell durch kontextfreie Sprachen beschreiben? • Frage offen, wenn auch z.Z. die Meinung vorherrschend, “dass es in manchen Sprachen Konstruktionen gäbe, die sich grundsätzlich nicht durch kontextfreie Syntaxen beschreiben ließen” • → Interesse an mild kontextsensitiven Grammatikformalismen(↑) Kapitel 12: Definite Clause Grammatiken Historisch und systematich eng verbunden mit Prolog (u.a. zu Zwecken der nat-sprl Verarbeitung entwickelt.) 5.1.1 Syntaktische Regeln als logische Ausdrücke Kontextfreie Grammatiken lassen sich durch Horn-Klauseln repräsentieren. Beachte: Beziehung von kontextfreien Regeln ↔ DCG-Regeln und DCG-Regeln ↔ Hornklauseln(↑). 5.1.2 Differenzlisten [. . . ] {ergänzen} 5.1.3 Vom Recognizer zum Parser Interessante Asymmetrie zwischen kontextfreien Syntaxen und DCGs: Übergang vom Satzerkennen zur Satzanalyse bei kontextfreien Syntaxen mit der Verwendung unterschiedlicher Prozeduren (gleiche Daten / verschiedene Prozeduren) verbunden. Bei DCGs kann dieselbe Beweisstrategie für das Erkennen bzw. Parsen von Sätzen verwendet werden: dabei aber kontinuierliche Vorkommen(↑) [. . . ] Grammatik zu verändern (unterschiedliche Daten / gleiche Prozedur). Naumann/Langer, S. 259 Im ersten Fall müssen “bookkeeping”-Operationen explizit innerhalb d. Parsingalgorithmus diskontinuierliche Vorkommen(↑) [. . . ] spezifiziert werden, im zweiten Fall, die Regeln nur durch zusätzliche Variablen erweitert Naumann/Langer, S. 259 werden (und braucht keine weitere prozedurale Spezifikation). Parsing Parser kann formal- oder natürlichsprachliche Eingaben auf Korrektheit (Grammatikalität) prüfen 5.1.4 Nicht-kontextfreie Erweiterungen Parser kann formal- oder natürlichsprachliche Eingaben eine Interpretation zuordnen 5.1.5 Ein Earley-basierter Parser für DCGs (meist in Form von einer oder mehrerer Strukturbeschreibungen) aber auch ein abstrakter Algorithmus kann als “Parser” aufgefasst werden. 5.2 Kapitel 13: Ein Chart-Parser für unifikationsbasierte Syntaxen Strukturbeschreibung meist in Form von Strukturbaum 5.2.1 Indirektes Parsen oder Attribut-Wert-Matrizen (Merkmalsstrukturen) 5.2.2 Direktes Parsen können in versch. Repräsentationsformaten zurückkommen [. . . ] Repräsentation von Regeln und Kategorien Strukturbaum [.] Parsen mit merkmalsbasierten Syntaxen kann Teilbäume enthalten: ‘A := (B + C) * D Unifikationsgrammatik [. . . ] 5.2.3 Implementierung Tree Adjoining Grammar [. . . ] Dependenzgrammatik [. . . ] 6 Glossar Kategorialgrammatik [. . . ] Hornklauseln Eine Hornklausel ist eine Disjunktion von Termen, die höchstens einen nicht- Government-&-Binding-Theorie Versuch, v.a. bei Ambiguitäten üver rein strukturelle Analyse zu gehen negierten Term enthält. vs. Lexical Function Grammar, die dagegen auf funktionale Relationen zurückführt Grundlage von Prolog: Prolog-Regeln sind Hornklauseln Lexikalische Analyse Zeichenfolge identifizieren, einzelne syntaktische Einheiten identiProlog-Interpreter ist Theorembeweiser für Hornklausellogik. fizieren (Token), syntaktische Kategorien zuweisen Unifikationsgrammatiken, Charakteristika (umfassen Grammatiktheorien und Grammatikformalismen) bei Programmcode: Variable, Konstante, . . . verwenden Merkmalsstrukturen als zentrales deskriptives Merkmal, z.b. zur RepräsentaParser arbeitet auf Kette von Token tion von Kategorien, syntaktischen Regeln, funktionalen Strukturen Parser ordnet Strukturbeschreibung zu. wichtigste Typen: PATR-II, Functional Unification Grammar, Lexical-Functional Grammar, Generalized Phrase-Structure Grammar, Head-Driven Phrase-Structure Grammar, Repräsentationsformate für Strukturbeschreibungen: Strukturbaum indizierter Klammerausdruck Categorial Unification Grammar, Unification Categorial Grammar besitzen im Prinzip alle kontextfreien Kern bzw. “kontextfreies Rückgrat” (“context free KFS (kontextfreie Syntaxen) CNF (Chomsky Normalform) backbone”) verwenden also entweder: a) annnotierte kontextfreie Regeln (LFG) – b) verschiedene LR-Parser deterministischer Shift-reduce-Parser Regeltypen, die sich in kontextfreie Regeln kompilieren lassen, c) spezielle Merkmale shift eine von zwei Prozeduren eines shift-reduce-Parsers (und eines LR-Parsers) nächstes Wort aus dem Satz nehmen und auf den Stack schieben bzw. spezielle Merkmale und Regeln reduce(↑) Attribut-Wert-Matrix (AWM) S. 262 reduce eine von zwei Prozeduren eines shift-reduce-Parsers (und eines LR-Parsers) zwei Typen von Attributen: atomar, oder wiederum Merkmalsstruktur Anwendung einer Regel, reduziert Stack Merkmalsstruktur mit dem geringstmöglichen Informationsgehalt: leere Merkmalsstruktur shift(↑) [] kompatible Merkmalsstrukturen können veknüpft werden: enthält dann nur die Informa- look-ahead Zahl der Symbole des noch nicht analysierten Satzabschnitts, die betrachtet werden müssen, um zu entscheiden, mit welcher Regel im nächsten Schritt der Stack zu reduzieren tionen, die in beiden Teilen enthalten sind: Unifikation(↑) ist, bzw. ob das nächste Wort des Satzes auf den Stack zu schieben ist. Unifikation [. . . ] mild kontextsensitive Grammatikformalismen charakterisiert durch folgende 3 EigenKongruenz und Rektion(↑) [. . . ] schaften Naumann/Langer, S. 259 partial ordering freedom"(↑) [. . . ] Naumann/Langer, S. 259 2. lineares Wachstum der Satzlänge 3. Verfügbarkeit polynomialer Parsingalgorithmen. 7 Überblick • Top-Down-Parsing – Syntaxanforderungen: ? – Depth-first mit Backtracking – Breadth-first ohne Backtracking • Bottom-Up-Parsing – Syntaxanforderungen: ? – Anzahl der Stacks: 2 – deterministisch shift-reduce – shift-reduce mit Backtracking – breadth-frist shift-reduce • Left-Corner-Parsing – Syntaxanforderungen: ? – Anzahl der Stacks: 3 – left-corner – left-corner mit look-ahead • Chart-Parsing – Syntaxanforderungen: kontextfreie Syntaxen, keine Zyklen, keine Tilgungen – Bottom-Up-Chart-Parsing ∗ generelles Bottom-Up-Chart-Parsing ∗ CKY-Chart-Parsing · Syntaxanforderungen: +Chomsky-Normalform · Anmerkung: Syntaxanforderung erlaubt effizientere Berechnung der Chart – Earley-Parsing ∗ Syntaxanforderungen: es gibt aber auch Varianten für beliebige KFS (kontextfreie Syntaxen) ∗ Komplexität: O(n3 kGk2 ) – Insel-Parsing – ID/LP-Parsing ∗ (indirekt) ∗ (direkt) Shieber-Algorithmus 1. begrenzte Fähigkeit zur Beschreibung sich überschneidender Abhängigkeitsbeziehungen (“cross-lingual dependencies”) ∗ (direkt) Bartons Repräsentation – Tomita-Algo ∗ auch kontextfreie Syntaxen mit Tilgungsregeln (allerdings ohne unbegrenzt ambige bzw. zyklische Syntaxen) ∗ Basiert auf Knuth’s Algo für LR(k)-Grammatiken ∗ Komplexität i.A. linear O(n3 kGk) (G ist Zahl der Symbole) · Mit Modifikation für bel. Grammatiken max O(n3 kGk2 ) • Deterministisches Parsen – Syntaxanforderungen: ? – LR-Parsing – Tomita-Algorithmus • Unifikationsbasierte Grammatikformalismen – Earley revisited [. . . ] ? – Chartparsing revisited [. . . ] ?