CL-Blog

Computerlinguistik & Politik

Du durchsuchst gerade das Archiv der Kategorie ‘Prolog für Linguisten’.

Kategorie: Prolog für Linguisten

2014 17 Jul

Prolog, 16.7.

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

 

Freiwillige Hausaufgabe (bitte machen, dient dem Verständnis, auch wenn es Arbeit ist, Sie können nur gewinnen):

Setzen Sie den Morphologietransduktor aus dem Beispiel oben nach Prolog um. Nehmen Sie dazu den Prolog-Code des Morphologieakzeptors aus der Vorwoche als Grundlage.

 

Erläuterungen:

  • Ein- und Ausgabe an den Übergängen sind durch : getrennt.
  • In den Endzuständen (mit Doppelkreis) erfolgen auch Ausgaben (nach der Zustandsnummer und einem Doppelpunkt). Ist die Ausgabe leer, steht hier ε (die leere Liste)
  • Manche Endzustände machen alternative Ausgaben; diese sind am Ende von gepunkteten Linien angegeben. Die linguistische Grundlage hiervon ist sog. Formensynkretismus.

Hinweise zur Umsetzung in Prolog:

  • Verwenden Sie generell Prolog-Listen für die auszugebenden Merkmale.
  • Bei den Übergängen des Automaten fügen Sie diese zu den t-Termen in der Übergangsliste hinzu. Im Beispielfall enthält diese Liste z.B. den Term t(1,holf,13,[]).
  • In den Endzuständen können keine, eine oder mehrere Ausgaben erfolgen. Verwenden Sie hierzu eine Liste von Merkmalslisten. Diese Liste enthält in den vorgenannten Fällen die leere Liste, eine oder eben mehrere Merkmalslisten. Fügen Sie diese Listen jeweils den Endzuständen Ihres Transduktors hinzu (statt einer Liste von Endzuständen enthält der Transduktor also nun eine Liste von Paaren, z.B. mit Funktor final. Beispielsweise heißt final(3,[[imp,sg]]), dass 3 ein Endzustand ist und als Ausgabe [imp,sg] trägt.
  • Wie auch der Akzeptor akzeptiert der Transduktor nur in Endzuständen. Während man rekursiv von Zustand zu Zustand mit dem Kopfsymbol der Eingabeliste geht, verkettet man die Ausgaben auf. Erreicht man einen Endzustand, wählt man mit member/2 aus den mit dem Endzustand verbundenen Ausgabelisten (nicht-deterministisch) aus und verkettet die gewählte Ausgabe mit der bisher aufgebauten Ausgabeliste. Beispiel: Analyse von [helf,t]. Wenn man den Endzustand 11 erreicht, hat man bis dahin die Ausgabe [verb(helfen)] in einer Liste erzeugt. Nun wählt man mit member/2 unter den Ausgabelisten von Zustand 11 beispielsweise die mit [imp,pl] aus, verkettet diese mit [verb(helfen)] und erhält [verb(helfen),imp,pl]. Der Nichtdeterminismus von member/2 ist nötig, um eben dem genannten Synkretismus Rechnung zu tragen: helft hat eben zwei Analysen.
  • Für das neue akzeptiert-Prädikat des Transduktors bietet sich die Akkumulatortechnik in Prolog an. Diese besteht darin, dass man für die Ausgabe zwei Listen-Variablen verwendet: die erste (der Akkumulator) enthält immer die Ausgabe bis zum gerade erreichten Zustand, die man mit den neuen Ausgaben verkettet und in der Rekursion weiterreicht. Diese Variable wird durch das nicht-rekursive akzeptiert-Prädikat zu Beginn mit [] belegt. Die zweite Ausgabelistenvariable ist in der Rekursion immer die gleiche und wird erst beim trivialen Fall mit der Arbeitsvariablen (dem Akkumulator) gleichgesetzt. Studieren Sie listlen/3 aus dem oben verlinkten Beispiel, dann verstehen Sie, was ich meine.

Testen Sie Ihr fertiges Prädikat mit findall/3. Sie können auch gerne Fragen stellen. Hier finden Sie noch eine Prolog-Vorlage für die Hausaufgabe.

 

 

2014 11 Jul

Prolog, 9.7.14

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

  • Automaten in Prolog

Prolog-Codeprolog_09072014

 

2014 9 Jul

Prolog, Zusatzübung

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Diese Woche gibt es noch das Bonus-Übungsblatt, für alle die sich noch einmal mit Prolog beschäftigen wollen, und für alle denen noch ein paar Punkte zum Bestehen des Kurses fehlen.

Eure gesammelten Punkt- und Prozentzahlen könnt ihr jetzt am schwarzen Brett einsehen. Wenn ihr euch bei den ständigen Gewittern nicht hinaus traut, schreibt mir eine Mail, dann schicke ich euch eure persönliche Punkte-Übersicht. Noch einmal: Um den Kurs zu bestehen, braucht ihr 60% der Punkte die es für die Übungen gibt. Eine Note gibt es für den Kurs nicht.

Hier sind auch schon mal meine Folien aus dieser Woche. Ich werde auch nächste Woche noch zu den Tutoriums-Terminen da sein, um eventuelle letzte Fragen zu klären. Vielleicht kann ich ja noch den ein oder anderen für Automaten begeistern!

2014 2 Jul

Prolog, 12. Übungsblatt

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Hier das letzte offizielle Übungsblatt!

2014 2 Jul

Prolog, 2.7.

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

  • Subkategorisierung
  • Endliche Automaten

Hausaufgabe: Repräsentieren Sie diesen endlichen Automaten in Prolog.

2014 26 Jun

Prolog, 11. Übungsblatt

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Hier kommt nun das vorletzte offizielle Übungsblatt!

Nach der 12. Übung kommt noch ein Bonus-Blatt, mit dem ihr zusätzliche Punkte sammeln könnt. Außerdem liegt die Grenze zum Bestehen des Kurses jetzt bei 60% der möglichen Punkte!

Für das aktuelle Übungsblatt braucht ihr wieder die Dateien von Herrn H.; außerdem hier noch meine Folien aus dieser Woche.

 

Falls euch beim Lösen der Blätter noch etwas generell unklar ist, mailt mir auch schon vor der Abgabe eine Frage, ich reagiere auch darauf!

2014 26 Jun

Prolog, 25.6.

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

“Programme”prolog_25062014

2014 19 Jun

Prolog, 18.6.

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

  • Merkmalsbündel, Merkmalsstrukturen
  • Phrasen als Projektionen von Merkmalen
  • phrase/2-Prädikat

Prologprogramme: prolog_18062014

 Jpeg

 

2014 18 Jun

Prolog, 10. Übungsblatt + Tutorium

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Hier ist auch schon das 10. Übungsblatt!

 

Das Tutorium morgen (am 19.6.) muss leider ausfallen, deshalb hier auch schon mal die Folien aus dieser Woche.

Wir holen das natürlich wie immer nach. Auch besonders an die Leute, die gerne zum Tutorium kommen würden, aber zeitlich nicht können: Mailt mir so viele Fragen wie ihr habt und/oder schlagt mir einen anderen Termin vor, an dem wir uns mal zusammen setzen und Themen wiederholen! :)

