Computerlinguistik II
              
Vorlesung mit Proseminar
CIS, WS 2004/05

Hans Leiß

Termine

Di 12.30-14.00, Schellingstr.3, Hörsaal E06

Fr 15.00-16.30, Oettingenstr.67, Raum 1.14 (verschoben!)

Fr 14.00-15.00, Oettingenstr.67, Raum Z 11 (Prolog-Übung am Rechner)

Inhalt und Ziel der Veranstaltung

Die Veranstaltung behandelt die grundlegenden Aufgaben der Computerlinguistik anhand einer exemplarischer Implementierung der linguistischen Basismodule:

  1. Morphologie
  2. Syntax
  3. Semantik
  4. Pragmatik

Am Ende des Semesters werden wir ein natürlichsprachliches Generierungs- und Analyse-System für einen kleinen Sprachausschnitt in der Programmiersprache Prolog implementiert haben.

Prologkenntnisse werden zu Anfang des Semesters bei Bedarf wiederholt. (s.u.)

Kursmaterial:

  1. Verbflexion regelm.Verben bei Vollformenlexikon verbflexion_vlex.pl
  2. Verbflexion regelm.Verben bei Stammformenlexikon verbflexion_slex.rglm.pl
  3. Vorlesungsfolien: Prolog-Programme + Morphologie (S.3-26)
  4. Programme aus den Folien (cl2-programme.tgz)
  5. Kontextfreie Grammatiken und DCG (Vorlesungsfolien, S. 27-31)
  6. Übersetzung von DCG-Regeln in Prolog-Regeln (Vorlesungsfolien, S.32-33)
  7. Übersetzung einer DCG in eine DCG mit Baumausgabe (Vorlesungsfolien, S.34-38)
  8. Übersetzung einer DCG in ein Prolog-Programm mit Baumausgabe (Vorlesungsfolien, S.39-45)
  9. Vereinfachung der Eingabe, satzende/0, parse/0 (Vorlesungsfolien, S.46-50)
  10. Anwendung Datenbankabfrage. (Anfang Grammatik) (Vorlesungsfolien, S.51-53)
  11. Grammatikregeln Prädikativsätze (Vorlesungsfolien, S.54-57), siehe auch Programme dazu
  12. Grammatikregeln zu Nominalphrasen und Adjektiv-Prädikativsätze (Vorlesungsfolien, S.58-64), siehe auch Programme dazu (auch in .tgz aktualisiert).
  13. Grammatikregeln zu Sätzen mit transitivem Vollverb, Lexikon der Anwendung, graphische Baumanzeige (Folien, S.65 - 76)
  14. Grammatikregeln und Lexikon korrigiert um: det+pron im Plural, Regeln zu NP und Sätzen, Testsätze (Folien 76-80 und frühere NP- und Satzregeln).
  15. Datenbank und Auswertung prädikatenlogischer Aussagen (Folien S.81-86)
    Programme unter Programme/Semantik (noch nicht im .tgz)
  16. Auswertung prädikatenlogischer Formeln mit freien Variablen (Folien S.87-93)
    Programm in Prolog laden: neben ?- [laden]. muß man z.Zt. noch ?- ['Semantik/auswertung'] laden.
  17. Von NL-Aussagen zu PL-Formeln, Lambda-Terme (Folien 94-99)
  18. Reduktion von Lambda-Termen (Folien 100-105)
  19. Übersetzung von Syntaxbaum in Lambda-Term (Folien 106 -109, vorlaeufig)
  20. Übersetzung zusammengesetzter Ausdrücke in einen Lambda-Term (Folien-114, vorläufig).
    Programme und .tgz aktualisiert, Laden mit ?- [semantik]., der Datei Programme/semantik.pl. (28.1.05)
  21. Übersetzung des Syntaxbaums in Lambda-Terme und Formeln (Folien 106-120, überarbeitet 7.2.05)
  22. Auswertung von Fragen (Folien 121 -125), Programme und .tgz aktualisiert

