Parsing-EinfŸhrung bersicht Falsifizierbarkeit, oder: Sind Grammatiken wissenschaftlich? Grammatik, Formalismus Kontextfreie Grammatiken Ableitungen Ziel Verstehen der linguistischen Motivation Intuitives VerstŠndnis, was ein Parser macht Benutzen des in Prolog eingebauten Parsers Parsing-EinfŸhrung Ð 1
Grammatik Lexikon-Definitionen fÿr ÈGrammatikÇ Wissen/Lehre von den RegularitŠten einer natÿrlichen Sprache Strukturelles Regelsystem Systematische Beschreibung der formalen RegularitŠten einer natÿrlichen Sprache Parsing-EinfŸhrung Ð 2
Sind Grammatiken wissenschaftlich? Falsifizierbarkeit Bei einer wissenschaftlichen Theorie soll klar sein, durch welche Beobachtungen sie widerlegt (falsifiziert) werden kšnnte. Womit wird eine Grammatik widerlegt? Bei vielen linguistischen Theorien unklar (!) Umdenken seit den 1950er Jahren Theorie Ÿber die Struktur einer Sprache = formales System von Grammatikregeln Beobachtbar bei einer Grammatik: Ein korrekter Satz entspricht nicht der Grammatik Ein falscher Satz entspricht der Grammatik klares, nachprÿfbares Falsifikations-Kriterium Parsing-EinfŸhrung Ð 3
Grammatik, Formalismus Grammatiken sollen so festgehalten werden, dass nachprÿfbar ist, ob ein Satz der Grammatik entspricht. Das heisst auch: In einer Notation, deren Bedeutung klar ist NatŸrliche Sprache ist jedoch unscharf und mehrdeutig Daher eignet sich eine formale Schreibweise besser Formalismus Formalisierung: Verwendung formaler Sprachen der Mathematik zur Beschreibung der Grammatik einer natÿrlichen Sprache Vorteile eines Formalismus mit mathematischer Grundlage: klarere Terminologie, gršssere PrŠzision Ñ Èes ist klar, worÿber geredet wirdç leichtere und zuverlšssigere berprÿfbarkeit der Argumente Parsing-EinfŸhrung Ð 4
Grammatik, Formalismus Die Grammatik ist in idealerweise in einem mathematisch fundierten Formalismus gehalten. Sonst wird schnell unklar, was genau die Theorie umfasst Sonst sind zwei Theorien kaum miteinander vergleichbar Sonst ist es schwer, SŠtze der Grammatik entsprechend maschinell zu verarbeiten Sonst kann leicht verschleiert werden, durch welche Beobachtungen die Theorie widerlegt wÿrde Parsing-EinfŸhrung Ð 5
Kontextfreie Grammatiken (CFG) Kontextfreie Grammatiken (Context-Free Grammars, CFG) sind ein solcher Formalismus von Noam Chomsky in den 1950er Jahren zur Modellierung der Syntax des Englischen vorgeschlagen gut erforschte mathematische Eigenschaften jahrzehntelange Diskussion, ob fÿr natÿrliche Sprachen mšchtig genug endgÿltige KlŠrung erst 1985: ZŸrichdeutsch und Bambara kšnnen nicht mit CFG beschrieben werden Es gibt andere, besser geeignete Formalismen als CFG dennoch wichtig fÿr Linguistik, Computerlinguistik, Informatik Parsing-EinfŸhrung Ð 6
Kontextfreie Regeln Bestandteile einer kontextfreien Regel: S NP VP linke Seite left-hand side rechte Seite right-hand side Zwei gleichwertige Lesarten: Ein S besteht aus einer NP und einer VP Eine NP, gefolgt von einer VP, ergibt ein S NP S VP Parsing-EinfŸhrung Ð 7
Kontextfreie Grammatiken Beispiele fÿr Regeln einer kontextfreien Grammatik: S NP VP NP Det N VP V NP VP V Det the Det a N man N woman V loves V sleeps V sees V thinks GemŠss diesen Grammatikregeln sind beispielsweise die folgenden SŠtze (S) erlaubt: a man sleeps the woman sees a man a woman loves a woman Parsing-EinfŸhrung Ð 8
Kontextfreie Grammatiken Struktur von Èa man sleepsç: Det NP N S VP V S NP VP NP Det N VP V NP VP V Det the Det a N man N woman V loves V sleeps V sees V thinks a man sleeps Parsing-EinfŸhrung Ð 9
Kontextfreie Grammatiken Struktur von Èa woman sees a manç: S S NP VP NP Det N VP V NP VP V Det the Det a N man N woman V loves V sleeps V sees V thinks NP VP Det N V NP a woman sees Det N a man Parsing-EinfŸhrung Ð 10
Kontextfreie Grammatiken Struktur von Èa woman loves a womanç: S S NP VP NP Det N VP V NP VP V Det the Det a N man N woman V loves V sleeps V sees V thinks NP VP Det N V NP a woman loves Det N a woman Parsing-EinfŸhrung Ð 11
Bestandteile einer CFG Symbole Ñ V V NP N Det VP S woman sees sleeps the man loves thinks Startsymbol Ñ S (Element von V) Terminalsymbole Ñ Σ (Teilmenge von V) Regeln Ñ R S NP VP NP Det N VP V NP VP V Det the Det a N man N woman V loves V sleeps V sees V thinks Parsing-EinfŸhrung Ð 12
Bestandteile einer CFG Eine kontextfreie Grammatik ist ein 4-Tupel V, Σ, R, S, wobei V ist eine endliche Menge von Symbolen Σ ist eine endliche Menge von Terminalsymbolen V R Ñ endliche Menge von Regeln (V Ð Σ) V* S Ñ Startsymbol V Ð Σ Nicht-Terminale V Ð Σ (die Menge der Elemente von V, die nicht in Σ sind) Wir schreiben fÿr die Regeln A u statt A, u, um die Regeln lesbarer zu machen Parsing-EinfŸhrung Ð 13
Ableitung FŸr u, v V* schreibt man u v genau dann wenn es gibt Ketten x, y, võ V* und A V Ð Σ so dass u = x A y v = x võ y A võ Beispiele a man V a woman a man sees a woman Det man V a woman a man V a woman a man VP a man V NP S NP VP S NP VP NP Det N VP V NP VP V Det the Det a N man N woman V loves V sleeps V sees Parsing-EinfŸhrung Ð 14
Ableitung Eine Folge von durch verbundenen Ketten heisst Ableitung (derivation). Da in jedem Schritt irgendein Nichtterminal ersetzt wird, kann dieselbe Kette auf verschiedene Weisen vom Startsymbol abgeleitet werden: S NP VP Det N VP a N VP a man VP a man V a man sleeps S NP VP NP V Det N V Det man V Det man sleeps a man sleeps Parsing-EinfŸhrung Ð 15
Parser, Akzeptor Ein Programm zur syntaktischen Analyse (ÈParserÇ) nimmt eine Kette von Wšrtern entgegen beurteilt, ob die Eingabe gemšss den Regeln einer Grammatik zulšssig ist Wenn ja, geben richtige Parser die Struktur der Eingabekette aus Akzeptoren antworten nur mit ÈakzeptabelÇ bzw. Ènicht akzeptabelç FŸr denselben Grammatik-Formalismus kann es verschiedene Parsingverfahren geben FŸr kontextfreie Grammatiken: Dutzende Verfahren Parsing-EinfŸhrung Ð 16
Top-Down-Parsing Ein Top-Down-Parser fÿr eine kontextfreie Grammatik fšngt mit dem Startsymbol an fÿhrt wiederholt Ableitungsschritte durch Ziel: Ableiten der zu analysierenden Kette S NP VP Det N VP a N VP a man VP a man V a man sleeps S NP VP NP Det N VP V NP VP V Det the Det a N man N woman V loves V sleeps V sees V thinks Parsing-EinfŸhrung Ð 17
Top-Down-Parsing Vorgehen beim Top-Down-Parsing: Ich suche ein S Um ein S zu erhalten, brauche ich eine NP und eine VP Um eine NP zu erhalten, brauche ich ein Det und ein N Um ein Det zu erhalten, kann ich das Wort ÈaÇ verwenden Ñ gefunden Um ein N zu erhalten, kann ich das Wort ÈmanÇ verwenden Ñ gefunden Damit ist die NP vollstšndig Um eine VP zu erhalten, brauche ich ein V Um ein V zu erhalten, kann ich das Wort ÈsleepsÇ verwenden Ñ gefunden Damit ist die VP vollstšndig Damit ist das S vollstšndig Det a NP S NP VP NP Det N VP V NP VP V N man S Det the Det a N man N woman VP V sleeps V loves V sleeps V sees V thinks Parsing-EinfŸhrung Ð 18
Bottom-Up-Parsing Ein Bottom-Up-Parser fÿr eine kontextfreie Grammatik fšngt mit der zu analysierenden Kette an fÿhrt wiederholt Ableitungsschritte ÈrŸckwŠrtsÇ durch Ziel: Erreichen des Startsymbols S NP VP NP V NP sleeps Det N sleeps Det man sleeps a man sleeps S NP VP NP Det N VP V NP VP V Det the Det a N man N woman V loves V sleeps V sees V thinks Parsing-EinfŸhrung Ð 19
Bottom-Up-Parsing Vorgehen beim Bottom-Up-Parsing: Nimm ein Wort Ñ es ist ÈaÇ ÈaÇ ist ein Det S Nimm ein weiteres Wort Ñ es ist ÈmanÇ ÈmanÇ ist ein N NP VP Det und N bilden zusammen eine NP Nimm ein weiteres Wort Ñ es ist ÈsleepsÇ ÈsleepsÇ ist ein V Det N V V bildet (fÿr sich alleine) eine VP NP und VP bilden zusammen ein S a man sleeps S NP VP NP Det N VP V NP VP V Det the Det a N man N woman V loves V sleeps V sees V thinks Parsing-EinfŸhrung Ð 20
Definit-Klausel-Grammatiken (DCGs) In Prolog ist ein einfacher Top-Down-Parser bereits eingebaut. Grammatik besteht aus Prolog-Klauseln (Definiten Klauseln) nÿtzlich zum schnellen Ausprobieren einer Mini-Grammatik Allerdings: eher ineffizientes Verfahren bei mehrdeutigen Grammatiken werden unter UmstŠnden Teile des Satzes mehrmals analysiert ÈAufhŠngenÇ bei bestimmten Grammatiken fÿr richtige Sprachverarbeitungsprojekte so gut wie unbrauchbar Parsing-EinfŸhrung Ð 21
DCGs: Formalismus Regeln mit Nichtterminalen auf der rechten Seite: s --> np, vp. np --> det, n. vp --> v. vp --> v, np. Regeln mit Terminal-Symbolen auf der rechten Seite: det --> [the]. det --> [a]. n --> [cat]. v --> [sees]. v --> [sings]. Parsing-EinfŸhrung Ð 22
DCGs: Benutzung Ein eingebautes PrŠdikat phrase/2 ŸberprŸft, ob von einem Nichtterminal eine Kette von Terminalsymbolen abgeleitet werden kann.?- phrase(s, [the, cat, sings]). yes?- phrase(np, [a, cat]). yes?- phrase(s, [a, cat]). no Parsing-EinfŸhrung Ð 23
Aufgaben: Parsing-EinfŸhrung Programmiertechniken der Computerlinguistik 1 á Wintersemester 1998/99 1. Kontextfreie Grammatik erstellen Schreibe eine Grammatik fÿr einfache deutsche SŠtze. Benutze hierzu folgende Nichtterminal-Symbole: Symbol Bedeutung Beispiel(e) S Satz Die Katze spielt mit dem gelben KŠse. NP Nominal-Phrase die Katze á dem gelben KŠse VP Verbal-Phrase spielt mit dem KŠse á singt PP PrŠpositional-Phrase mit dem KŠse N Nomen KŠse V Verb spielt á singt á sieht P PrŠposition mit á fÿr á unter A Adjektiv gelben á rotes á grÿn Det Artikel (Determiner) der á die á das á dem 3. ber-/untergenerierung Eine Grammatik heisst Ÿbergenerierend, wenn zu ihrer Sprache auch SŠtze gehšren, die nicht Teil der modellierten natÿrlichen Sprache sind. Umgekehrt heisst eine Grammatik untergenerierend, wenn sie bestimmte SŠtze nicht akzeptiert, auch wenn diese Bestandteil der natÿrlichen Sprache wšren, die mit der Grammatik modelliert wird. a) Ist Deine Grammatik aus Aufgabe 1 Ÿbergenerierend? Nenne einige fehlerhafte deutsche SŠtze, welche Deine Grammatik akzeptiert. b) Ist Deine Grammatik untergenerierend? Nenne einige korrekte deutsche SŠtze, welche Deine Grammatik nicht akzeptiert. c) berlege Dir, ob es fÿr die maschinelle Verarbeitung natÿrlicher Sprache schlimmer ist, wenn eine Grammatik Ÿber- oder wenn sie untergeneriert. 2. Formulieren als DCG berprÿfe fÿr einige BeispielsŠtze, ob sie Deiner Grammatik aus der ersten Aufgabe (also Deiner Theorie Ÿber die Syntax des Deutschen) entsprechen, indem Du die Grammatik als DCG formulierst und den in Prolog eingebauten Parser (der in der bisher vorgestellten Form ja eigentlich nur ein Akzeptor ist) benutzt. Gibt es eine Mšglichkeit, wie Du Prolog nach sšmtlichen SŠtze fragen kannst, die der Grammatik entsprechen?