2014 14 Jun

Prolog, 11.6.14

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

  • Differenzlistenparsing, Definite Clause Grammatiken
  • Kongruenz

Prologprogrammeprolog_11062014

2014 11 Jun

Prolog, 9. Übungsblatt

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Viel Spaß mit dem neuen Übungsblatt! Dieses Mal wieder einfacher.

 

Und hier noch die Folien. Dieses Mal etwas ausführlicher.

2014 5 Jun

Prolog, 8. Übungsblatt

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Hier kommt das heiß ersehnte 8. Übungsblatt. Viel Spaß!

EDIT: Bearbeitungszeit verlängert bis Dienstag um 16 Uhr.

EDIT: Jetzt ergibt das Beispiel in der letzten Aufgabe auch Sinn …

 

Dazu noch die Folien aus dieser Woche.

 

Eine Punkteübersicht zu den Aufgaben 4-7 hängt jetzt am schwarzen Brett!

2014 4 Jun

Prolog, 4.6.14

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

  • Kombinatorik in natürlichen Sprachen
  • Gute Vorsätze: vorsatzomat.ch
  • Grammatiken auf der Basis von Listenzerlegung
  • Zufallszahlen

Prolog-Programmeprolog_04062014

 

2014 29 Mai

Prolog, 28.5.

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

Prolog-Programmeprolog_28052014

2014 29 Mai

Prolog, 7. Übungsblatt

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Hier kommt auch schon das neue Übungsblatt!

Dazu noch die Folien von gestern, auf die ich dann nächsten Donnerstag auch noch kurz eingehen werde.

 

Euch einen schönen freien Tag!

2014 21 Mai

