<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Chart-Parser</id>
	<title>Chart-Parser - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Chart-Parser"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Chart-Parser&amp;action=history"/>
	<updated>2026-05-21T12:48:10Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Chart-Parser&amp;diff=586767&amp;oldid=prev</id>
		<title>imported&gt;Jule Glühwurm: /* growthexperiments-addlink-summary-summary:2|0|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Chart-Parser&amp;diff=586767&amp;oldid=prev"/>
		<updated>2025-03-30T11:19:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:2|0|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ein &amp;#039;&amp;#039;&amp;#039;Chart-Parser&amp;#039;&amp;#039;&amp;#039;, auch &amp;#039;&amp;#039;&amp;#039;Chartparser&amp;#039;&amp;#039;&amp;#039; geschrieben, ist als [[Computerprogramm]] ein [[Parser]] für [[kontextfreie Grammatik]]en, der sich Teilanalysen (Teilkonstituenten) in einer Tabelle (Chart) merkt. Diese Zwischenspeicherung und Wiederverwendung von Teilanalysen verbessert die Effizienz erheblich und macht das Parsen von [[Kontextfreie Sprache|kontextfreien Sprachen]] zu einem in polynomieller Zeit lösbaren Problem.&lt;br /&gt;
&lt;br /&gt;
Chartparsing ist ein Überbegriff für alle Parsverfahren, die eine solche Tabelle benutzen. Nach dem verwendeten Parsalgorithmus unterscheidet man verschiedene Subtypen:&lt;br /&gt;
* Top-Down-Chart-Parser ([[Earley-Parser]])&lt;br /&gt;
* Left-Corner-Chart-Parser&lt;br /&gt;
* Insel-Chart-Parser&lt;br /&gt;
&lt;br /&gt;
== Chart ==&lt;br /&gt;
Der Chart ist eine n x n-Matrix, wobei n die Länge des zu analysierenden Satzes ist. Die Zwischenräume zwischen den Wörtern dieses Satzes sind von 0 bis n durchnummeriert.&lt;br /&gt;
In den einzelnen Chartzellen befinden sich sog. gepunktete Regeln (&amp;#039;&amp;#039;dotted rules&amp;#039;&amp;#039;, vgl. [[LR-Parser]]).&lt;br /&gt;
&lt;br /&gt;
Formal lässt sich ein Chart als eine Menge von 3-Tupeln &amp;lt; i,j, A → α. β &amp;gt; beschreiben, wobei gilt:&lt;br /&gt;
* i (0 ≤ i ≤ n) ist die Position, ab der eine [[Konstituente]] der Kategorie A erwartet wird.&lt;br /&gt;
* j (&amp;gt;= i) ist Position, bis zu der α erkannt ist.&lt;br /&gt;
* A → α . β ist eine gepunktete Regel, von der β noch erkannt werden muss; β heißt daher auch der &amp;#039;&amp;#039;offene Teil dieser Regel&amp;#039;&amp;#039;, α ist der &amp;#039;&amp;#039;geschlossene Teil&amp;#039;&amp;#039;. α und β bestehen aus einer beliebigen Folge von [[Terminalsymbol|Terminal-]] und [[Nichtterminalsymbol]]en der kontextfreien Grammatik. α und/oder β können auch leer, d.&amp;amp;nbsp;h. gleich ε, sein.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel ===&lt;br /&gt;
Ein einzelner Charteintrag kann beispielsweise so aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt; 2, 5, VP → V NP . NP &amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies bedeutet:&lt;br /&gt;
* ab der Satzposition 2 wird eine [[Verbalphrase]] (VP) erwartet.&lt;br /&gt;
* die Analyse der VP ist bis zur Satzposition 5 vorangeschritten. Zwischen den Positionen 2 und 5 befindet sich der geschlossene Teil [[Verb|V]] [[Nominalphrase|NP]] der VP-Regel.&lt;br /&gt;
* eine weitere [[Nominalphrase|NP]] wird ab der Position 5 erwartet, falls die betreffende VP-Regel überhaupt angewendet werden kann.&lt;br /&gt;
&lt;br /&gt;
== Parseroperationen ==&lt;br /&gt;
&lt;br /&gt;
Chart-Parser verwenden während der Analyse im Normalfall drei verschiedene Operationen:&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Hüllenbildung&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;predict&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Integration eines Terminalsymbols&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;scan&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Kombination zweier Teilkonstituenten&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;complete&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
=== Hüllenbildung ===&lt;br /&gt;
Ist &amp;lt; &amp;#039;&amp;#039;i&amp;#039;&amp;#039;, &amp;#039;&amp;#039;j&amp;#039;&amp;#039;, A → α . B β &amp;gt; ∈ Chart und&lt;br /&gt;
&lt;br /&gt;
ist B → γ eine Regel der Grammatik,&lt;br /&gt;
&lt;br /&gt;
dann füge&lt;br /&gt;
&lt;br /&gt;
&amp;lt; &amp;#039;&amp;#039;j&amp;#039;&amp;#039;, &amp;#039;&amp;#039;j&amp;#039;&amp;#039;, B → . γ &amp;gt;&lt;br /&gt;
&lt;br /&gt;
in den Chart ein, falls dieses Tupel noch nicht vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
Ab der Satzposition &amp;#039;&amp;#039;j&amp;#039;&amp;#039; wird also eine Konstituente der Kategorie B erwartet. Zur Expansion von B existiert eine Regel mit rechter Seite γ. Man generiert also eine neue Erwartung, γ beginnend ab der Position &amp;#039;&amp;#039;j&amp;#039;&amp;#039; zu finden.&lt;br /&gt;
&lt;br /&gt;
=== Integration eines Terminalsymbols ===&lt;br /&gt;
Ist &amp;lt; &amp;#039;&amp;#039;i&amp;#039;&amp;#039;, &amp;#039;&amp;#039;j&amp;#039;&amp;#039;, A → α . w β &amp;gt; ∈ Chart (w ist ein [[Terminalsymbol]] bzw. Präterminal) und&lt;br /&gt;
&lt;br /&gt;
ist &amp;#039;&amp;#039;w&amp;#039;&amp;#039; das &amp;#039;&amp;#039;j&amp;#039;&amp;#039;-te Wort des zu analysierenden Satzes s = w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;w&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ... w&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
dann füge&lt;br /&gt;
&lt;br /&gt;
&amp;lt; &amp;#039;&amp;#039;i&amp;#039;&amp;#039;, &amp;#039;&amp;#039;j+1&amp;#039;&amp;#039;, A → α w . β &amp;gt;&lt;br /&gt;
&lt;br /&gt;
in den Chart ein, falls dieses Tupel noch nicht vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
Die Analyse ist somit so weit vorangeschritten, dass nach der Position &amp;#039;&amp;#039;j&amp;#039;&amp;#039; ein [[Terminalsymbol]] bzw. eine Wortkategorie (wie [[Verb]]) erwartet wird. Ist das &amp;#039;&amp;#039;j&amp;#039;&amp;#039;-te Wort tatsächlich gleich w (bzw. von der Wortart w), dann kann dieses Wort in die Analyse integriert werden. Der Punkt wird dann über das erkannte Wort verschoben.&lt;br /&gt;
&lt;br /&gt;
=== Kombination zweier Teilkonstituenten ===&lt;br /&gt;
&amp;#039;&amp;#039;Hinweis&amp;#039;&amp;#039;: die hier beschriebene Kombinationsoperation ist diejenige des Top-Down-Chart-Parsers. Andere Methoden des Chart-Parsings gehen hier etwas anders vor.&lt;br /&gt;
&lt;br /&gt;
Ist &amp;lt; &amp;#039;&amp;#039;i&amp;#039;&amp;#039;, &amp;#039;&amp;#039;j&amp;#039;&amp;#039;, A → α . B β &amp;gt; ∈ Chart (B ist ein [[Nichtterminalsymbol]]) und&lt;br /&gt;
&lt;br /&gt;
ist auch &amp;lt; &amp;#039;&amp;#039;j&amp;#039;&amp;#039;, &amp;#039;&amp;#039;k&amp;#039;&amp;#039;, B → γ . &amp;gt; ∈ Chart&lt;br /&gt;
&lt;br /&gt;
dann füge&lt;br /&gt;
&lt;br /&gt;
&amp;lt; &amp;#039;&amp;#039;i&amp;#039;&amp;#039;, &amp;#039;&amp;#039;k&amp;#039;&amp;#039;, A → α B . β &amp;gt;&lt;br /&gt;
&lt;br /&gt;
in den Chart ein, falls dieses Tupel noch nicht vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
Während der Analyse wurde eine vollständige Konstituente B zwischen den Positionen &amp;#039;&amp;#039;j&amp;#039;&amp;#039; und &amp;#039;&amp;#039;k&amp;#039;&amp;#039; gefunden. Im Chart existiert ein weiteres Tupel, das die Erwartung einer Konstituente B ab Position &amp;#039;&amp;#039;j&amp;#039;&amp;#039; reflektiert. Also können beide zu einem neuen Tupel kombiniert werden, welches die Positionen &amp;#039;&amp;#039;i&amp;#039;&amp;#039; bis &amp;#039;&amp;#039;k&amp;#039;&amp;#039; überdeckt. Der Punkt wurde dabei über die erkannte Konstituente B weitergesetzt.&lt;br /&gt;
&lt;br /&gt;
== Parsalgorithmus ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Eingabe&amp;#039;&amp;#039;&amp;#039;: Ein Satz s = w&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;w&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; ... w&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
# Füge &amp;lt;0,0, S&amp;#039; → . S &amp;gt; in den Chart ein (S ist das [[Startsymbol]] der Grammatik, S&amp;#039; ein bisher nicht vorhandenes [[Nichtterminalsymbol]]).&lt;br /&gt;
# Wende die oben beschriebenen Schritte &amp;#039;&amp;#039;&amp;#039;Predict&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Scan&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Complete&amp;#039;&amp;#039;&amp;#039; solange an, bis keine weiteren Charteinträge mehr erzeugt werden können.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Ausgabe&amp;#039;&amp;#039;&amp;#039;: &amp;#039;&amp;#039;yes&amp;#039;&amp;#039;, falls &amp;lt;0, n, S&amp;#039; → S . &amp;gt;  ∈ Chart, andernfalls &amp;#039;&amp;#039;no&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Hinweis&amp;#039;&amp;#039;: Eigentlich ist das lediglich ein Erkennungsverfahren. Die tatsächlichen Satzstrukturen können aber mit etwas zusätzlicher Verwaltungsinformation aus dem Chart rekonstruiert werden (sog.&lt;br /&gt;
shared packed parse forest).&lt;br /&gt;
&lt;br /&gt;
Die Schritte unter 2. sind in ihrer Reihenfolge nicht geordnet. Ihre Reihenfolge kann mit Hilfe verschiedener Suchverfahren ([[Tiefensuche]], [[Breitensuche]], [[Bestensuche]]) systematisiert werden.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Gegeben sei eine [[kontextfreie Grammatik]] mit folgenden [[Produktionsregel]]n:&lt;br /&gt;
# [[Satz (Grammatik)|S]] → [[Nominalphrase|NP]] [[Verbalphrase|VP]]&lt;br /&gt;
# [[Satz (Grammatik)|S]] → [[Satz (Grammatik)|S]] [[Präpositionalphrase|PP]]&lt;br /&gt;
# [[Verbalphrase|VP]] → [[Verb|V]] [[Nominalphrase|NP]]&lt;br /&gt;
# [[Nominalphrase|NP]] → [[Nominalphrase|NP]] [[Präpositionalphrase|PP]]&lt;br /&gt;
# [[Nominalphrase|NP]] → [[Artikel (Wortart)|Art]] [[Nomen|N]]&lt;br /&gt;
# [[Präpositionalphrase|PP]] → [[Präposition|P]] [[Nominalphrase|NP]]&lt;br /&gt;
&lt;br /&gt;
Lexikonregeln&lt;br /&gt;
# [[Nominalphrase|NP]] → Donald&lt;br /&gt;
# [[Nominalphrase|NP]] → Daisy&lt;br /&gt;
# [[Verb|V]] → beobachtet&lt;br /&gt;
# [[Nomen|N]] → Fernglas&lt;br /&gt;
# [[Präposition|P]] → mit&lt;br /&gt;
# [[Artikel (Wortart)|Art]] → dem&lt;br /&gt;
&lt;br /&gt;
Der zu parsende Satz sei „Donald beobachtet Daisy mit dem Fernglas“&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Nr&lt;br /&gt;
!Eingefügter Charteintrag&lt;br /&gt;
!Begründung&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt; 0, 0, S&amp;#039; → . S &amp;gt;&lt;br /&gt;
| Initialisierung&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt; 0, 0, S → . NP VP &amp;gt;&lt;br /&gt;
| P 1, 1&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| &amp;lt; 0, 0, S → . S PP &amp;gt;&lt;br /&gt;
| P 1, 2&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt; 0, 0, NP → . NP PP &amp;gt;&lt;br /&gt;
| P 2, 4&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| &amp;lt; 0, 0, NP → . Art N &amp;gt;&lt;br /&gt;
| P 2, 5&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| &amp;lt; 0, 1, NP → Donald . &amp;gt;&lt;br /&gt;
| S 2, L1&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| &amp;lt; 0, 1, S →  NP . VP &amp;gt;&lt;br /&gt;
| C 2, 6&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| &amp;lt; 0, 1, NP → NP . PP &amp;gt;&lt;br /&gt;
| C 4,6&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| &amp;lt; 1, 1, VP →  . V NP &amp;gt;&lt;br /&gt;
| P 7, 3&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| &amp;lt; 1, 1, PP →  . P NP &amp;gt;&lt;br /&gt;
| P 8, 6&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| &amp;lt; 1, 2, V → beobachtet . &amp;gt;&lt;br /&gt;
| S 9, L3&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| &amp;lt; 1, 2, VP → V . NP &amp;gt;&lt;br /&gt;
| C, 9, 11&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| &amp;lt; 2, 2, NP → . NP PP &amp;gt;&lt;br /&gt;
| P 12, 4&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| &amp;lt; 2, 2, NP → . Art N &amp;gt;&lt;br /&gt;
| P 12, 5&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| &amp;lt; 2, 3, NP → Daisy . &amp;gt;&lt;br /&gt;
| S 12, L2&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| &amp;lt; 1, 3, VP → V NP . &amp;gt;&lt;br /&gt;
| C 12, 15&lt;br /&gt;
|-&lt;br /&gt;
| 17&lt;br /&gt;
| &amp;lt; 2, 3, NP → NP . PP &amp;gt;&lt;br /&gt;
| C 13, 15&lt;br /&gt;
|-&lt;br /&gt;
| 18&lt;br /&gt;
| &amp;lt; 0, 3, S →  NP VP . &amp;gt;&lt;br /&gt;
| C 7, 16&lt;br /&gt;
|-&lt;br /&gt;
| 19&lt;br /&gt;
| &amp;lt; 3, 3, PP →  . P NP &amp;gt;&lt;br /&gt;
| P 17, 6&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| &amp;lt; 3, 4, PP →  mit . NP &amp;gt;&lt;br /&gt;
| S 19, L5&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| &amp;lt; 4, 4, NP → . NP PP  &amp;gt;&lt;br /&gt;
| P 20, 4&lt;br /&gt;
|-&lt;br /&gt;
| 22&lt;br /&gt;
| &amp;lt; 4, 4, NP → . Art N &amp;gt;&lt;br /&gt;
| P 20, 5&lt;br /&gt;
|-&lt;br /&gt;
| 23&lt;br /&gt;
| &amp;lt; 4, 5, Art →  dem . &amp;gt;&lt;br /&gt;
| S 22, L6&lt;br /&gt;
|-&lt;br /&gt;
| 24&lt;br /&gt;
| &amp;lt; 0, 3, S → S . PP &amp;gt;&lt;br /&gt;
| C 3, 18&lt;br /&gt;
|-&lt;br /&gt;
| 25&lt;br /&gt;
| &amp;lt; 4, 5, NP →  Art . N &amp;gt;&lt;br /&gt;
| C 22, 23&lt;br /&gt;
|-&lt;br /&gt;
| 26&lt;br /&gt;
| &amp;lt; 5, 6, N →  Fernglas . &amp;gt;&lt;br /&gt;
| S 25, L4&lt;br /&gt;
|-&lt;br /&gt;
| 27&lt;br /&gt;
| &amp;lt; 4, 6, NP →  Art N . &amp;gt;&lt;br /&gt;
| C, 25, 26&lt;br /&gt;
|-&lt;br /&gt;
| 28&lt;br /&gt;
| &amp;lt; 3, 6, PP →  mit NP . &amp;gt;&lt;br /&gt;
| C 20, 27&lt;br /&gt;
|-&lt;br /&gt;
| 29&lt;br /&gt;
| &amp;lt; 2, 6, NP → NP PP . &amp;gt;&lt;br /&gt;
| C 17, 28&lt;br /&gt;
|-&lt;br /&gt;
| 30&lt;br /&gt;
| &amp;lt; 1, 6, VP → V NP . &amp;gt;&lt;br /&gt;
| C, 12, 29&lt;br /&gt;
|-&lt;br /&gt;
| 31&lt;br /&gt;
| &amp;lt; 0, 6, S →  NP VP . &amp;gt;&lt;br /&gt;
| C 7, 30&lt;br /&gt;
|-&lt;br /&gt;
| 32&lt;br /&gt;
| &amp;lt; 0, 6, S → S PP . &amp;gt;&lt;br /&gt;
| C 24, 28&lt;br /&gt;
|-&lt;br /&gt;
| 33&lt;br /&gt;
| &amp;lt; 0, 0, S&amp;#039; → S . &amp;gt;&lt;br /&gt;
| C 1,31&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Erläuterung&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* Pn,m=Hüllenbildung (predict) von Eintrag n mit Produktionsregel m,&lt;br /&gt;
* Sn,Lm=Integration (scan) von der Hüllenbildung von Eintrag n mit Lexikonregel m,&lt;br /&gt;
* Cn,m=Kombination (complete) der beiden Einträge n und m&lt;br /&gt;
&lt;br /&gt;
Die Tatsache, dass Eintrag 33 auch durch Kombination von Eintrag 1 mit Eintrag 32 hätte gebildet werden können, zeigt, dass der Satz auf zwei Arten geparst werden kann (also zweideutig ist).&lt;br /&gt;
&lt;br /&gt;
== Erweiterungen ==&lt;br /&gt;
&lt;br /&gt;
=== Tilgungsregeln ===&lt;br /&gt;
Tilgungsregeln sind u.&amp;amp;nbsp;a. [[Produktionsregel]]n der Form A → ε. Solche Regeln werden meist durch spezielle Verarbeitungsstrategien in den Chartparser integriert.&lt;br /&gt;
&lt;br /&gt;
=== Vorausschau (Lookahead) ===&lt;br /&gt;
Das Erzeugen von überflüssigen Charteinträgen kann durch Integration von &amp;#039;&amp;#039;k&amp;#039;&amp;#039; [[Lookahead]]-Symbolen in die Charttupel verhindert werden. Diese Technik wird auch bei [[LR-Parser|LR(k)-Parsern]] verwendet.&lt;br /&gt;
&lt;br /&gt;
=== Separierte Grammatik ===&lt;br /&gt;
Zur Parsen von natürlichen Sprachen werden in der Regel sog. separierte Grammatiken verwendet, bei denen Lexikon und Phrasenstrukturregeln voneinander getrennt sind. Die rechten Regelseiten der kontextfreien Grammatik enthalten somit entweder nur Terminalsymbole (Alphabetsymbole) oder Nichtterminalsymbole. Dies macht den Predict- und Scan-Vorgang effizienter, da sie nur bis zur Ebene der Präterminale (Wortarten) voranschreiten.&lt;br /&gt;
&lt;br /&gt;
=== Robustheit ===&lt;br /&gt;
Da die Eingaben des Parsers nicht immer im Sinne der Grammatik wohlgeformt sind (vgl. die Anwendung der [[Grammatikprüfung]]), ist es nützlich, den Parser robust, d.&amp;amp;nbsp;h. unanfällig für Grammatikfehler zu machen. Dies betrifft beispielsweise unbekannte Wörter, für die dann im Scan-Schritt alle wahrscheinlichen Wortarten eingetragen werden, oder fehlende oder überzählige Wörter, die mit speziellen Fehlerproduktionen erkannt werden.&lt;br /&gt;
&lt;br /&gt;
== Komplexität ==&lt;br /&gt;
O(n&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;) für beliebige kontextfreie Grammatiken, O(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) für nicht-ambige kontextfreie Grammatiken.&lt;br /&gt;
&lt;br /&gt;
== Anwendungen ==&lt;br /&gt;
Chart-Parser werden meist im Zusammenhang mit der syntaktischen Analyse natürlicher Sprachen eingesetzt, da sie – neben dem [[Tomita-Parser]] – die beste Zeitkomplexität für beliebige (d.&amp;amp;nbsp;h. auch ambige) kontextfreie Grammatiken aufweisen. Beispielsweise verwendet die Grammatikprüfung von [[Microsoft Word]] einen Chartparser.&lt;br /&gt;
Für Programmiersprachen, deren Syntax spezielle Eigenschaften aufweist, werden meist effizientere Parser wie [[LR-Parser|LR(k)]]- bzw. [[LL-Parser|LL(k)-Parser]] eingesetzt.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Syntaxanalyse]]&lt;br /&gt;
* [[natürliche Sprache]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Jay Earley: &amp;#039;&amp;#039;An Efficient Context-Free Parsing Algorithm&amp;#039;&amp;#039;. In: &amp;#039;&amp;#039;Communications of the ACM&amp;#039;&amp;#039; 13, 1970, {{ISSN|0001-0782}}, S. 94–102.&lt;br /&gt;
* [[Gerald Gazdar]], Chris Mellish: &amp;#039;&amp;#039;Natural Language Processing in Prolog. An Introduction to computational Linguistics&amp;#039;&amp;#039;. Addison-Wesley, Wokingham u. a. 1989, ISBN 0-201-18053-7.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Theorie formaler Sprachen]]&lt;br /&gt;
[[Kategorie:Computerlinguistik]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Jule Glühwurm</name></author>
	</entry>
</feed>