Beim Testen beachte, was das Testlexikon enthält und daß Großschreibung am Satzanfang nicht umgewandelt wird: statt " Ist Uranus .." muß man also " ist Uranus .." fragen. Vielen Dank für die gemeldeten Fehler in der Grammatik, werde ich möglichst bald beseitigen ... (sofern es nicht absichtlich ausgeschlossen war)

Übungsaufgaben:

  1. Aufgabenblatt 1 Abgabe: Aufgabe 1 a), b) am Freitag dieser Woche (5.11.), Aufgabe 1 c) nächsten Freitag
  2. Aufgaben"blatt 2": a) Die Aufgabe 1c) des vorigen Blatts, b) Die Folien nachlesen und ggf ausprobieren. c) Bonusaufgabe: von den infiniten Verbformen das Partizip Perfekt aus dem Stammeintrag der Verben erzeugen.
  3. Aufgabenblatt 3 Abgabe: Freitag, 19.11.04 (siehe auch Programme/Beispiele/programmierer.pl)
  4. Aufgabenblatt 4 Abgabe: Freitag, 26.11.04 (siehe auch aktualisierte Folien, S. 34-37, und Verzeichnis Programme)
  5. Aufgabenblatt 5 Abgabe: Freitag, 10.12.04 bzw. Di 14.12.04
  6. Aufgabenblatt 6 Abgabe: Di 21.12.04 bzw. Di 11.01.05 (Programme/ und *.tgz ist aktualisiert) Die aktualisierten Folien hatte ich am Freitag leider vergessen, ins Netz zu hängen. Ist jetzt nachgeholt, Mo 29.12. 9.30 h. (Siehe dort neue Pfadnamen, und benutze laden.pl.)
  7. Ferienaufgabe zum Üben von Prolog für die, die den Prolog-Kurs nicht besucht haben.
  8. Programme und Folien sind aktualisiert. Testsätze (Folien 76-80) laufen.
    Aufgabe 7 kann bis Di 11.01.05 gelöst werden, aber nur für Fehler in den korrigierten Grammatikregeln und Lexikoneinträgen von heute (22.12.).
  9. Lösung zu den Ferienaufgaben: siehe Musterlösungen.
  10. Aufgabenblatt 7 Abgabe: Di 1.2.05
  11. Aufgabenblatt-8 Abgabe: Di 08.02.05 (nach der Klausur, geht aber in die Scheinvergabe/Note noch ein!)

Abgabe Ihrer Lösung (nur ASCII-Text) über diese Eingabemaske

Scheinkriterium

Mitarbeit in den Übungsstunden, Lösung der Hausaufgaben und Klausur.

Klausur: fand am Freitag, 4.2. vormittags 8-10h, in der Oettingenstr.67, Raum 1.35 und Raum 1.31 statt.

Die Klausur wurde in der Stunde am Freitag, 11.2.05, besprochen. Wer die Klausur bestanden und genügend Punkte in den Hausaufgaben erreicht hatte, hat dort auch einen Proseminarschein bekommen. Wer das Ergebnis seiner Klausur noch wissen möchte, kann jederzeit in meinem Büro nachfragen und ggf. seinen Proseminarschein bekommen.

Nachklausur: 22.4.05, 18 Uhr ct, Hörsaal 1.27 in der Oettingenstr. 67

Fragen, Probleme und Kritik

Bei Schwierigkeiten stellen Sie ruhig Fragen während der Vorlesungs- und Proseminarstunde, oder in meiner Mentorenstunde Di 10.30-11.30, Raum B 107, Oettingenstr.67

