Prolog 8. Kapitel: parametrisierte DCGs

Ähnliche Dokumente
Künstliche Intelligenz

Künstliche Intelligenz Sprachverarbeitung mit Prolog

DCG II. Heute: DCGs mit extra Argumenten. DCGs mit Agreementmerkmalen. Parsebäume. Extra Tests. Programmierkurs Prolog p.1

Tutorium Prolog für Linguisten 12

Einführung in unifikationsbasierte Grammatikformalismen

Sie gab das Buch ihrer Schwester.

Einführung in die Computerlinguistik

Prolog 4. Kapitel: Listen

Flexion. Grundkurs Germanistische Linguistik (Plenum) Judith Berman Derivationsmorphem vs. Flexionsmorphem

Syntaktische Kategorien: Phrasenkategorien

Artikelwörter. Jason Rothe

Lösungen zum Aufgabenblatt 9 Symbolisches Programmieren

13. Übungsblatt

2. Überlegen Sie, ob folgende Sprache vom gleichen Typ sind (m, n 1): Ordnen Sie die Sprachen jeweils auf der Chomsky-Hierarchie ein.

Lösungen zum Aufgabenblatt 4 Computerlinguistische Anwendungen

1. Stellen Sie die Konstituentenstruktur der folgenden Sätze als Baumdiagramme dar:

Einführung in PROLOG 7 Kontextfreie Grammatiken

Einführung in die Computerlinguistik

Prolog 2. Kapitel: Matching und Beweisführung

Semantik: Semantik von Merkmalsstrukturen

Das Flexionssystem des Deutschen: Allgemeines

Morphologische Merkmale. Merkmale Merkmale in der Linguistik Merkmale in der Morpholgie Morphologische Typologie Morphologische Modelle

Einführung in die Computerlinguistik. Morphologie II

Prolog 10. Kapitel: Cut und Negation

Übungsaufgaben. Eine kontextfreie Grammatik lässt sich formal als Quadrupel darstellen: D : der, das N : Hund, Kaninchen V : sieht, beißt

Teil II: Phrasen und Phrasenstruktur

Vorlesung Morphologie Flexion

Wortarten Merkblatt. Veränderbare Wortarten Unveränderbare Wortarten

Wortarten Merkblatt. Veränderbare Wortarten Unveränderbare Wortarten

Zur Struktur der Verbalphrase

Einführung in die Linguistik Butt / Eulitz / Wiemer. Syntax I

Artikelspiel erstellt von L. Schikowski M.A., Universität Göttingen, IIK e.v. Göttingen, Gruppen-/Partnerarbeit

Vertiefung der Grundlagen der Computerlinguistik. Semesterüberblick und Einführung zur Dependenz. Robert Zangenfeind

Prolog 3. Kapitel: Rekursion

Parsing-EinfŸhrung Ð 1

Prolog 3. Kapitel: Rekursion

Nomen Überblicksübung Lösungsansätze

Deutsch Grammatik Sekundarstufe 1 Die 5 Wortarten

Grammatik des Standarddeutschen III. Michael Schecker

Valenz: Komplemente vs. Argumente

Mehr über Adjektivendungen. NIVEAU NUMMER SPRACHE Anfänger A2_2067G_DE Deutsch

VP vs.?p. N V P N? N P N V Peter kommt nach Hause...dass Peter nach Hause kommt. Syntax V 2

Grundwissen Deutsch: Nomen. Das Nomen (lat. Substantiv) PDF wurde mit pdffactory Pro-Prüfversion erstellt.

Spezielle Themen der KI. NLP Natural Language Processing Parsing

Einführung in die Computerlinguistik Morphologie (1): morphembasierte Morphologie mit Transduktoren

Syntax. Ending Khoerudin Deutschabteilung FPBS UPI

KAPITEL I EINLEITUNG

Modulabschlussklausur Einführung in das Studium der Sprachwissenschaft

6. Klasse. Grammatik. Deutsch. Grammatik. in 15 Minuten

Spezielle Themen der KI. NLP Natural Language Processing. Sprachverstehen

Grammatik des Standarddeutschen. Michael Schecker

Datenstrukturen DCG Grammatiken. Tutorial I Operationen auf Datenstrukturen II Bäume DCGs und Semantik II

Einführung in die Computerlinguistik Morphologie (morphembasiert mit Transduktoren)

Gymbasis Deutsch: Grammatik Wortarten Verb: Bestimmung der infiniten Verben Lösung 1 Lösungsansätze Bestimmung der infiniten Verben

Wort. nicht flektierbar. flektierbar. nach Person, Numerus, Modus, Tempus, Genus verbi flektiert. nach Genus, Kasus, Numerus flektiert

Relativsätze, Teil I

Formale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen

Aufgabe 3 (Wortmeldung erforderlich) Nennen Sie in hierarchischer Anordnung vom Großen zum Kleinen fünf grammatische Beschreibungsebenen der Sprache.

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

Prolog 2. Kapitel: Matching und Beweisführung

Alphabet, formale Sprache

Wortarten I: Die Deklinierbaren

6. Klasse. Grammatik. Deutsch. Grammatik. in 15 Minuten

Prolog 5. Kapitel: Arithmetik

a) Erklären Sie, was eine SOV Sprache ist und was eine V2 Sprache ist. b) Welche Wortstellungsmuster sind eher selten in Sprachen der Welt?

Flexionsmerkmale und Markiertheit

Einführung in die Computerlinguistik. Syntax IV

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

Fragen zur Vorlesung Syntax natürlicher Sprachen

Grundkurs Linguistik Wintersemester 2014/15. Morphologie. Jens Fleischhauer & Anja Latrouite

Syntax I. Vorlesung: Syntax des Deutschen unter besonderer Berücksichtigung regionaler Varietäten Claudia Bucheli Berger

Inhaltsverzeichnis Vorwort... 6 Deutsche Fälle Allgemein... 7 Der Nominativ Der Akkusativ... 19

6 Natürlichsprachliche Systeme

Die Fälle Nominativ, Akkusativ und Dativ. NIVEAU NUMMER SPRACHE Anfänger A1_2057G_DE Deutsch

Grammatikanalyse. Prof. Dr. John Peterson. Sprechstunde: Montags, 14:30-15:30h Raum LS10/Raum 425. Sommersemester 2015 Donnerstags, 14:15h-15:45h

Baumadjunktionsgrammatiken

Einführung in die Computerlinguistik

Kasus: Wiederholung GRAMMATIK. NIVEAU NUMMER SPRACHE Anfänger A2_2047G_DE Deutsch

HPSG. Referat zu dem Thema Kongruenz im Englischen Von Anja Nerstheimer

4. 4. Algorithmen und Datenstrukturen in deskriptiven Programmiersprachen

Adjektive als Nomen. Media: TV, newspapers, radio Grammar & Structure Level B1 GER_B G

Universität Karlsruhe (TH)

Subjekt und Subjektpositionen

STRUKTUREN DER NOMINALPHRASE 1: GRUNDSTRUKTUREN. ART [Linkserweiterung] N (Kopf) [Rechtserweiterung]

Transkript:

Zusammenfassung Kapitel 7 Prolog 8. Kapitel: parametrisierte DCGs Dozentin: Wiebke Petersen Kursgrundlage: Learn Prolog Now (Blackburn, Bos, Striegnitz) Wir haben gesehen, dass Grammatiken, die append/3 einsetzen sehr ineffizient sind. Differenzlisten ermöglichen die Implementierung effizienter Grammatiken. DCGs bieten eine sehr einfache, direkte Methode zur Formulierung von kontextfreien Grammatiken in Prolog. DCGs werden intern in Grammatiken mit Differenzlisten übersetzt. Keywords: kontextfreie Grammatiken, DCGs, (Links-)Rekursion Wichtig: Vermeide Linksrekursion in DCGs Ausblick Kapitel 8: parametrisierte DCGs Petersen Prolog: Kapitel 8 1 Petersen Prolog: Kapitel 8 2 Erweiterung unserer DCG um Plurale Ausweg: parametrisierte DCGs det --> [eine]. n --> [katze]. Bei der Erweiterung um Plurale steigt die Zahl der Regeln, werden Regeln schwerer lesbar, gehen Generalisierungen verloren. s --> s_sing. s --> s_plur. s_sing --> np_sing, vp_sing. s_plur --> np_plur, vp_plur. np --> np_sing. np --> np_plur. np_sing --> det_sing, n_sing. np_plur --> det_plur, n_plur. np_plur --> n_plur. vp_sing --> v_sing, np. vp_plur --> v_plur, np. det_sing --> [eine]. det_sing --> [die]. det_plur --> [die]. n_sing --> [maus]. n_sing --> [katze]. n_plur --> [maeuse]. n_plur --> [katzen]. v_sing --> [jagt]. v_plur --> [jagen]. % ohne Pluralformen det --> [eine]. n --> [katze]. DCG Regeln können mit zusätzlichen Parametern oder Merkmalen angereichert werden. % mit Pluralformen % parametrisierte DCG s --> np(num), vp(num). np(num) --> det(num), n(num). vp(num) --> v(num), np(_). det(sing) --> [eine]. det(_) --> [die]. det(plur) --> []. n(sing) --> [maus]. n(sing) --> [katze]. n(plur) --> [maeuse]. n(plur) --> [katzen]. v(sing) --> [jagt]. v(plur) --> [jagen]. Petersen Prolog: Kapitel 8 3 Petersen Prolog: Kapitel 8 4

