Tutorium „Prolog für Linguisten“ 12

Werbung
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
Tutorium „Prolog für Linguisten“
12
Sebastian Golly
29. Januar 2013
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
1 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
Plan für heute
Fürs Langzeitgedächtnis
Zusammenfassung des letzten Seminars
Übungsblatt
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
2 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
Fürs Langzeitgedächtnis
I
DCG = Differenzlistenparser!
I
I
I
Woran sieht man das?
Anfrage: ?- s([na,los], []).
Benutzerdefinierte Stellen stehen vorne!
I
I
Anfrage: ?- s(Uebersetzung, [na,los], []).
Und wenn ich mir das nicht merken kann?
I
I
I
listing/0 zeigt die interne Repräsentation der gesamten
Datenbasis an: ?- listing.
listing/1 zeigt die interne Repräsentation eines Prädikats
an: ?- listing(s).
phrase/2 nimmt linke Regelseite (wie im Quellcode) und
Eingabeliste als Argumente:
?- phrase(s(Uebersetzung), [na,los]).
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
3 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
Themen des letzten Seminars (1)
I
Trennung von Lexikon und Grammatik
I
I
I
Weiterentwicklung des Lexikons
I
I
I
I
I
lexicon.pl ! gramm5.pl
in der Grammatik: :- [lexicon].
eigenname(anna).
nomen(hundes,kng(gen,sg,mask)).
nomen(ziegen,kng(_,pl,fem)).
nomen(baum,kng(Kasus,sg,mask)):member(Kasus,[nom,akk,dat]).
Lexikalische Einsetzung
I
I
im Lexikon: verb(liebt).
in der Grammatik:
v(v/[-Verb])--> [Verb], {verb(Verb)}.
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
4 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
Themen des letzten Seminars (2)
I
Kongruenz durch Merkmalsperkolation
I
Kongruenz (Agreement) im Deutschen
I
I
I
I
Artikel–Nomen (Kasus, Numerus, Genus)
,→ komplexer Term kng(Kasus,Numerus,Genus) im Lexikon
Subjekt–Prädikat (Person und Numerus)
,→ komplexer Term agr(Person,Numerus,Kasus) in
NP-Regel
,→ bei nominaler NP: 3. Person wird „synkategorematisch“
eingeführt:
np(np/[ArtBaum,NBaum],agr(3,Numerus,Kasus))--> ...
Merkmalsperkolation
Weitere Themen?
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
5 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
1 Wishtree-Notation
Notiere den folgenden Baum als Term im Wishtree-Format:
S
VP
NP
Det
N
RelS
the
man
whistling
V
NP
tunes
N
pianos
s/[np/[det/[-the], n/[-man], rels/[-whistling]],
vp/[v/[-tunes], np/[n/[-pianos]]]]
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
6 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
2 Arithmetische Ausdrücke – Konzeption
Schreibe eine Grammatik, die einfache arithmetische Ausdrücke
aus Zahlen zwischen 0 und 9, den Klammern ( und ) sowie den
Operatoren +, -, * und / erkennt.
Beispiel: (1+2) und ((3*4)-5)
Tipp: Schreibe nicht sofort eine Prolog-DCG, sondern
überlege dir erst einmal in Ruhe, wie sich die Menge
aller arithmetischen Formeln definieren lässt
(Stichwort: induktive Definition). Wie kann nun diese
Definition in eine Grammatik umgesetzt werden?
Was sind die Terminale?
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
7 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
2 Arithmetische Ausdrücke – Umsetzung
Für die Grammatik sind diese Ausdrücke dann natürlich in
Listenform zu bringen. Weiterhin müssen die Klammern in
Hochkommata eingeschlossen werden, damit keine Syntaxfehler
entstehen: ['(',1,+,2,')'] und
['(','(',3,*,4,')',-,5,')'].
Nenne deine syntaktische Kategorie für arithmetische Ausdrücke
bitte arith_expr.
Beispielanfrage:
?- arith_expr(['(','(', 3, *, 4, ')', -, 5, ')'],
[]).
true .
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
8 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
2 Arithmetische Ausdrücke – Erweiterung
Erweitere die Grammatik so, dass sie die arithmetischen Ausdrücke
auch auswerten kann. Erweitere dazu die DCG um eine
Argumentstelle für den Wert des jeweiligen Ausdrucks. Die
Berechnung erfolgt bottom-up, d. h. zuerst werden die Terminale
ausgewertet, danach die direkt aus den Terminalen
zusammengesetzten Ausdrücke, danach wiederum die
„nächstgrößeren“ Ausdrücke und so weiter. Du brauchst, um
Prolog rechnen zu lassen, das eingebaute Prädikat is/2.
Beispielanfrage:
?- arith_expr(Wert, ['(','(', 3, *, 4, ')', -, 5,
')'], []).
Wert = 7 .
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
9 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
2 Arithmetische Ausdrücke – Gretchenfrage
Warum ist es hier so wichtig, dass die Ausdrücke geklammert sind?
Was passiert, wenn du die Klammern weglässt? Warum?
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
10 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
3 Übersetzen auf Bäumen – Konzept
Schreibe ein Prädikat uebersetzer/2, das einfache deutsche
Nebensätze (ganz naiv) in englische Nebensätze übersetzen kann.
Dabei ist uns neben dem Lexikon als einziger Unterschied die
Wortstellung wichtig: Betrachten wir nur pronominale Subjekte und
Objekte, ergibt sich im Deutschen immer eine SOV-Stellung: dass
ich ihn sehe. Im Englischen ist es hingegen SVO: that I see him.
Der zu übersetzende Satz soll als Baumterm im Wishtree-Format
im ersten Argument gegeben sein, das zweite Argument soll Prolog
dann mit einem Wishtree-Baum instantiieren.
Beispielanfrage:
?- uebersetzer(cp/[c/[-weil], s/[np/[pron/[-ich]],
vp/[np/[pron/[-ihn]], v/[-sehe]]]], Engl).
Engl = cp/[c/[-because], s/[np/[pron/[-i]], vp/[v/[-see],
np/[pron/[-him]]]]] .
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
11 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
3 Übersetzen auf Bäumen – Details
Die Regeln, mit denen die Bäume erzeugt werden konnten, sind:
CP → C S,
S → NP VP, NP → Pron, VP → NP V
VP → V NP.
bzw.
Das Lexikon sollte mindestens folgende Wortpaare umfassen:
Deutsch
ich
sehe
kenne
ihn
dich
dass
weil
Sebastian Golly
Englisch
i
see
know
him
you
that
because
Tutorium „Prolog für Linguisten“ 12
12 / 13
Fürs Langzeitgedächtnis Zusammenfassung Übungsblatt
Noch Fragen?
Sebastian Golly
Tutorium „Prolog für Linguisten“ 12
13 / 13
Herunterladen