∏ ∏ - Karin Haenelt

Werbung
Ruprecht-Karls-Universität Heidelberg
Computerlinguistisches Seminar
SS 2002
HS: Parsing
Dozentin: Dr. Karin Haenelt
Referentin: Anna Björk Nikulásdóttir
10.06.02
_____________________________________________________________________________________
Probabilistisches Parsing
Teil II
1. Parsingmodelle
Ein probabilistischer Parser hat die Aufgabe, die wahrscheinlichste(n) Analyse(n) 1
eines Satzes auszugeben. In der PCFG ist die Wahrscheinlichkeit eines Baumes T,
als Analyse des Satzes S, als das Produkt der Wahrscheinlichkeiten aller Regel r, die
zum Expandieren jedes Knotens n im Baum benötigt werden, definiert:
P(T , S ) = ∏ p (r (n ))
(1)
n∈T
Für einen lexikalisierten PCFG-Parser sieht die Gleichung so aus:
P(T , S ) = ∏ p (h (n ) | m( n )) × p( r( n) | h (n ))
(2)
n∈T
Wobei h für den Kopf von n steht und m für den Kopf des Mutterknotens von n.
P (T,S) ist einerseits die vereinte Wahrscheinlichkeit vom Baum und Satz und
gleichzeitig die Wahrscheinlichkeit von T ( P(T) ):
Gemäß dem Multiplikationssatz gilt: P (T,S) = P(T)P(S | T)
Da jedoch der Baum alle Wörter des Satzes beinhaltet, ist P (S | T) = 1.0 und somit
gilt:
P(T,S) = P(T)P(S|T) = P(T)
(3)
Um jetzt die wahrscheinlichste Analyse eines Satzes zu ermitteln, bekommt der
Parser folgende Aufgabe:
Tˆ ( S ) = arg max P (T | S )
(4)
T ∈τ ( S )
Gemäß der Definition der bedingten Wahrscheinlichkeit gilt: P(T | S) = P (T, S) / P (S)
Gesucht wird die wahrscheinlichste Analyse für einen Satz, also bleibt S konstant
und kann damit eliminiert werden, übrig bleibt P (T,S).
Wie oben gezeigt gilt: P (T,S) = P(T) und damit kann die Ausgangsformel vereinfacht
werden:
Tˆ ( S ) = arg max P (T )
(Jurafsky/Martin(2000) S.452)
T ∈τ ( S )
1
Hier und im Folgenden ist mit "Analyse" (engl.) "parse" gemeint.
1
2. Algorithmen
Viele der Standardalgorithmen für Parsing können um probabilistische Komponenten
erweitert werden, so z.B. der Earley Algorithmus und der CYK (Cocke-YoungerKasami) Algorithmus. Außerdem wird der Viterbi Algorithmus häufig benutzt, sowie
Algorithmen aus dem Bereich der künstlichen Intelligenz, von denen hier zwei
vorgestellt werden.
Die Anforderung an einen Algorithmus für probabilistisches Parsing kann so
formuliert werden: Gegeben ist ein Graph oder Baum, wo die Kanten mit
Wahrscheinlichkeiten (und evtl. weiteren Informationen) versehen sind, finde den
optimalen Pfad und tue dies mit einem minimalen Rechenaufwand.
2.1. Der stack decoding Algorithmus
Der stack decoding Algorithmus ist eine Suchmethode, um baumstrukturierte
Suchräume zu durchsuchen. Im Bereich der künstlichen Intelligenz wurden nach
diesem Prinzip sog. uniform-cost Algorithmen entwickelt. Uniform-cost heißt, dass
immer der Knoten zuerst expandiert wird, der am wenigsten Kosten verursacht.
Übertragen auf probabilistisches Parsing ist das der Knoten mit der höchsten
Wahrscheinlichkeit. Nach jeder Expansion werden die Ableitungen in einer priority
queue gespeichert und nach Wahrscheinlichkeit geordnet. Es werden jedoch i.d.
Regel alle Ableitungen abgearbeitet, was zwar die optimale Lösung garantiert, aber
sehr teuer werden kann.
à uniform-cost search findet garantiert die optimale Lösung, ist jedoch nicht sehr
effektiv.
Eine effektivere Variante der uniform-cost search ist die sog. beam-search:
Beam-search ist eine heuristische Suchmethode, in der eine Anzahl fast optimaler
Alternativen (das "beam") parallel überprüft werden. Heuristisch, weil heuristische
Regeln zum Aussortieren der Alternativen benutzt werden, die nicht vielversprechend
sind. So wird das beam möglichst klein gehalten.
Den Suchraum kann man sich als einen gerichteten Graph vorstellen, wo jeder
Knoten ein Zustand ist und jede Kante die Anwendung eines Operators darstellt, der
zum Nachfolgeknoten führt. Das Ergebnis ist ein Pfad vom Anfangszustand zum
Endzustand.
Es werden 4 Operatoren benötigt:
- NEXT:
Expandiert einen Knoten zu allen seinen Nachfolgeknoten
- SCORE: Evaluiert einen Zustand, indem er die Wahrscheinlichkeit berechnet,
dass dieser Zustand zu einer optimalen Lösung gehört.
- PRUNE:
Wählt die Knoten aus, die durch SCORE die besten Ergebnisse erzielt
haben.
- FOUND: Überprüft, ob das Ziel schon erreicht ist.
Es werden 2 Datenstrukturen benötigt:
- currentStates:
Enthält die Zustände, die erweitert werden sollen.
- canditateStates: Enthält die neuen Zustände.
2
Algorithmus:
1
2
3
4
5
6
7
8
9
Initialisierung:
currentStates = initialState
Schleife:
while (not FOUND (currentStates))
{
candidateStates = NEXT (currentStates)
SCORE (candidateStates)
currentStates = PRUNE (candidateStates)
}
Der PRUNE-Operator ist entscheidend: Wenn er zu großzügig ist, d.h. zu viele
Zustände durchlässt, wird die Suche teuer. Im Extremfall gleicht die Suche einer
einfachen breadth-first-Suche. Ist der PRUNE-Operator dagegen zu streng, wird das
Risiko höher, den Pfad zu löschen, der zur Optimalen Lösung führt.
à Beam-search kann eine sehr kosteneffektive Suchmethode sein, die
wahrscheinlich auch die optimale Lösung findet, das ist jedoch nicht garantiert.
(Shapiro et.al. (1987) Bd. 1 S. 56-57)
2.2. A* Algorithmus
Der A* Algorithmus ("A-Stern" / engl. "A-Star") berücksichtigt nicht nur die
Wahrscheinlichkeit des schon durchgelaufenen Pfades, sondern auch wie
wahrscheinlich es ist, dass dieser zu einer guten Lösung führt.
Hierzu wird eine geschätzte Zahl eingeführt, hˆ (n ) , welche die Wahrscheinlichkeit des
besten Pfades von n bis Ende schätzt:
f ( n) = g (n ) + hˆ(n )
g(n) ist die Wahrscheinlichkeit des schon durchgelaufenen Pfades. f(n) ist somit die
geschätzte Wahrscheinlichkeit des besten Pfades durch n.
Operatoren:
ESTIMATE (h(n)): schätzt die Wahrscheinlichkeit des Pfades von n bis Ende
SCORE:
berechnet g(n) + h(n), ordnet die Zustände nach dem Ergebnis
FOUND:
überprüft, ob das Ziel schon erreicht ist
Variablen und Datenstrukturen:
h(n) :
currentStates :
candidateStates:
die geschätzte Wahrscheinlichkeit des Pfades von n bis Ende
enthält die Zustände, die erweitert werden sollen
enthält die neuen Zustände
3
Algorithmus:
1
2
3
4
5
6
7
8
9
10
11
Initialisierung:
currentStates = initialState
Schätzung:
ESTIMATE (h(initialState))
Schleife:
while (not FOUND (currentStates))
{
candidateStates = NEXT (currentStates)
ESTIMATE (h(candidateStates))
currentStates = SCORE (candidateStates)
}
Wichtige Eigenschaften des A*:
1. Die optimistische Schätzung: h(n) ist die wirkliche Wahrscheinlichkeit des Pfades n
bis Ende. Wenn h( n ) ≤ hˆ(n ) für alle n, dann findet A* garantiert die optimale Lösung,
wenn es sie gibt.
2. Kein anderer Algorithmus, der Zugang zu gleich vielen zusätzlichen Informationen
hat, kann mit weniger Rechenaufwand als der A* auskommen und trotzdem
garantiert die optimale Lösung finden.
à A* ist optimal effizient und findet garantiert die optimale Lösung. Trotzdem hat er
immer noch exponentiellen Rechenaufwand.
(Shapiro et.al. (1987) Bd. 1; Russel / Norvig (1995) S. 96ff.)
3. Evaluierung
Die Ergebnisse, die ein Parser liefert, werden i. d. R. weiterverarbeitet. Eine
Möglichkeit der Evaluierung ist daher, den Parser im Zusammenhang mit dieser
Weiterverarbeitung zu betrachten. Es können z.B. andere Ergebnisse für einen
Parser in einem IR-System wichtig sein, als für ein maschinelles Übersetzungssystem. Dieser Aspekt der Evaluierung wird hier nicht berücksichtigt, sondern nur
Verfahren, die den Parser für sich betrachten.
3.1. tree-accuracy oder exact match Kriterium
Dies ist die strenge Bewertung: entweder ist eine Analyse richtig oder sie ist falsch.
Es spielt keine Rolle, ob nur ein kleiner Fehler drin ist, oder ob die Analyse
vollkommen unsinnig ist: der erste Fehler verursacht die Bewertung "falsch".
Diese Bewertung mag in einigen Fällen sinnvoll sein, wenn die Weiterverarbeitung
nur mit einer vollständig richtigen Analyse arbeiten kann.
3.2. PARSEVAL
Die Standardmethode zur Parserevaluierung ist PARSEVAL. Zuerst müssen die
Testdaten in einer als richtig definierter Form vorliegen, z.B. die Penn Treebank.
Diese Analyse wird "goldener Standard" genannt und mit ihr werden die Ergebnisse
des Testparsers verglichen. Eine Konstituente der Parseranalyse wird als richtig
bewertet, wenn sie a) an der gleichen Stelle beginnt, wie die aus dem goldenen
4
Standard, b) an der gleichen Stelle endet, wie die aus dem goldenen Standard und c)
mit dem gleichen nicht-terminalen Symbol versehen ist.
Es werden drei Maßstäbe zugrunde gelegt:
1. labelled recall
=
# richtige Konstituenten des Parsers
# Konstituenten der Vergleichsdaten
2. labelled precision=
# richtige Konstituenten des Parsers
# Konstituenten des Parsers insgesamt
3. crossing brackets:
Anzahl sich überlappender Klammer.
Beispiel: die Treebank hat die Klammerung ((A B) C), der
Parser aber (A (B C)).
Beispiel:
Treebank:
(s (np (det The) (noun stranger))
(vp (verb ate)
(np (det the) (noun doughnut))
(pp (prep with) (np (det a) (noun fork)))))
Parser:
(s (np (det The) (noun stranger))
(vp (verb ate)
(np (det the) (noun doughnut)
(pp (prep with) (np (det a ) (noun fork))))))
Treebank Konstituenten: 6
Parser Konstituenten: 6
precision: 5/6 = 0.83
recall: 5/6 = 0.83
crossing brackets: 0 à crossing brackets accuracy: 100%
(Charniak (1997) S. 8-9)
4. Literatur
CHARNIAK (1997): Statistical Techniques for Natural Language Parsing. In: AI Magazine. S. 33-34
CHARNIAK (1993): Statistical Language Learning. Cambridge, MA.
COLLINS (1996): A New Statistical Parser Based on Bigram Lexical Dependencies. In: Proceedings of
the 34th Annual Meeting of the Association for Computational Linguistics. (ACL 34).
GÖRZ (Hrsg.) (1995): Einführung in die Künstliche Intelligenz. 2. Aufl. Bonn usw. (Kap. 5.3.6)
JURAFSKY / MARTIN (2000): Speech and Language Processing. An Introduction to Natural
Language Processing, Computational Linguistics and Speech Recognition. London usw. (Kap. 12)
MANNING / SCHÜTZE (2000): Foundation of Statistical Natural Language Processing. 2. korr. Aufl.
Cambridge, MA, London. (Kap. 12)
RUSSEL / NORVIG (1995): Artificial Intelligence. A Modern Approach. London usw. (Kap. 4)
SHAPIRO et.al. (Hrsg.) (1987): Encyclopedia of Artificial Intelligence. 2 Bde. New York usw.
5
Herunterladen