1 / 24

Semantik und Pragmatik

Semantik und Pragmatik. Übung 3 Definite Clause Grammar (DCG) Parsing-Strategien Frank Schilder. Einführung. PROLOG erlaubt die Definition von kontextfreien Grammatikregeln Effiziente und einfache Programmierung von Grammatiken möglich

aulani
Télécharger la présentation

Semantik und Pragmatik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Semantik und Pragmatik Übung 3 Definite Clause Grammar (DCG) Parsing-Strategien Frank Schilder

  2. Einführung • PROLOG erlaubt die Definition von kontextfreien Grammatikregeln • Effiziente und einfache Programmierung von Grammatiken möglich • Der Parser wird von PROLOG »frei Haus« geliefert, aberauchandere Parser sind möglich. • Lernziele dieser Sitzung: • DCG in PROLOG • Differenzlisten • Verschiedene Parsing-Strategien

  3. Struktur der Übung • Definite Clause Grammar (DCG) in PROLOG: • Angabe einer einfachen Grammatik. • Was funktioniert nicht? • Differenzlisten: Effizienz von PROLOG-Klauseln • Parsing-Strategien: • top-down • bottom-up (shift-reduce) • left-corner

  4. Terminologie • Kontextfreie Grammatik • Definition G=(N,T,R,S): • N = Menge der Nichtterminale • T = Menge der Terminale • R = Regelmenge • S = Startsymbol • Eine Grammatik ist kontextfrei, wenn sie nur Regeln der Form A -> genthält,mitA Œ N und g Œ (N » T)*

  5. S -> NP VP S -> NEG S S -> S CONJ S VP -> TV NP VP -> IV NP -> PN PN -> Pavarotti PN -> Loren PN -> Bond IV -> is hungry IV -> is boring IV -> is cute TV -> likes NEG -> It is not the case that CONJ -> and CONJ -> or BeispielgrammatikFragment 1

  6. Definite Clause Grammar (DCG) • DCGs sind in fast allen PROLOG-Systemen enthalten! • Grammatikregeln können auf einfache Art umgesetzt werden: • Gegeben seien die folgenden Regeln: • S -> aS, S -> l • In PROLOG • Nichtterminale kleingeschrieben • Terminale in Klammern[] • Aufruf mit s([a,a,a],[]), z.B. s --> [a], s. s --> [].

  7. Regeln und Merkmale • In den Regeln können den Nichtterminalen Merkmale zugeordnet werden: • Kasus und Numerus-Informationen können z.B. kodiert werden: • Parse-Bäume kann man z.B. wie folgt erhalten: s --> np(Num, Cas), vp(Num, Cas). s(s/[NP,VP]) --> np(NP), vp(VP).

  8. PROLOG-Aufrufe können in die Regeln einge- fügt werden: DCG und PROLOG • Disjunktionen werden mit dem Semikolon beschrieben: • Variablen sind auf der rechten Seite erlaubt: adjs --> []; (adj,adjs). s --> np(Num), vp(Num), {legal_num(Num)}. vp --> verb(Particle), np, [Particle].

  9. Sprachfragment F1 als DCG • Die Regeln für das Fragment F1 sind im Programm frag1.pl als DCG umgesetzt. • Gibt es Probleme? • It is not the case that James Bond is hungry and Sophia Loren is boring. • Zwei syntaktische Ableitungen, aber PROLOG findet nur die ersten Lösung, dann •-Schliefe. s --> np, vp. s --> s, conj, s. s --> neg, s. vp --> tv, np. ...

  10. Vorsicht: Linksrekursion • Eine Unendlichkeitsschleife entsteht, da das Prädikat s immer wieder aufgerufen wird. • PROLOG Programme dürfen keine linksrekursiven Klauseln haben! • Lösungen? • Schwach äquivalente Grammatik ohne linksrekursive Regeln (andere Baumstruktur!) • Andere Parsing-Strategien: • bottom-up (shift-reduce) • left-corner

  11. Differenzlisten • Eine Liste ist durch die Differenzbildung zweier Listen darstellbar. • Die Liste [1,2,3] kann z.B. durch die folgenden Differenzen dargestellt werden: • [1,2,3,4]-[4], • [1,2,3]-[] oder • [1,2,3,4,5]-[4,5] • Allgemein wird die Form [1,2,3|X]-X gewählt.

  12. Löchrige Listen • Differenzlisten sind offene Datenstrukturen mit »Löchern«, die später gefüllt werden können. • Differenzlisten erlauben eine effiziente Implementation von append/3 (built-in Prädikat in SWI): append(AF-BF, BF-BB, AF-BB).

  13. DCG in PROLOG Notation • Eine DCG Regel n0 --> v1,...,vn. ist “syntaktischer Zucker” für die Klausel • Die Regel S -> S, CONJS, S. wird in diese PROLOG-Klausel übersetzt: no(P0-P):- v1(P0-P1),...,vn(Pn_1-P). s(P0-P):- s(P0-P1),conjs(P1-P2),s(P2-P).

  14. Differenzlisten und DCG • Diese effiziente Art der Konkatenierung von Differenzlisten wird auch in DCGs eingesetzt: Zusammenfassung: • Differenzlisten sind eine effiziente Art Listen darzustellen. • Sie werden bei DCGs verwendet. • Darstellung unvollständiger Datenstrukturen s --> np, vp. s(P0-P) :- np(P0-P1), vp(P1-P).

  15. Linksrekursive Regeln werden in rechts-rekursive umgeformt: S -> NP VP S -> Neg S S -> S Conj S Einführung einer neuen Kategorie Sconj: S -> NP VP Sconj S -> Neg S Sconj Sconj -> Conj S Sconj -> l Schwach äquivalente Grammatik

  16. Parsing-Strategie:Bottom-up • Ausgangspunkt sind die einzelnen Wörter/Kategorien. • Wörter werden mit Regeln kombiniert • shift-reduce: • shift: nimm das nächste Wort des Satzes • reduce: kombiniere die Konstituenten mit dem neuen Wort und finde eine neue Konstituente

  17. Durchsuchen des Baumes:Bottom-up S S Conj S NP VP NP VP IV IV PN PN and Loren is cute Bond is hungry

  18. Initialisiere Stack = [] Shift Nimm das nächste Wort des Satzes Bestimme die Kategorie Push die Kategorie auf den Stack Reduce Falls die Kategorien auf dem Stack mit der rechten Seite einer Regel übereinstimmen, dann Entferne die Kategorien vom Stack Push die Kategorie der linken Seite der Regel auf den Stack Falls es keine weiteren Wörter in dem Satz mehr gibt, dann Falls Stack = [S], dann fertig sonst: Parse mißlungen! sonst: Gehe zu Schritt 2/3 Wahlmöglichkeit zwischen Schritt 2 und 3 Falls falsche Entscheidung getroffen wurde, dann Backtracking Algorithmus (shift-reduce) oder

  19. Parsing-Strategie:Left-corner • Der left-corner parser steht zwischen den beiden Extremen top-down und bottom-up. • Allgemeines Vorgehen des parsers: • Nimm das weiteste linksstehende Nichtterminal der rechten Seite einer Regel (M -> LC, RC). • Die Kategorie der linken Seite der Regel (M) ist erkannt, falls auch RC erkannt wird.

  20. Durchsuchen des Baumes:Left-Corner S S Conj S NP VP NP VP IV IV PN PN and Loren is cute Bond is hungry

  21. Erkenne, ob die Eingabe von der Kategorie M ist: Nimm das erste Wort der Eingabe und bestimme die Kategorie (LC -> Word) Errechne die transitive Hülle der left-corner-Relation mit LC und M: Falls LC = M ist und keine Wörter mehr im Satz vorkommen, dann fertig. sonst: suche eine Regel P -> LC,RC Erkenne, ob die Resteingabe von der Kategorie RC ist. Errechne die transitive Hülle der left-corner-Relation mit P und M Algorithmus (left-corner)

  22. Bewertung der Strategien • Top-down: • Gefahr der Linksrekursion • Bottom-up: • Kein Problem mit Linksrekursion, aber • Errechnung aller Konstituenten (auch sinnloser) • Left-corner: • Kein Problem mit Linksrekursion • Verkleinerung des Suchraums durch Vorhersagen der Kategorie

  23. Zusammenfassung • DCGs erlauben die einfache Umsetzung von kontextfreien Grammatiken in PROLOG: • Mittels von Merkmalen können weitere Informationen über die Ableitung erhalten werden (z.B. Baumstruktur) • Vermeidung der Linksrekursion bei top-down parsing: • äquivalente Grammatik • andere Parsing-Strategien: • bottom-up, • left-corner

  24. Quellenangaben • Kontextfreie Grammatiken • Hopcroft/Ullman, Introduction to Automata Theory, Languages, and Computation. Reading, Mass. Addison Wesley, 1979, p.93-99. • DCGs • Shieber/Peirera. Prolog and Natural Language Analysis. CSLI Lecture Notes 10. Stanford:Chicago University Press. 1987, p. 29-43. • Parsing-Strategien • M.W. Crocker. Mechanisms for Sentence Processing. Research Paper EUCCS/RP-70, Centre for Cognitive Science, University of Edinburgh, Scotland, UK, November 1996. • Differenzlisten • Sterling/Shapiro. Prolog: Fortgeschrittene Programmiertechniken. Reading, Mass. Addison Wesley, 1988, S.257-274.

More Related