patr ii interpreter

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

Upload: shania

Post on 17-Jan-2016

46 views

Category:

Documents


0 download

DESCRIPTION

PATR II Interpreter. Prolog Aufbaukurs SS 2000 Heinrich-Heine-Universität Düsseldorf Christof Rumpf. Grammatik-Formalismen. Grammatikformalismen sind Sprachen zur Beschreibung von Sprachen. Metasprache (Formalismus: Beschreibungsebene) Objektsprache (natürliche Sprache: Objektebene) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: PATR II Interpreter

PATR IIPATR IIInterpreterInterpreter

Prolog Aufbaukurs SS 2000

Heinrich-Heine-Universität Düsseldorf

Christof Rumpf

Page 2: PATR II Interpreter

15.05.2000 PATR II 2

Grammatik-FormalismenGrammatik-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, ...)

Page 3: PATR II Interpreter

15.05.2000 PATR II 3

Motivation für FormalismenMotivation 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.

Page 4: PATR II Interpreter

15.05.2000 PATR II 4

Anforderungen an FormalismenAnforderungen 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?

Page 5: PATR II Interpreter

15.05.2000 PATR II 5

PATR-Design-EntscheidungenPATR-Design-Entscheidungen

• Oberflächenbasiert (vs. transformationiell)

• Informationstragend (linguistisches Wissen)

• Induktiv (Berechnung der Informationskombination)

• Deklarativ (was vs. wie wird berechnet)

• Merkmalsbasiert bzw. Constraintbasiert (komplexe Merkmalsstrukturen)

Page 6: PATR II Interpreter

15.05.2000 PATR II 6

Abdeckung theoretischer Abdeckung theoretischer FrameworksFrameworks

• CG categorial grammar

• GPSG generalized phrase structure grammar

• HPSG head driven phrase structure grammar

• LFG lexical functional grammar

• FUG functional unification grammar

• DCG definite clause grammar

• ...

Page 7: PATR II Interpreter

15.05.2000 PATR II 7

PATR BasisoperationenPATR 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.

Page 8: PATR II Interpreter

15.05.2000 PATR II 8

MerkmalsstrukturenMerkmalsstrukturen

• Seien F (features) und V (values) Mengen.Dann ist FS (feature structures) eine Menge von partiellen Funktionen F V mit V FS1.

num : sing

pers :

cat : NP

agr : 3

num : sing

pers : 3

1: Bzw. V ohne atomare Werte.

Page 9: PATR II Interpreter

15.05.2000 PATR II 9

DAGsDAGs• Zyklische Merkmalsstrukturen können sich selbst

als Wert enthalten.• Azyklische Merkmalsstrukturen können als

gerichtete azyklische Graphen (DAGs) betrachtet werden.

num : sing

pers : 3

num pers

sing 3

Page 10: PATR II Interpreter

15.05.2000 PATR II 10

Typ- vs. TokenidentitätTyp- vs. Tokenidentität

f : a

g : a

f : 1 a

g : 1

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.

Page 11: PATR II Interpreter

15.05.2000 PATR II 11

SubsumptionSubsumption

• Subsumption ist eine partielle Ordnungsrelation über Merkmalsstrukturen, die auf der Spezifizität der enthaltenen Information beruht.

• Informell: FS1 FS2 gdw. alle Information in FS1 ebenfalls in FS2 enthalten ist.

cat : NP

cat : NP num : singagr :

pers : 3

ô ô

Page 12: PATR II Interpreter

15.05.2000 PATR II 12

UnifikationUnifikation

• Die Unifikation FS1 FS2 = FS0 ist die allgemeinste Merkmalsstruktur FS0, so dass FS1 FS0 und FS2 FS0.

• Falls FS0 nicht existiert, scheitert die Unifikation.

num : singagr : num : sing agr : pers : 3 = agr :

pers : 3

ò

agr : num : sing agr : num : plur = fail ò

Page 13: PATR II Interpreter

15.05.2000 PATR II 13

PATR II MerkmalslogikPATR II Merkmalslogik

• Eine Merkmalslogik ist eine Beschreibungs-sprache für Merkmalsstrukturen.

• Ein Ausdruck Li L der PATR II-Merkmalslogik L ist eine Abbildung Li FS (vs. Li (FS) mit Negation und Disjunktion).