Prolog, 6. Übungsblatt

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Es geht direkt weiter mit dem Übungsblatt Nr.6. Setzt euch einfach mit den Laptops in die Sonne, dann ist es viel schöner ;) Viel Spaß damit!

Und hier noch die Folien aus dem Tutorium.

2014 21 Mai

Prolog, 21.5.

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

 Prolog-Programme: prolog_21052014

2014 15 Mai

Prolog, 14.5.2014

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

  • Weitere Listenprädikate

prolog_14052014

2014 14 Mai

Prolog, 5. Übungsblatt

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Hier findet ihr auch schon das Übungsblatt Nummer 5 und die letzten Folien. Viel Erfolg!

 

Außerdem findet ihr die aktuelle Version der erreichten Punktzahlen am Schwarzen Brett in Haus 14.

PS: Die maximal erreichbaren Punkte pro Blatt folgen theoretisch keinem Muster, das war jetzt nur Zufall …

2014 7 Mai

Prolog, 4. Übungsblatt

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Hier ist auch schon das 4. Übungsblatt. Viel Spaß dabei!

 

Die Folien aus dem Tutorium werde ich dann morgen in diesem Beitrag verlinkenVoila!

2014 7 Mai

Prolog, 7.5.

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

  • Listen als rekursive Terme (mit Funktor .):
    % Die leere Liste [] ist eine Liste
    ist_liste([]).
    % Die Zusammensetzung .(E,R) eines Elements E mit einer Restliste R ist eine Liste, wenn R eine Liste ist
    ist_liste(.(E,R)) :- ist_liste(R).
  • Verschönerte Schreibweise von Listen durch Verwendung von [ ]:
    Beispiel: [schokolade,bier]
  • Statt .(E,R) kann man auch [E|R] schreiben.
  • Listenunifikationen:
    ?- [schokolade,bier] = [E|R].

 

 

2014 3 Mai

Prolog, 30.4.

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen

  • Unifikation: in Prolog das Prädikat =. Es gibt eine Reihe von Fällen:
    1. Gleiche Konstanten können stets unifiziert werden: a = a, 23 = 23.
    2. Verschiedene Konstanten sind nicht unifizierbar: a = b.
    3. Ungebundene Variablen können mit Atomen, anderen Variablen und komplexen Termen unifiziert werden: X = a, Y = X, Z = f(a,B).
    4. Ein komplexer Term und eine Konstante sind nicht unifizierbar: a = f(a).
    5. Zwei komplexe Terme können dann unifiziert werden, wenn sie den gleichen Funktor und die gleiche Stelligkeit aufweisen und ihre Argumente paarweise unifizierbar sind
  • Rekursive Definitionen: diese brauchen mindestens einen Abbruchfall (Basisfall, trivialer Fall, Rekursionsabbruch) und einen rekursiven Fall. Wichtig ist, dass die Rekursion nach endlich vielen Schritten terminiert, man also bei jedem Schritt sich einem/dem Basisfall nähert
  • Beispiel: Axiomatisierung von natürlichen Zahlen (die kompletten Axiome finden Sie hier):
    zahl(0). % Die Zahl, die durch das Symbol 0 benannt wird, ist eine Zahl.
    zahl(n(X)) :- zahl(X). % Wenn X eine Zahl ist, dann ist auch ihr Nachfolger eine Zahl
    Anfrage: ?- zahl(n(n(n(n(0))))).
  • Weiteres Beispiel: das Unifikationsprädikat oben: Fälle 1-4 sind die Basisfälle, Fall 5 ist der Rekursionsfall
  • John von Neumann

2014 1 Mai

Prolog Übungsblatt 3

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Es geht direkt weiter mit dem dritten Übungsblatt. Viel Spaß damit!

Dazu könnt ihr euch hier noch die Folien aus dem letzten Tutorium ansehen (mit Bezug auf die VL vom 23.4. und das Übungsblatt Nr.2).

 

Außerdem noch eine Übersicht über die erreichten Punktzahlen in den Übungen 1 und 2. 2 Leute habe ich noch nicht eingetragen, weil mir noch die Matrikelnummern fehlen. Wenn ihr nur einmal oder gar nicht in der Liste auftaucht, aber der Meinung seid, dass ihr etwas abgegeben habt, meldet euch nochmal bei mir!

 

PS: Ihr müsst Aufgabe 3 auch nicht rekursiv lösen! Ohne Rekursion ist es wohl doch einfacher ..

2014 29 Apr

Prolog: SWI-Prolog für MacOSX

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Morgen (Mittwoch) in der Pause versuche ich, Prolog unter MacOSX in Gang zu setzen. Die Betroffenen bitte ich nach vorne zu kommen.