Literatur

  1. Pereira, F.C.N., S.M.Shieber: Prolog and Natural Language Analysis, CSLI Lecture Notes Number 10, 1987, Stanford. (CIS-Bibliothek: PER I) (Elektronische Version: prolog-digital.pdf)

  2. Gazdar,Gerald, Mellish,Chris: Natural Language Processing in Prolog. An Introduction to Computational Linguistics. Wokingham u.a. : Addison-Wesley, 1989. (CIS-Bibliothek: GAZ I)

  3. Lehner, Christoph. Prolog und Linguistik. München u.a. : Oldenbourg, 1990 (CIS-Bibliothek: LEH II) Von der Seite von Christoph Lehner
    http://www.uni-hildesheim.de/%7Echlehn/frames_prolog.html
    kann man sich eine .pdf-Version des Buches holen.

  4. Wenger, Karsten: Einführung in die Computerlinguistik. Vorlesung 1995, CIS. (.pdf-Datei)

Prolog

Hauptsächlich für die, die noch keine Erfahrung mit Prolog haben, ist der Zusatztermin Fr. 14.00-15.00 Uhr im Rechnerraum Oe67, Z 11, gedacht.

Es wird das frei erhältliche SWI-Prolog benutzt. Das nötigste zu Prolog wird im Kurs erklärt. Weitere Angaben dazu, Literatur zu Prolog und Kursmaterial finden Sie z.B. auf meiner Seite Prolog-Kurs SS 2002

Die dort angegebenen Anpassungen an den Editor Emacs sind überholt; am einfachsten sind folgende Arbeitsweisen mit Prolog:

  1. Man ruft auf einer Shell Prolog auf (mit 'pl' oder '/usr/bin/pl'), und dann in Prolog den eingebauten (vereinfachten) Editor durch ?- emacs.

    Dann erscheint der Editor in einem eigenen Fenster. Darin kann man über die Menü-Leiste Dateien suchen, editiern, speichern und (ohne manuelles Kopieren!) an das in der Shell laufende Prolog schicken, oder Prolog unterbrechen u.a.

  2. Man startet den Editor Emacs in einer Shell (mit 'emacs &') und kann dort ebenso über die Menü-Leiste Dateien suchen usw. Außerdem kann man über die Menüleiste Prolog starten, was dann in einem Teilfenster des Editors erscheint. Vorher muß man zwei Dinge tun:

    1. Man legt ein Verzeichnis '~/Emacs' an (oder macht das Entsprechende mit einem evtl. vorhandenen '~/.Emacs') und speichert darin die folgende Datei ~/Emacs/prolog.el ab.

    2. Man legt eine Datei '~/.emacs' an (oder erweitert die vorhandene) mit folgendem Inhalt:
      ;;; Computerlinguistik-2 WS 04/05:
      ;;;
      ;;; ------------------------ Prolog - Unterstuetzung ------------------------------
      ;;; Beim Laden von Dateien mit Namen "<Datei>.pl" automatisch in Prolog-mode gehen:
      (setq auto-mode-alist (cons '("\\.pl$" . prolog-mode) auto-mode-alist))
      ;;; Welches Prolog-System? SWI-Prolog 5.2.5 von http://www.swi-prolog.org
      (setq prolog-system 'swi)
      ;;; Wo ist der System-Aufruf davon? Es ist installiert unter /usr/bin/pl:
      (setq prolog-program-name "pl") 
      ;;; In welchem Verzeichnis liegt die Datei "prolog.el" des Emacs?
      (setq load-path (cons "~/Emacs" load-path)) 
      ;;; Mit "Esc-x run-prolog" im Emacs Prolog starten:
      (autoload 'run-prolog "prolog" "Run an inferior prolog process" t)
      ;;; Mit "Esc-x prolog-mode" einen Puffer in Prolog-mode setzen:
      (autoload 'prolog-mode "prolog" "Mode for editing Prolog programs" t)
      ;;; --------------------------------------------------------------------------------
      
      
      Falls man ein anderes Suffix als '.pl' für seine Prolog-Dateien verwenden will, muß man die ersten Zeilen anpassen.


File translated from TEX by TTH, version 2.54.
On 21 Apr 2005, 11:35.