• Bestandteile der PATR II-Merkmalslogik sind– Pfadgleichungen P– Makros M L = (P M)*– Konjunktion

Page 14: PATR II Interpreter

15.05.2000 PATR II 14

PfadgleichungenPfadgleichungen• Seien FSi FS, Fj F, AVk AV (atomare Werte),

mit AV V und sei P die Menge der Pfade <FSi Fj*>, dann ist G die Menge der Pfadgleichungen mit Pi = AVk Pi = Pj.

• Originalnotation:– <S head> = <VP head>

– <NP head agr num> = sg

• Prolog-Notation:– S:head === VP:head– NP:head:agr:num === sg

:- op(600,xfx,===).

:- op(510,xfy, : ).

Page 15: PATR II Interpreter

15.05.2000 PATR II 15

Makros (Templates)Makros (Templates)• Makros sind Abkürzungen für Merkmalsstrukturen und

müssen definiert werden, bevor man sie verwenden kann.• Makro-Definition: Let Makroname be Li.• Makro-Verwendung: Lj Makroname Lk

• Originalnotation:– Let Third be <head agr pers> = 3.– Let Sing be <head agr num> = 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).

Page 16: PATR II Interpreter

15.05.2000 PATR II 16

Merkmalsstrukturen in PrologMerkmalsstrukturen 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]

Page 17: PATR II Interpreter

15.05.2000 PATR II 17

unify/2unify/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).

Page 18: PATR II Interpreter

15.05.2000 PATR II 18

Zerlegung von PfadenZerlegung von Pfaden

?- current_op(Precedence,Associativity,:).Precedence = 500Associativity = xfyyes

?- a:b:c = F:P.F = aP = b:cyes

a:b:c a:(b:c)

Page 19: PATR II Interpreter

15.05.2000 PATR II 19

Interpreter für PfadgleichungenInterpreter 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).

Page 20: PATR II Interpreter

15.05.2000 PATR II 20

Erweiterung für pathval/4Erweiterung 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).

Page 21: PATR II Interpreter

15.05.2000 PATR II 21

Syntaxregeln: PATR IISyntaxregeln: PATR II

Rule X0 X1 X2:

< X0 cat> = s

< X0 cat> = np

< X0 cat> = vp

< X0 subj> = < X2 subj>

< X0 obj> = < X2 obj>

< X2 subj> = < X1>

< X1 agr cas> = nom.

Rule X0 X1 X2:

< X0 cat> = vp

< X0 cat> = v

< X0 cat> = np

< X0 subj> = < X1 subj>

< X0 obj> = < X1 obj>

< X2 obj> = < X2>.

Allgemeines Schema: Rule FSi FS+: G*. (Makros?)

Page 22: PATR II Interpreter

15.05.2000 PATR II 22

Syntaxregeln: DCGSyntaxregeln: 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.

Page 23: PATR II Interpreter

15.05.2000 PATR II 23

Syntaxregeln: KlauselnSyntaxregeln: 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).

Page 24: PATR II Interpreter

15.05.2000 PATR II 24

Lexikon: PATR IILexikon: PATR II

• Allgemeines Schema: Word String: L*.

• Beispiele:– Word klaut: <cat> = V AccSing.– Word paul: <cat> = NP NomSing. – Word bananen: <cat> = NP AccPlur.

Page 25: PATR II Interpreter

15.05.2000 PATR II 25

Lexikon: DCGLexikon: 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].

Page 26: PATR II Interpreter

15.05.2000 PATR II 26

Lexikon: KlauselnLexikon: Klauselncat(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).

Page 27: PATR II Interpreter

15.05.2000 PATR II 27

MakrosMakros

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).

Page 28: PATR II Interpreter

15.05.2000 PATR II 28

PATR II-ParserPATR II-Parser

parse:-nl, write('Phrase >> '),

read_wordlist(String), nl,parse(String).

parse(String):-cat(FS, String, []),print_fsm_(FS).

Page 29: PATR II Interpreter

15.05.2000 PATR II 29

Parsing-SessionParsing-Session

Page 30: PATR II Interpreter

15.05.2000 PATR II 30

LiteraturLiteratur

• 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.