390 likes | 515 Views
Computerlinguistik. 4. Vorlesung (03.11.2011). apl. Professor Dr. Ulrich Schade Fraunhofer-Institut für Kommunikation, Informationstechnik und Ergonomie ulrich.schade@fkie.fraunhofer.de Charlotte Wollermann, M.A. Philosophische Fakultät der Universität Bonn cwo@ifk.uni-bonn.de.
E N D
Computerlinguistik 4. Vorlesung (03.11.2011) apl. Professor Dr. Ulrich Schade Fraunhofer-Institut für Kommunikation, Informationstechnik und Ergonomie ulrich.schade@fkie.fraunhofer.de Charlotte Wollermann, M.A. Philosophische Fakultät der Universität Bonn cwo@ifk.uni-bonn.de
Computerlinguistik Inhalt der Vorlesung Einführung Methoden Tagging Formale Methoden Parsing Ontologien Anwendungen Informationsextraktion Maschinelle Übersetzung Textanalyse
Computerlinguistik Formale Methoden der Linguistik Die in der Linguistik genutzten „formalen Methoden“ bilden die Grundlage dafür, dass Sprachverarbeitung automatisiert erfolgen kann. Die formalen Methoden sind damit auch eine sehr wichtige methodische Grundlage der Computerlinguistik. Generell zählen wir zu den formalen Methoden die Mengenlehre, die Logik, die Theorie der formalen Grammatiken und die Automatentheorie. Zu letzteren beiden soll in dieser Veranstaltung etwas gesagt werden. Heute geht es also um Automatentheorie.
Computerlinguistik Automatentheorie • Bei der „Automatentheorie“ geht es darum Automaten anzugeben, die für eine vorgegebene Sprache entscheiden können, ob eine Sequenz von Wörtern ein Satz dieser Sprache ist. • Wir zeigen zunächst: • Für jede reguläre Sprache gibt es einen endlichen Automaten, der entscheiden kann, ob eine Wortsequenz Satz dieser Sprache ist.
Computerlinguistik Endliche Automaten • Definition • Ein endlicher Automat FA ist ein System (S, I, Delta, s0, F) mit folgenden Bedingungen: • S ist eine endliche Menge von Zuständen. Zu jedem Zeitpunkt befindet sich der Automat in genau einem dieser Zustände. Notation: Zustände werden mit s, t, … bezeichnet.
Computerlinguistik Endliche Automaten • Definition • Ein endlicher Automat FA ist ein System (S, I, Delta, s0, F) mit folgenden Bedingungen: • I ist eine endliche, nicht leere Menge. Sie beinhaltet das Vokabular (entspricht ∑ bei den Formalen Grammatiken). Notation: Wörter werden wiederum mit a, b, … bezeichnet. I* ist die Menge aller endlichen Wortsequenzen einschließlich .
Computerlinguistik Endliche Automaten • Definition • Ein endlicher Automat FA ist ein System (S, I, Delta, s0, F) mit folgenden Bedingungen: • Delta ist die Übergangsfunktion. Sie gibt an, wie sich der Zustand des Automaten ändert, wenn ein spezifisches (Eingabe-)Wort eingegeben wird. delta(s,a) = t bedeutet also, dass sich der Automat bei der Eingabe des Wortes avom Zustand s in den Zustand t begibt.
Computerlinguistik Endliche Automaten delta(s,a) ist für alle Wörter aaus I und alle Zustände s aus S definiert. delta(s,a) ist entweder ein Zustand aus S oder . bedeutet, dass der Automat blockiert. Da sowohl S als auch I endlich sind, ist au delta endlich.
Computerlinguistik Endliche Automaten • Definition • Ein endlicher Automat FA ist ein System (S, I, Delta, s0, F) mit folgenden Bedingungen: • s0 S ist der Ausgangszustand von FA, also der Zustand, in dem sich FA befindet, wenn die Eingabe beginnt. • F S ist die Menge von Zuständen, die FA haben darf, wenn die Eingabe beendet ist (Menge der Endzustände).
Computerlinguistik Endliche Automaten Definition Ein endlicher Automat FA ist ein System (S, I, Delta, s0, F) akzeptiert eine Sequenz (von Wörtern) I*, wenn FA bei der Eingabe von eine Sequenz von Zuständen durchläuft (angefangen bei s0) und in einem Zustand aus F endet.
Computerlinguistik Endliche Automaten Beispiel FA = ({s0, s1}, {hii, hoo}, delta, s0, {s1}) mit delta(s0, hii) = s1 delta(s0, hoo) = delta(s1, hii) = delta(s1, hoo) = s0 FA akzeptiert L = { hii (hoohii)n | n ≥ 0} . hii s0 s1 hoo Übergangsdiagramm
Computerlinguistik Endliche Automaten Beispiel FA = ({s0}, {dumm}, delta, s0, {s0}) mit delta(s0, dumm) = s0 FA akzeptiert L = { dummn | n ≥ 0} . s0 dumm Übergangsdiagramm
Computerlinguistik Endliche Automaten Beispiel FA = ({s0, s1, s2, s3, s4}, {a, b, c, d}, delta, s0, {s4}) mit delta(s0, a) = s1 delta(s1, b) = s2 delta(s2, c) = s3 delta(s3, d) = s4 delta(…,…) = (sonst) FA akzeptiert L = { a b c d } . s2 s3 s4 s1 s0 b a c d Übergangsdiagramm
Computerlinguistik Endliche Automaten Definition Ein endlicher Automat FA ist genau dann deterministisch, wenn für jeden Zustand und jedes Eingabesymbol (Wort) eindeutig der Folgezustand (oder ) bestimmt ist. delta ist in diesem Fall eine Funktion. Ist der Folgezustand nicht für jeden Zustand und jedes Eingabesymbol eindeutig bestimmt, liegt ein nicht-deterministischer endlicher Automat (NFA) vor.
Computerlinguistik Endliche Automaten Beispiel FA = ({s0, s1, s2}, {bla, blub}, delta, s0, {s2}) mit delta(s0, bla) = {s0, s1} delta(s1, bla) = s2 delta(s1, blub) = {s1, s2} delta(…,…) = (sonst) FA akzeptiert L = { blak bla blubl bla, blam bla blubn blub | k, l,n,m ≥ 0} . bla blub blub s1 s2 s0 bla bla
Computerlinguistik Endliche Automaten Satz Für jeden nicht-deterministischen endlichen Automaten NFA gibt Es einen deterministischen endlichen Automaten, der exakt dieselbe Menge an Sätzen (Sequenzen von Eingabesymbolen) akzeptiert. NFAs sind also nur abgekürzte FAs.
Computerlinguistik Endliche Automaten und reguläre Grammatiken Definition Die Sprache L(FA), die ein endlicher Automat FA akzeptiert, ist die Menge der Sätze, die der Automat akzeptiert. Satz Für jeden endlichen Automaten FA existiert eine reguläre Grammatik G mit L(FA) = L(G).
Computerlinguistik Endliche Automaten und reguläre Grammatiken Wir konstruieren die Grammatik zu dem Beispiel FA = ({s0, s1}, {hii, hoo}, delta, s0, {s1}) mit delta(s0, hii) = s1 delta(s0, hoo) = delta(s1, hii) = delta(s1, hoo) = s0 FA akzeptiert L = { hii (hoohii)n | n ≥ 0} . hii s0 s1 hoo Übergangsdiagramm
Computerlinguistik Endliche Automaten und reguläre Grammatiken G = {S, N, , P} S = s0 N = {s0, s1} = {hii, hoo} P = { s0 hii, s0 hii s1, s1 hoo s0 } Achtung: Die Übergangsregel „delta(s0, hii) = s1“ wird in G zu zwei Produktionsregeln, da s1 ein Endzustand ist.
Computerlinguistik Endliche Automaten und reguläre Grammatiken Das geht auch umgekehrt: Satz Für jede reguläre Grammatik G existiert ein endlicher Automaten FA mit L(FA) = L(G). Wir konstruieren einen endlichen Automaten zu der regulären Grammatik G=(S, {S, B}, {bla, blub}, P) mit P = { S bla B, B blub S, B blub }
Computerlinguistik Endliche Automaten und reguläre Grammatiken G=(S, {S, B}, {bla, blub}, { S bla B, B blub S, B blub }) L(G) = { (bla blub}n | n ≥ 1} NFA = ({S,B,X}, {bla, blub}, delta, S, {X}) mit delta(S, bla) = B, delta(B, blub) = {S, X}, sonst
Computerlinguistik Endliche Automaten und reguläre Grammatiken Es kann gesagt werden, dass reguläre Grammatiken und endliche Automaten zueinander äquivalent sind. Grammatiken beschreiben das Generieren der Sätze und die Automaten das Parsen.
Computerlinguistik „Push Down“-Automaten Um Automaten zu konstruieren, die kontextfreie Sprachen akzeptieren, müssen Einschränkungen für die Automaten gelockert werden. Definition Ein Stack ist eine geordnete Sequenz von Elementen. Das oberste Element heißt „Top“. Nur Top ist jeweils zugänglich. Prinzip: Last in, first out.
Computerlinguistik „Push Down“-Automaten • Definition • Ein „Push-Down“-Automat (PDA) • ist ein System (S, I, Gamma, delta, s0, gamma0) mit • S ist (wie vorher auch) eine endliche nicht-leere Menge von Zuständen, die den Anfangszustand s0 umfasst. • I ist (wie vorher auch) eine endliche, nicht leere Menge von Eingabesymbolen (Vokabular).
Computerlinguistik „Push Down“-Automaten • Definition • Ein „Push-Down“-Automat (PDA) • ist ein System (S, I, Gamma, delta, s0, gamma0) mit • Gamma ist eine endliche nicht-leere Menge von Stacksymbolen, die gamma0 umfasst. • delta ist die Übergangsfunktion (vgl. nächste Folie). • Der Automat hat einen Stack, der zu Beginn genau gamma0 enthält.
Computerlinguistik „Push Down“-Automaten Definition Eine Konfiguration in einem PDA ist ein Tupel aus einem Zustand und einem Stackinhalt. delta beschreibt den Übergang von einer Konfiguration in eine andere. Für nicht definierte Übergänge blockiert der PDA. delta(si, a, gammak) = (sj, chi) bedeutet, dass der PDA durch die Eingabe von a von der Konfiguration (si, gammak reststack) in die Konfiguration (sj, chi reststack) übergeht. (Nur TOP, hier gammak, kann bearbeitet werden; der Rest im Stack bleibt unverändert.)
Computerlinguistik „Push Down“-Automaten • Definition • Eine Sequenz von Eingabesymbolen wird genau dann durch einen PDA akzeptiert, falls gilt überführt die Konfiguration (s0, gamm0) in die Konfiguration (s, ). Achtung: Für einen PDA wird kein Endzustand vorgegeben, aber am Ende muss der Stack leer (= )sein.
Computerlinguistik „Push Down“-Automaten Definition Die Sprache L(PDA), die ein PDA akzeptiert, besteht aus allen Sätzen (Sequenzen von Eingabesymbolen), die akzeptiert werden. Definition Ein nicht-deterministischer „Push-Down“-Automat entscheidet sich von einem PDA dadurch, dass die Ergebnisse der Übergangsregeln nicht eindeutig sein müssen. delta(s, a, gamma) = {(s1, chi1), …, (sm, chim)}
Computerlinguistik „Push Down“-Automaten und kontextfreie Grammatiken Satz Für jede kontextfreie Sprache existiert ein nicht-deterministischer PDA, der genau diese Sprache akzeptiert. Für jede Sprache L, die von einem nicht-deterministischen PDA akzeptiert wird, existiert eine kontextfreie Grammatik G mit L = L(G).
Computerlinguistik „Push Down“-Automaten und kontextfreie Grammatiken Beispiel L = {peter sucht paula, paula sucht peter, paula mag peter, peter mag paula, peter sucht peter, paula sucht paula, paula mag paula, peter mag peter} G = {S, {S, Agent, Verb, Patient}, {peter, paula, sucht, mag}, P) P = {S Agent Verb Patient, Agent peter, Agent paula, Verb sucht, Verb mag, Patient peter, Patient paula}
Computerlinguistik „Push Down“-Automaten und kontextfreie Grammatiken Die Grammatik in Greibach-Normalform: G‘ = {S, {S, Verb, Patient}, {peter, paula, sucht, hilft}, P‘) P‘ = {S peter Verb Patient, S paula Verb Patient, Verb sucht, Verb mag, Patient peter, Patient paula}
Computerlinguistik „Push Down“-Automaten und kontextfreie Grammatiken Der nicht-deterministische PDA: ndPDA = ({s0}, {peter, paula, sucht, mag}, {S, Verb, Patient, peter, paula, sucht, mag}, delta, s0, S} delta(s0, , S) = { (s0, peter Verb Patient), (s0, paula Verb Patient) } delta(s0, , Verb) = { (s0, sucht), (s0, mag)} delta(s0, , Patient) = { (s0, peter), (s0, paula)} delta(s0, peter, peter) = (s0, ) delta(s0, paula, paula) = (s0, ) delta(s0, mag, mag) = (s0, ) delta(s0, sucht, sucht) = (s0, )
Computerlinguistik „Push Down“-Automaten und kontextfreie Grammatiken delta(s0, , S) = { (s0, peter Verb Patient), (s0, paula Verb Patient) } delta(s0, , Verb) = { (s0, sucht), (s0, mag)} delta(s0, , Patient) = { (s0, peter), (s0, paula)} delta(s0, peter, peter) = (s0, ) delta(s0, paula, paula) = (s0, ) delta(s0, mag, mag) = (s0, ) delta(s0, sucht, sucht) = (s0, ) Eingabe: | peter mag paula (s0, S) (s0, peter Verb Patient)
Computerlinguistik „Push Down“-Automaten und kontextfreie Grammatiken delta(s0, , S) = { (s0, peter Verb Patient), (s0, paula Verb Patient) } delta(s0, , Verb) = { (s0, sucht), (s0, mag)} delta(s0, , Patient) = { (s0, peter), (s0, paula)} delta(s0, peter, peter) = (s0, ) delta(s0, paula, paula) = (s0, ) delta(s0, mag, mag) = (s0, ) delta(s0, sucht, sucht) = (s0, ) Eingabe: peter mag paula (s0, peter Verb Patient) (s0, Verb Patient) peter
Computerlinguistik „Push Down“-Automaten und kontextfreie Grammatiken delta(s0, , S) = { (s0, peter Verb Patient), (s0, paula Verb Patient) } delta(s0, , Verb) = { (s0, sucht), (s0, mag)} delta(s0, , Patient) = { (s0, peter), (s0, paula)} delta(s0, peter, peter) = (s0, ) delta(s0, paula, paula) = (s0, ) delta(s0, mag, mag) = (s0,) delta(s0, sucht, sucht) = (s0, ) Eingabe: peter | mag paula (s0, Verb Patient) (s0, mag Patient)
Computerlinguistik „Push Down“-Automaten und kontextfreie Grammatiken delta(s0, , S) = { (s0, peter Verb Patient), (s0, paula Verb Patient) } delta(s0, , Verb) = { (s0, sucht), (s0, mag)} delta(s0, , Patient) = { (s0, peter), (s0, paula)} delta(s0, peter, peter) = (s0, ) delta(s0, paula, paula) = (s0, ) delta(s0, mag, mag) = (s0, ) delta(s0, sucht, sucht) = (s0, ) Eingabe: peter mag paula (s0, mag Patient) (s0, Patient) mag
Computerlinguistik „Push Down“-Automaten und kontextfreie Grammatiken delta(s0, , S) = { (s0, peter Verb Patient), (s0, paula Verb Patient) } delta(s0, , Verb) = { (s0, sucht), (s0, mag)} delta(s0, , Patient) = { (s0, peter), (s0, paula)} delta(s0, peter, peter) = (s0, ) delta(s0, paula, paula) = (s0, ) delta(s0, mag, mag) = (s0, ) delta(s0, sucht, sucht) = (s0, ) Eingabe: peter mag | paula (s0, Patient) (s0, paula)
Computerlinguistik „Push Down“-Automaten und kontextfreie Grammatiken delta(s0, , S) = { (s0, peter Verb Patient), (s0, paula Verb Patient) } delta(s0, , Verb) = { (s0, sucht), (s0, mag)} delta(s0, , Patient) = { (s0, peter), (s0, paula)} delta(s0, peter, peter) = (s0, ) delta(s0, paula, paula) = (s0, ) delta(s0, mag, mag) = (s0, ) delta(s0, sucht, sucht) = (s0, ) Eingabe: peter mag paula (s0, paula) (s0, ) paula
Computerlinguistik Literatur Partee, B., ter Meulen, A. & Wall, R.E. (1990). Mathematical Methods in Linguistics. Dordrecht: Kluwer.