Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

PATR II Interpreter Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf.

Ähnliche Präsentationen


Präsentation zum Thema: "PATR II Interpreter Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf."—  Präsentation transkript:

1 PATR II Interpreter Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf

2 15.05.2000PATR II2 Grammatik-Formalismen Grammatikformalismen sind Sprachen zur Beschreibung von Sprachen. –Metasprache (Formalismus: Beschreibungsebene) –Objektsprache (natürliche Sprache: Objektebene) Anwendungszweck von Formalismen: –Werkzeug-orientiert (PATR II, ALE, QType,...) –Theorie-orientiert (LFG, GPSG, HPSG,...)

3 15.05.2000PATR II3 Motivation für Formalismen Präzises Werkzeug für die Beschreibung natürlicher Sprachen. Einschränkung der Klassen möglicher natürlicher Sprachen. Computer-interpretierbare Charakterisierung natürlicher Sprachen.

4 15.05.2000PATR II4 Anforderungen an Formalismen Linguistische Adäquatheit –Linguistische Phänomene sollten möglichst direkt darstellbar sein. Ausdruckskraft –Welche Problemklassen können überhaupt dargestellt werden? Berechenbarkeit/Effizienz –Welche Werkzeuge aus der Informatik werden benötigt und welche Eigenschaften haben sie?

5 15.05.2000PATR II5 PATR-Design-Entscheidungen Oberflächenbasiert (vs. transformationiell) Informationstragend (linguistisches Wissen) Induktiv (Berechnung der Informationskombination) Deklarativ (was vs. wie wird berechnet) Merkmalsbasiert bzw. Constraintbasiert (komplexe Merkmalsstrukturen)

6 15.05.2000PATR II6 Abdeckung theoretischer Frameworks CG categorial grammar GPSGgeneralized phrase structure grammar HPSGhead driven phrase structure grammar LFGlexical functional grammar FUGfunctional unification grammar DCGdefinite clause grammar...

7 15.05.2000PATR II7 PATR Basisoperationen Konkatenation –String-Kombination auf Basis eines kontextfreien Phrasenstrukturgerüst. Jeder (Teil-)String wird mit einer Merkmalsstruktur assoziiert. Unifikation –Informations-Kombination durch monotone Unifikation von Merkmalsstrukturen.

8 15.05.2000PATR II8 Merkmalsstrukturen Seien F (features) und V (values) Mengen. Dann ist FS (feature structures) eine Menge von partiellen Funktionen F V mit V FS 1. 1: Bzw. V ohne atomare Werte.

9 15.05.2000PATR II9 DAGs Zyklische Merkmalsstrukturen können sich selbst als Wert enthalten. Azyklische Merkmalsstrukturen können als gerichtete azyklische Graphen (DAGs) betrachtet werden. numpers sing3

10 15.05.2000PATR II10 Typ- vs. Tokenidentität Typidentität: f und g haben zwei verschiedene Werte vom Typ a. Tokenidentität: f und g haben den identischen Wert a. Die Indexe nennt man Tag, Reentrancy oder Koindexierung.

11 15.05.2000PATR II11 Subsumption Subsumption ist eine partielle Ordnungsrelation über Merkmalsstrukturen, die auf der Spezifizität der enthaltenen Information beruht. Informell: FS 1 FS 2 gdw. alle Information in FS 1 ebenfalls in FS 2 enthalten ist.

12 15.05.2000PATR II12 Unifikation Die Unifikation FS 1 FS 2 = FS 0 ist die allgemeinste Merkmalsstruktur FS 0, so dass FS 1 FS 0 und FS 2 FS 0. Falls FS 0 nicht existiert, scheitert die Unifikation.

13 15.05.2000PATR II13 PATR II Merkmalslogik Eine Merkmalslogik ist eine Beschreibungs- sprache für Merkmalsstrukturen. Ein Ausdruck L i L der PATR II-Merkmalslogik L ist eine Abbildung L i FS (vs. L i (FS) mit Negation und Disjunktion). Bestandteile der PATR II-Merkmalslogik sind –Pfadgleichungen P –Makros ML = (P M)* –Konjunktion

14 15.05.2000PATR II14 Pfadgleichungen Seien FS i FS, F j F, AV k AV (atomare Werte), mit AV V und sei P die Menge der Pfade, dann ist G die Menge der Pfadgleichungen mit P i = AV k P i = P j. Originalnotation: – = – = sg Prolog-Notation: –S:head === VP:head –NP:head:agr:num === sg :- op(600,xfx,===). :- op(510,xfy, : ).

15 15.05.2000PATR II15 Makros (Templates) Makros sind Abkürzungen für Merkmalsstrukturen und müssen definiert werden, bevor man sie verwenden kann. Makro-Definition: Let Makroname be L i. Makro-Verwendung: L j Makroname L k Originalnotation: –Let Third be = 3. –Let Sing be = sing. –Let ThirdSing be Third Sing. Prolog-Notation: –third(F):- F:head:agr:pers === 3. –sing(F):- F:head:agr:num === sing. –thirdSing(F):- third(F), sing(F).

