Syntax natürlicher Sprachen
              
2Std.Vorlesung + 2Std.Tafelübung

Hans Leiß

Termine

Anmeldung
für Informatiker: per Email an mich
Vorlesung
Mi 14-16, B 001, Oettingenstr.67
Übung
Di 10-12 Uhr, U 151, Oettingenstr.67
Tutoren
Fedor Uvarov, Oskar Braß
Tutorenseite
Modulprüfung
letzte Semesterwoche, Übungsstunde, d.h.
Mi 8.2.2017, 14-16 Uhr
Ort: B 001, Oettingenstr.67
Anmeldung: im LSF ab 16.1.2017 möglich
Informatik- bzw. Erasmus-Studierende: per Email Mo 30.1.17 - Mo 6.2.17
Zweitprüfung Fr. 10.03.2017, 10-12 Uhr, Hörsaal B 001, Oettingenstr.67
Korrektureinsicht Di. 21.03.2017, 17-18 Uhr, Hörsaal 151, Oettingenstr.67

Inhalt

Diese Einführung in die Syntax behandelt Grundbegriffe der Grammatik (wie Kongruenz, Rektion und Valenz) und wesentliche syntaktische Konstruktionen des Deutschen im Hinblick auf eine Verwendung in der maschinellen Sprachverarbeitung. Dazu werden die Klassifizierungen von Phrasen, ihre innere Struktur und die zu ihrer Beschreibung verwendeten technischen Hilfsmittel (Formate von Grammatikregeln, Merkmalstrukturen) erklärt und deren Grenzen diskutiert.
In den Übungen soll unter anderem eine Grammatik für deutsche Nominalphrasen und einfache Aussagesätze (mit Objektsätzen) implementiert werden. Dazu wird die symbolische Programmiersprache PROLOG mit dem eingebauten Grammatikformat ,,Definite Clause Grammars'' verwendet.
Vorlesungsfolien:
Übungsaufgaben: erscheinen hier wöchentlich.
Abgabe von Lösungen: jeweils in der folgenden Übungsstunde
Prolog-Programmierung (auch: ,,Symbolisches Programmieren'', ,,Logisches Programmieren'')
Wir verwenden die Programmiersprache Prolog, weil Prolog kontextfreie Grammatiken (bzw. eine Verallgemeinerung davon) in ausführbare Programme übersetzt, sodaß wir Grammatikregeln schreiben und Beispiele syntaktisch analysieren können. (SWI-Prolog, ist in Linux-Distributionen meistens enthalten, aber auch für Windows frei verfügbar, siehe http://www.swi-prolog.org. Über diese Seite findet man auch einen Online-Kurs ,,Learn Prolog Now!'' zum Einarbeiten in Prolog.)
Parserprogramm:
  1. einzelne Dateien DCGparser
  2. alle Dateien als Archiv: DCGparser.tgz; auspacken mit: tar -xvfz DCGparser.tgz, im CIP-Raum evtl. mit tar -xvf DCGparser.tgz.
  3. Umrechnung von DCG-Regeln in Prolog-Klauseln: Prolog hat eine solche Umwandlung eingebaut, die jede n-stellige Kategorie der DCG in ein n+2-stelliges Prädikat umwandelt, z.B. np(Kasus) in np(Kasus,I,J). Damit kann man zwar feststellen, ob die Grammatik einen Ausdruck erkennt, z.B. mit ?- np(Kas,[den,alten,'Baum'],J)., bekommt aber keine Syntaxanalyse.
    Ich habe in den von DCGparser/parser.pl automatisch geladenen Dateien eine andere Umwandlung eingebaut, die jede n-stellige Kategorie der DCG in ein n+3-stelliges Prädikat umwandelt, z.B. np(Kasus) in np(Kasus,Syntaxbaum,I,J). Man muß DCGparser/parser.pl laden, bevor man die DCG lädt. Dann funktioniert (auch in Prolog 7.2) die Umwandlung mit Baumausgabe in Textform, d.h. mit ?- parse.
    Wenn man eine DCG lädt, bevor man DCGparser/parser.pl lädt, wird die in Prolog eingebaute Umwandlung benuzt, mit der parse/0 nicht funktioniert. (Man bekommt dann eine Fehlermeldung, daß z.B. ein Prädikat np/3 definiert sei, aber nicht np/4. In dem Fall sollte man erst DCGparser/parser.pl und dann seine DCG nochmal laden.)
  4. Tokenizer: In DCGparser/tokenizer.mini.pl ist neben parse/0 ein parse/1 auf Toplevel verfügbar, mit dem man eine Datei von Testbeispielen durch z.B. ?- parse('np.testbeispiele.txt'). lesen und syntaktisch analysieren lassen kann. (Man kann sich die Analysen in eine Datei schreiben lassen, wenn man in tokenizer.mini.pl bei der Klausel für parse/1 die drei auskommentierten Zeilen aktiviert.)
Nominalphrasengrammatik:
Die Datei np.folien.pl lädt DCGparser/parser.pl und lexikon_np.pl selbständig, Sie brauchen in Prolog nur ?- ['np.folien.pl']. oder ?- consult('np.folien.pl'). und dann ?- parse. | : das Kind.<Return> zu sagen.
  1. Grammatikregeln np.folien.pl der Vorlesungsfolien und ein Lexikon lexikon_np.pl dazu
  2. Ad-hoc-Testbeispiele (selbst erweitern) np.testbeispiele.txt
  3. Nachtrag 25.11.2016, 28.11.: ich habe ein paar Änderungen für Nomen mit Argumenten im Lexikon und in den Grammatikregeln gemacht und weitere Lexikoneinträge (damit bei den Hausaufgaben mehr erkannt wird).
    In DCGparser.tgz ist ein parsed(+Datei) eingebaut, das alle Beispiele aus der Datei analysiert, in syntaxbaeume.tmp.dot/ps schreibt und graphisch anzeigt.
Satzgrammatik:
  1. Vorläufige Satzregeln, Lösung von Aufgabe 5.1:
    1. lexikon-beispielsaetze.pl,
    2. grammatik-beispielsaetze.pl (Lösungsblatt)
    3. grammatik-beispielsaetze.neu.pl (Tafelübung 14.12.)
  2. Regeln für Adverbiale:
    1. adverbiale.pl (ohne Satzregeln, 18.1.2017)
    2. Ladedatei zu Adverbialen: beispieladverbiale.pl
    3. Testdatei: beispieladverbiale.txt
  3. Überarbeitete Satzregeln:
    1. Satzregeln mit Adverbialen: saetze-mit-adverbialen.pl (19.1.2017)
    2. Ladedatei dazu: beispielsaetze-mit-adverbialen.pl
    3. Testdatei: beispielsaetze-mit-adverbialen.txt
    4. Lexika: lexikon-beispielnominalphrasen, lexikon-beispielsaetze, lexikon-beispieladverbiale
Koordinationsregelen: (noch zu bearbeiten!)
  1. für Nominalphrasen, Adjektivphrasen, Sätze koordination.pl
Erläuterungen zur implementierten Grammatik
  1. grammatik.erlaeutert.pdf (8.3.17)
  2. Gesamtgrammatik mit einfachen und koordinierten NPs, Sätzen und Adverbialen
    1. Ladedatei: syntax16-grammatik.pl
    2. Metaregeln: saetze-meta.pl (Auswahl der Tempora und Komplementrahmen verkleinert, 8.3.2017)
    3. einfache Nominalphrasen, Adjektivphrasen, Adverbiale: nominalphrasen.pl
    4. Koordination: koordinationen.pl
    5. Lexikon: syntax16.wrd
    6. (automatisch erzeugt durch die Ladedatei wird: saetze.pl)
    Man sollte bei den Metaregeln die rahmenauswahl klein halten, damit nicht Satzregeln für zu viele Verbarten -also eine zu große Grammatik- erzeugt werden.



File translated from TEX by TTH, version 3.67.
On 8 Mar 2017, 19:15.