2014 26 Apr

Prolog, 23.4.

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

  • Infix-Prädikate (=Operatoren) wie > oder >=
  • Definite Deskriptionen: definite NPen, die sich semantisch wie Eigennamen verhalten
  • Komplexe Terme: syntaktisch haben sie die Form f(Arg1,Arg2,…,Argn). f wird Funktor genannt, die Arg_i sind die Argumente (die auch komplex sein können). Semantisch sind komplex Terme komplexe Namen.
  • Verwechslungsgefahr: ob etwas ein Funktor ist oder eine Prädikatskonstante wird durch den Kontext aufgelöst. Terme mit Funktoren (=komplexe Terme) sind immer Argumente von Prädikaten
  • Darstellung komplexer Terme als Bäume
  • Unifikation

Prolog-Codeprolog_23042014

2014 23 Apr

Prolog: Zweites Übungsblatt

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Hier findet ihr euch schon das zweite Übungsblatt. Alle wichtigen Infos sollten auf dem Blatt vermerkt sein.

Morgen nach dem Tutorium lade ich auch noch meine Folien hoch, auf denen ich ein paar Sachen zusammen gefasst habe. Hier sind sie.

 

Viel Erfolg beim Bearbeiten!

2014 16 Apr

Prolog – erstes Übungsblatt

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Hier ist auch schon euer erstes Übungsblatt! Ihr habt bis Sonntagabend Zeit es mir zu schicken. Zur Erinnerung: Die Übungen werden bewertet und ihr solltet im Semester insgesamt 70% der erreichbaren Punkte einsammeln.

Kommentiert eure Abgabe ausführlich, selbst wenn etwas nicht klappen sollte. Schreibt dann auf, an welcher Stelle ihr warum nicht mehr weitergekommen seid; ein Lösungsansatz ist auf jeden Fall besser als gar nichts. Auch bei Fragen könnt ihr mir jederzeit eine Mail schicken.

Viel Erfolg!

2014 16 Apr

Prolog, 16.4.

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Themen:

  • Fakten und Regeln
  • Regeln sind umgekehrte Wenn-Dann-Sätze:
    P  :-  Q, R.
    bedeutet: P ist wahr, wenn Q UND R wahr sind (Q und R heißen auch Konjunkte).
  • Terme: entweder Variablen oder Konstanten (Eigennamen)
  • Fragen auf Deutsch: einerseits Entscheidungsfragen (Ja/nein, true/false), andererseits Satzgliedfragen mit Fragepronomen.
  • Anfragen in Prolog:
    Entscheidungsfragen enthalten keine Variablen und sehen aus wie Fakten. Prolog antwortet mit true/false.
    Satzgliedfragen enthalten Variablen. Wenn es Antworten gibt, belegt Prolog die Variablen mit Antworten.
  • Anfragen in Prolog können auch komplex sein, also aus mehreren durch UND (,) verbundenen Teilen bestehen.

Prolog-Programmeprolog_16042014 (Hinweis: ich stelle die Programme immer als sog. zip-Dateien ein. Zip-Dateien sind komprimierte Dateien, die andere Dateien enthalten. Zum Entpacken braucht man ein Entpackprogramm (z.B. Winzip, 7zip usw.), wobei die meisten Betriebssysteme schon eingebaute Entpacker haben)

Literatur:

2014 11 Apr

Prolog-Tutorium

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Hallo!

Für das Prolog-Tutorium wird es jetzt sogar zwei Termine geben, da die Gruppe so groß ist, nämlich

Dienstag 16-18 Uhr in Raum 14.035 und Donnerstag 8-10 Uhr in 14.009 (ihr braucht aber nur zu einem Termin zu kommen).

Wir widmen uns dann in der kommenden Woche erstmal organisatorischem Kram, da in der Vorlesung ja auch noch nicht so viel Stoff dran kam. Hier habt ihr schon mal eine Anleitung, wie ihr euch Prolog zulegen könnt: Prolog-Installationsanleitung

Dann bis nächste Woche! Lg, Lisanne

2014 11 Apr

Prolog in der Linguistik, 9.4.2014

Abgelegt unter: Prolog für Linguisten | RSS 2.0 | TB | Kommentare geschlossen

Folien zur Einführung

Für den praktischen Teil benötigen Sie zwei Dinge:

 


CL-Blog läuft unter Wordpress 3.5.1
Anpassung und Design: Gabis Wordpress-Templates
21 Verweise - 0,267 Sekunden.