Parsing – Zusammenfassung

Werbung
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 [. . . ] ?
Herunterladen