180 likes | 423 Views
Semantik und Pragmatik. Übung 4 Fragment 2 Skopusambiguitäten Frank Schilder. Einführung. Erweiterung des Fragments 1 aus der Vorlesung Aussagenlogik -> Prädikatenlogik Quantifier Repräsentation der syntaktischen Baumstruktur als Listen. Skopusambiguitäten mittels Quantorenanhebung
E N D
Semantik und Pragmatik • Übung 4 • Fragment 2 • Skopusambiguitäten • Frank Schilder
Einführung • Erweiterung des Fragments 1 aus der Vorlesung • Aussagenlogik -> Prädikatenlogik • Quantifier • Repräsentation der syntaktischen Baumstruktur als Listen. • Skopusambiguitäten mittels Quantorenanhebung • PROLOG-Programm zur Erzeugung aller Lesarten
Lernziele • Vertiefung der DCG Kenntnisse: • Arbeiten mit Merkmalen bei --> (bzw. --->) • Repräsentation der Datenstruktur Baum • Listenschreibweise (Verallgemeinerung der Übungsaufgabe 3) • Übersetzung in Prädikatenlogische Ausdrücke • Alle Lesarten erhalten mittels Backtracking • Gebrauch der Prädikate fail/0 undfindall/3
Struktur der Übung • Vorstellung des erweiterten Fragments 2 • Neue Regeln • linksrekursive Regeln können mittels des left-corner parser verarbeitet werden! • Baumstruktur erzeugen mittels der Grammatik in frag2.pl • Listenrepräsentation • Übersetzung der syntaktischen Struktur in Prädikatenlogik • Quantorenanhebung durch raise/2in quant.pl
Fragment 2 • Das Fragment 1 wird durch Indexe j Œ N an NPs und durch weitere Regeln ergänzt: • Quantoren: NPj -> Det NP • Pronomen: NPj -> ProNj • Ditransitive Verben: VP -> Vdt NPj PPto • Präpositionalphrase 'to': PPto -> 'to' Np • Das Lexikon wurde ausgebaut: • Determiner: the, a, every • Nomen: book, fish, man, woman • Pronomen: he, she, it, him, her, herself, himself
Neue Regeln für das Fragment • Diese Regeln sollen nun in das Fragment 1 eingebaut werden • Der left-corner parser erwartet Regeln mittels des Prädikates ---> • Quantoren: np(_J) ---> det, nom. • Pronomen: np(J) ---> pron(J). • Ditransitive Verben: vp ---> vdt, np(_J), ppto(PPto). • Präpositionalphrase 'to': ppto(ppto/[(-to),NPj]) ---> pp((-to)), np(NPj).
Darstellung von Bäumen • Eine visuelle Ausgabe ist erforderlich! • Eine Baumstruktur soll die syntaktische Struktur beschreiben. • Der Aufruf der DCG Klauseln beinhaltet implizit den Ableitungsbaum für den Satz. • Mittels weiterer Merkmale in den DCG Klauseln kann die Baumstruktur der Ableitung zurückgegeben werden: • s(Root/[FstNode, SndNode..XthNode]) ---> a(FstNode),b(SndNode)..z(XthNode).
Zwischenbilanz • Erweitertes Fragment 2 • Listendarstellung der syntaktischen Struktur in frag2.pl • Ausgabeprädikate: • display_tree/1 • display_trees/1 • einbinden mit: S -> NP VP S VP NP s(s/[NP, VP]) ---> np(NP), vp(VP). :-[/home/wsv_8/schilder/SemPrag/dt/drawSWI.pl].
Übersetzen der syntaktischen Struktur • Übersetzungsregeln erlauben die Ableitung der prädikatenlogischen Formel: • I([PN ,Loren']) = loren' • I([IV ,is cute']) = schlau’ • I([VP [IV alpha]]) = I([IV alpha]) • I([NP [PN alpha]]) = I([PN alpha]) • I([S [NP alpha] [VP beta]]) = I([VP beta])(I([NP alpha]))... • Ein Übersetzungsprädikat semtrans/2 liefert diese Übersetzung in PROLOG.
Skopusambiguitäten • Skopusambiguitäten entstehen bei mehr als zwei Quantoren: • Every man likes a woman. • Zwei Lesarten sind möglich: • Spezielle Lesart: $x "y (man(y)Æ woman(x) Ÿlikes(y,x)) • Allgemeine Lesart:"y $x (man(y)Æwoman(x) Ÿ likes(y,x)) • Wie werden zwei logische Strukturen aus einer syntaktischen Struktur erzeugt?
Quantorenanhebung S VP NP1 NP2 V • Nach Montague werden Quantoren in der syntaktischen Struktur »angehoben«. • Die Reihenfolge der Regelanwendung zur Quantorenanhebung ist beliebig! • Alle möglichen Permutationen werden erzeugt! S S S NP2 S S NP1 NP1 VP S e1 NP2 e2 VP V e1 e2 V
Suche und Ersetze • Regel zur Quantorenanhebung: • [S g[NP [Deta] [Nomb]]id] => [S[NP [Deta] [Nomb]]i [Sg [NPei] d]] • Das PROLOG Prädikat raise/2 durchsucht den Syntaxbaum und führt die Ersetzung durch: • Zuerst wird nach einer NP Konstruktion gesucht und diese durch die Spur ei ersetzt (member_del/4). • Dann wird der neue Baum erneut durchsucht.
raise/2 • raise(s/G,s/[np(J)/det/A,nom/B], GResult]):- member_del(np(J)/[det/A,nom/B], np(J)/(-e),G,Gnew), raise(s/Gnew,GResult). • raise(GResult,GResult):- !, \+ member_tree(np(J)/[det/A,nom/B], Gresult).
findall/3 • Backtracking liefert alle Lesarten mit • findall(RTree,raise(Tree,RTree),Readings) • RTree = Variable • raise(Tree,RTree) = Prädikat, das »gebacktrackt« wird • Readings = Liste der Lösungen • Mit findall/3 werden alle Lesarten in einer Liste abgespeichert.
Zusammenfassung • Erweiterung des Fragments: • Quantoren (Prädikatenlogik) • Pronomen • ditransitive Verben • Präpositionalphrasen • Übersetzungsregeln in PROLOG • Skopusambiguitäten erlauben mehrere Lesarten • Quantorenanhebung erzeugt alle möglichen Lesarten aus einer syntaktischen Baumstruktur
Quellenangaben • Sourcecode für frag2.pl/lexf2.pl/quant.pl/sem.pl in: • /home/wsv_8/schilder/SemPrag/Quant/ • *Neuer* Pfad!! • lcparser.pl enthält left-corner parser