16 15.05.2000PATR II16 Merkmalsstrukturen in Prolog Wir repräsentieren Merkmalsstrukturen in Prolog als offene Listen: –[agr:[num:sg|A]|B] –[agr:[pers:3|C]|D] Die Unifikation der beiden Strukturen soll folgendes Ergebnis liefern: –[agr:[num:sg, pers:3|E]|B] –[agr:[pers:3, num:sg|E]|B] –B=D, A=[pers:3|E], C=[num:sg|E]

17 15.05.2000PATR II17 unify/2 % unify(?FS1,?FS2) unify(X,X):- !. unify([P:V|FS1],FS):- pathval(FS,P,V,FS2), unify(FS1,FS2). pathval([F:V1|FS], F, V2, FS):- !, unify(V1, V2). pathval([FS|FSs1], F, V, [FS|FSs2]):- pathval(FSs1, F, V, FSs2).

18 15.05.2000PATR II18 Zerlegung von Pfaden ?- current_op(Precedence,Associativity,:). Precedence = 500 Associativity = xfy yes ?- a:b:c = F:P. F = a P = b:c yes a:b:c a:(b:c)

19 15.05.2000PATR II19 Interpreter für Pfadgleichungen X === Y :- denotes(X, X1), denotes(Y, Y1), unify( X1, Y1). denotes(V, V):- var(V), !. denotes(A, [A|_]):- atomic(A), !. denotes(F:P, V):- pathval(F, P, V, _), !. denotes(FS, FS).

20 15.05.2000PATR II20 Erweiterung für pathval/4 pathval(FS1, F:P, V, FS2):- !, pathval(FS1, F, FS3, FS2), pathval(FS3, P, V, _). pathval([F:V1|FS], F, V2, FS):- !, unify(V1, V2). pathval([FS|FSs1], F, V, [FS|FSs2]):- pathval(FSs1, F, V, FSs2).

21 15.05.2000PATR II21 Syntaxregeln: PATR II Rule X 0 X 1 X 2 : = s = np = vp = = nom. Rule X 0 X 1 X 2 : = vp = v = np = =. Allgemeines Schema: Rule FS i FS + : G*. (Makros?)

22 15.05.2000PATR II22 Syntaxregeln: DCG cat(S) --> { S:cat === 'S', NP:cat === 'NP', VP:cat === 'VP', S:subj === VP:subj, S:obj === VP:obj, VP:subj === NP, nom(NP) }, cat(NP), cat(VP). cat(VP) --> { VP:cat === 'VP', V:cat === 'V', NP:cat === 'NP', VP:obj === V:obj, VP:subj === V:subj, VP:obj === NP }, cat(V), cat(NP). Zur Vermeidung von linksrekursiven Loops müssen die Merkmalsstrukturen vor der Verzweigung berechnet werden.

23 15.05.2000PATR II23 Syntaxregeln: Klauseln cat(S,P0,P2):- S:cat === 'S', NP:cat === 'NP', VP:cat === 'VP', S:subj === VP:subj, S:obj === VP:obj, VP:subj === NP, nom(NP), cat(NP,P0,P1), cat(VP,P1,P2). cat(VP,P0,P2):- VP:cat === 'VP', V:cat === 'V', NP:cat === 'NP', VP:obj === V:obj, VP:subj === V:subj, VP:obj === NP, cat( V,P0,P1), cat(NP,P1,P2).

24 15.05.2000PATR II24 Lexikon: PATR II Allgemeines Schema: Word String: L*. Beispiele: –Word klaut: = V AccSing. –Word paul: = NP NomSing. –Word bananen: = NP AccPlur.

25 15.05.2000PATR II25 Lexikon: DCG cat(V) --> {V:cat === 'V', acc_sing(V)}, [klaut]. cat(NP) --> [paul], {NP:cat === 'NP', nom_sing(NP)}. cat(NP) --> {NP:cat === 'NP', acc_plur(NP)}, [bananen].

26 15.05.2000PATR II26 Lexikon: Klauseln cat(V,[klaut|T],T):- V:cat === 'V', acc_sing(V). cat(NP,[paul|T],T):- NP:cat === 'NP', nom_sing(NP). cat(NP,[bananen|T],T]):- NP:cat === 'NP', acc_plur(NP).

27 15.05.2000PATR II27 Makros acc(C):- C:agr:cas === acc. nom(C):- C:agr:cas === nom. sing(C):- C:agr:num === sing. plur(C):- C:agr:num === plur. nom_sing(C):- nom(C), sing(C). acc_sing(C):- acc(C), sing(C). acc_plur(C):- acc(C), plur(C).

28 15.05.2000PATR II28 PATR II-Parser parse:- nl, write('Phrase >> '), read_wordlist(String), nl, parse(String). parse(String):- cat(FS, String, []), print_fsm_(FS).

29 15.05.2000PATR II29 Parsing-Session

30 15.05.2000PATR II30 Literatur Shieber, Stuart (1986): An Introduction to Unification-based Approaches to Grammar. CSLI Lecture Notes. Gazdar, Gerald & Chris Mellish (1989): Natural Language Processing in Prolog. Addison Wesley. Covington, Michael A. (1994): Natural Language Processing for Prolog Programmers. Chap. 6: Parsing Algorithms. Prentice-Hall.


Herunterladen ppt "PATR II Interpreter Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf."

Ähnliche Präsentationen


Google-Anzeigen