Parametrisierte DCGs Erweiterung unserer Grammatik um Genus 1 2 s --> np(num), vp(num). 3 np(num) --> det(num), n(num). 4 vp(num) --> v(num), np(_). 5 6 7 det(sing) --> [eine]. 8 det(_) --> [die]. 9 det(plur) --> []. 10 n(sing) --> [maus]. 11 n(sing) --> [katze]. 12 n(plur) --> [maeuse]. 13 n(plur) --> [katzen]. 14 v(sing) --> [jagt]. 15 v(plur) --> [jagen]. Zeile 2: NP und VP müssen im Numerus übereinstimmen. Zeile 3: der Numerus der NP wird bestimmt von dem Numerus von Det und N. Zeile 4: der Numerus der VP wird bestimmt vom Numerus des Verbs. Der Numerus der NP ist egal. Zeile 8: Synkretismus: Die Wortform die wird im Singular und im Plural verwendet. Zeile 9: Im Plural kann der Artikel weggelassen werden. Wie kann diese Grammatik um Maskuline (z.b. Hund ) und Neutra (z.b. Pferd ) erweitert werden? Kommen Maskuline und Neutra hinzu, muss auf folgendes geachtet werden: die Genuskongruenz zwischen Artikel und Nomen ( der Hund vs. das Hund ) die Wahl des korrekten Kasus für Subjekt und Objekt ( der Hund jagt den Hund vs. der Hund jagt der Hund ) Das Genus wird als zusätzlicher Parameter modelliert: s --> np((nom,num,_)), vp(num). np(kng) --> det(kng), n(kng). vp(num) --> v(num), np((akk,_,_)). det((nom,sing,mas)) --> [der]. det((akk,sing,mas)) --> [den]. det((_,sing,fem)) --> [die]. det((_,sing,neu)) --> [das]. det((_,plur,_)) --> [die]. det((_,plur,_)) --> []. n((_,sing,fem)) --> [maus]. n((_,plur,_)) --> [maeuse]. n((_,sing,fem)) --> [katze]. n((_,plur,_)) --> [katzen]. n((_,sing,mas)) --> [hund]. n((_,plur,mas)) --> [hunde]. n((_,sing,neu)) --> [pferd]. n((_,plur,neu)) --> [pferde]. v(sing) --> [jagt]. v(plur) --> [jagen]. Petersen Prolog: Kapitel 8 5 Petersen Prolog: Kapitel 8 6 parametrisierte DCGs: interne Repräsentation Prolog als Akzeptor, Generator, Parser s --> np(num), vp(num). np(num) --> det(num), n(num). n(sing) --> [maus]. s(a, C) :- np(num, A, B), vp(num, B, C). np(num, A, C):- det(num, A, B), n(num, B, C). n(sing, [maus A], A). p1(p11,...,p1i) --> p2(p21,...,p2j),..., pn(pn1,...,pnk). p1(p11,...,p1i,v1,vn):- p2(p21,...,p2j,v1,v2),..., pn(pn1,...,pnk,vn-1,vn). Die Parameter werden intern als zusätzliche Argumente realisiert. Ein Akzeptor ist eine Maschine, die entscheiden kann, ob ein String von einer Grammatik generiert wird.?- s([die,maus,jagt,die,maus],[]). true. Ein Generator ist eine Maschine, die zu einer gegebenen Grammatik, die von der Grammatik generierten Strings ausgeben kann.?- s(x,[]). X = [die,maus,jagt,die,maus]. Ein Parser ist eine Maschine, die zu einer gegebenen Grammatik und einem String angibt, ob der String von der Grammatik generiert wird und wenn ja, einen Ableitungsbaum zu dem String ausgibt. Prolog ist ein Akzeptor und ein Generator, aber auch ein Parser? Petersen Prolog: Kapitel 8 7 Petersen Prolog: Kapitel 8 8

Ableitungsbaum repräsentiert als komplexer Prologterm Prolog als Parser S Idee: Der Ableitungsbaum wird als zusätzlicher Parameter behandelt. NP VP s(s(np,vp)) --> np(np), vp(vp). np(np(det,n)) --> det(det), n(n). vp(vp(v,np)) --> v(v), np(np). Det die N katze V klaut Det NP N det(det(eine)) --> [eine]. det(det(die)) --> [die]. n(n(maus)) --> [maus]. n(n(katze)) --> [katze]. v(v(jagt)) --> [jagt]. v(v(klaut)) --> [klaut]. die maus?- s(t,[die, katze, klaut, die, maus], []). T = s(np(det(die), n(katze)), vp(v(klaut), np(det(die), n(maus)))) T = s(np(det(die), n(katze)), vp(v(klaut), np(det(die), n(maus)))) Petersen Prolog: Kapitel 8 9 Petersen Prolog: Kapitel 8 10 kontextsensitive Sprache a n b n c n Die kontextsensitive Sprache a n b n c n wird von der Grammatik S ɛ, S A B S C, B A A B, A a, B b, C c generiert. Diese Sprache lässt sich nicht direkt als DCG schreiben. Wir können aber Parameter einsetzen, die das Zählen der a s, b s und c s übernehmen. s --> ablock(count),bblock(count),cblock(count). ablock(0) --> []. ablock(succ(count)) --> [a],ablock(count). bblock(0) --> []. bblock(succ(count)) --> [b],bblock(count). cblock(0) --> []. cblock(succ(count)) --> [c],cblock(count). Petersen Prolog: Kapitel 8 11 Extraziele Mithilfe von Extrazielen können wir auf die umständlichere successor-notation für die Zähler verzichten (Nachteil: Generierung nicht mehr möglich). s --> ablock(count),bblock(count),cblock(count). ablock(0) --> []. ablock(newcount) --> [a],ablock(count), {NewCount is Count + 1}. bblock(0) --> []. bblock(newcount) --> [b],bblock(count), {NewCount is Count + 1}. cblock(0) --> []. cblock(newcount) --> [c],cblock(count), {NewCount is Count + 1}. Externe Repräsentation: ablock(newcount) --> [a],ablock(count), {NewCount is Count + 1}. Interne Repräsentation: ablock(b, [a A], D) :- ablock(c, A, E), B is C+1, D=E. Petersen Prolog: Kapitel 8 12

Zusammenfassung Kapitel 8 : externe/interne Notation Wir haben Parameter kennengelernt und diese eingesetzt, um grammatische Constraints wie z.b. Kongruenz zu erfassen, um mithilfe eines Zählers die kontextsensitive Sprache a n b n c n zu modellieren. Wir haben gesehen, wie wir DCGs mit Extrazielen anreichern können. Dies ist möglich, da DCGs nur notational sugar sind. Mit Parametern und Extrazielen ist es möglich die Grenzen von kontextfreien Grammatiken zu verlassen. Keywords: Parameter, Extraziele Wichtig: Durch Parameter und Extraziele sind DCGs mächtiger als kontextfreie Grammatiken. Ausblick Kapitel 9: Terme und Operatoren Übertragen Sie die folgenden DCGs in die interne Prolognotation: 1 % mit Parametern 2 a(t) --> b(t), c. 3 b(t) --> [ha]. 4 c --> d(s,r), [hu]. 1 % mit Extrazielen 2 a --> b, c, {mag(popeye,spinat)}. 3 b(t) --> [ha], {wizart(t),sailor(popeye)}. Petersen Prolog: Kapitel 8 13 Petersen Prolog: Kapitel 8 14 : Grammatik 1 Erweitern Sie Ihre Grammatik um möglichst viele der folgenden Punkte (Vorsicht, bei manchen dieser Punkte müssen Sie das Lexikon sehr stark erweitern, gehen Sie daher schrittweise vor): Maskuline und Neutra, Singular- und Pluralformen transitive Verben, die ein Komplement im Dativ verlangen (z.b. helfen ) ditransitive Verben Adjektive (Vorsicht, die Flexion von Adjektiven ist für Maskuline und Neutra von dem Determinationstyp abhängig: ein schönes Pferd, das schöne Pferd ) lokative Präpositionalphrasen wie z.b. unter dem Tisch, neben dem Tisch, auf dem Tisch (es müssen nur syntaktisch wohlgeformte Sätze gebildet werden, dabei ist es egal, ob sie semantisch sinnvoll sind) Eigennamen Pronomen Konjunktionen Schreiben Sie sie als parametrisierte DCG. 2 Verändern Sie Ihre Grammatik so, dass Sie sie zum Parsen einsetzen können. Es soll also zu jedem Satz der Ableitungsbaum gebildet werden (hierzu müssen Sie einen zusätzlichen Parameter für den Ableitungsbaum verwenden). Petersen Prolog: Kapitel 8 15 : Separieren des Lexikons Lesen sie Abschnitt 8.2.1 in Learn Prolog Now! Separieren sie, wie in dem Abschnitt beschrieben, ihre Grammatik von ihrem Lexikon. Petersen Prolog: Kapitel 8 16

: kontextsensitive Sprachen 1 Vergleichen Sie die beiden Grammatiken für die Sprache a n b n c n von Folie 11 und 12. Wie können Sie fragen, ob die Strings aaabbbccc und aabbbcc von den Grammatiken generiert werden? Können Sie mit den Grammatiken auch Strings generieren? Welche Argumente müssen jeweils bei der Anfrage instantiiert sein? 2 Schreiben Sie eine DCG, die die Sprache a n b m c n d m akzeptiert. Petersen Prolog: Kapitel 8 17