Maschinelle Übersetzung I Prolog Grundkurs WS 99/00 Christof Rumpf rumpf@uni-duesseldorf.de
Übersetzung von Sprachen Formale Sprachen Compilerbau Prolog C C Assembler Natürliche Sprachen Maschinelle Übersetzung (MachineTranslation) Deutsch Japanisch Deutsch Englisch Niveaudifferenz! Niveaudifferenz??? (Japanisch Englisch)? 18.01.00 GK Prolog - Maschinelle Übersetzung I
DeutschEnglisch direkt „Paul klaut Bananen“ soll via DCG übersetzt werden in/zurück „Paul steals bananas“ 18.01.00 GK Prolog - Maschinelle Übersetzung I
GK Prolog - Maschinelle Übersetzung I DCG1 DeutschEnglisch %Syntax s( A,C) --> np(A,B), vp(B,C). vp(A,C) --> v(A,B), np(B,C). % Lexicon v( [steals |T],T) --> [klaut]. np([paul |T],T) --> [paul]. np([bananas|T],T) --> [bananen]. 18.01.00 GK Prolog - Maschinelle Übersetzung I
DCG1: Paare von Differenzlisten %Syntax s( A1,C1,A2,C2):- np(A1,B1,A2,B2), vp(B1,C1,B2,C2). vp(A1,C1,A2,C2):- v(A1,B1,A2,B2), np(B1,C1,B2,C2). % Lexicon v( [steals |T1],T1, [klaut |T2],T2). np([paul |T1],T1, [paul |T2],T2). np([bananas|T1],T1, [bananen|T2],T2). 18.01.00 GK Prolog - Maschinelle Übersetzung I
GK Prolog - Maschinelle Übersetzung I Anfragen an DCG1 ?- s([paul,steals,bananas],[],S,[]). S = [paul,klaut,bananen], yes ?- s(S,[],[paul,klaut,bananen],[]). S = [paul,steals,bananas], yes ?- s(E,[],D,[]). D = [paul,steals,paul] E = [paul,klaut,paul] ->; ... 4 Lösungen 18.01.00 GK Prolog - Maschinelle Übersetzung I
GK Prolog - Maschinelle Übersetzung I Bewertung von DCG1 DCG1 funktioniert für das gegebene Grammatik-fragment wunderbar. Allerdings ist dies ein reiner Zufall, da die Syntax der beiden Sprachen im Fragment übereinstimmt. Sobald eine solche Übereinstimmung der syntaktischen Struktur nicht gegeben ist, ist das Übersetzungsmodell nicht mehr verwendbar. 18.01.00 GK Prolog - Maschinelle Übersetzung I
SubjektVerbObjekt vs. SubjektObjektVerb NP VP paul V NP klaut bananen S NP VP paulga NP V bananao nusumu Deutsch Japanisch 18.01.00 GK Prolog - Maschinelle Übersetzung I
Nebensatz Deutsch/Englisch Rel NP VP daß Paul NP V Bananen klaut S‘ Rel NP VP that Paul V NP steals bananas SOV SVO 18.01.00 GK Prolog - Maschinelle Übersetzung I
DCG2 DeutschJapanisch %Syntax s( A,C) --> np(A,B), vp(B,C). vp(A,C) --> v(B,C), np(A,B). % Lexicon v( [nusumu |T],T) --> [klaut]. np([paulga |T],T) --> [paul]. np([bananao|T],T) --> [bananen]. 18.01.00 GK Prolog - Maschinelle Übersetzung I
Bewertung von DCG2 Das Vertauschen der ‚japanischen‘ Differenzlisten von V und NP in der VP-Expansion führt offensichtlich zur korrekten Korrespondez der Sätze Paul klaut Bananen Paulga bananao nusumu Unschönerweise wird das japanische Verb innerhalb der deutschen NP verarbeitet und die japanische NP innerhalb des deutschen Verbs. Darüberhinaus wachsen die Probleme mit komplexeren Differenzen in der syntaktischen Struktur. 18.01.00 GK Prolog - Maschinelle Übersetzung I
Resümee direkte Übersetzung Nicht nur aufgrund syntaktischer Differenzen scheint die direkte Übersetzung zwischen natürlichen Sprachen inadequat. Auch auf lexikalischer Ebene ergeben sich Probleme aufgrund unterschiedlicher Wort-bedeutungen, oder weil es in der Zielsprache kein entsprechendes Wort gibt, so daß eine Paraphrasierung notwendig wird. 18.01.00 GK Prolog - Maschinelle Übersetzung I
GK Prolog - Maschinelle Übersetzung I Interlingua Das ideale Modell zur Übersetzung natürlicher Sprachen verwendet eine Interlingua, die alle Differenzen zwischen Einzelsprachen überbrückt und gleichzeitig die Fähigkeit besitzt, beliebige expressive Nuancen jeder Einzelsprache zu modellieren. NLi Interlingua NLj 18.01.00 GK Prolog - Maschinelle Übersetzung I
GK Prolog - Maschinelle Übersetzung I PL1 als Interlingua Es scheint plausibel, als Interlingua eine Sprache zu wählen, die die Bedeutung eines natürlichsprachlichen Ausdrucks repräsentiert. Die Prädikatenlogik 1. Stufe kann in einem gewissen Umfang die Bedeutung natürlichsprachlicher Ausdrücke widerspiegeln*. *Statt PL1 üblich: Typenlogik mit -Abstraktion. 18.01.00 GK Prolog - Maschinelle Übersetzung I
Every man loves a woman. Der englische Satz Every man loves a woman. soll als PL1-Ausdruck repräsentiert werden: x man(x) y (woman(y) loves(x,y)) Skopusambiguität: die Lesart y x man(x) (woman(y) loves(x,y)) soll hier nicht weiter berücksichtigt werden. 18.01.00 GK Prolog - Maschinelle Übersetzung I
Notation für PL1 in Prolog Wenn wir PL1-Ausdrücke in Prolog repräsentieren wollen, brauchen wir eine Notation dafür. x man(x) y (woman(y) loves(x,y)) all(X,man(X) -> exists(Y,woman(Y) + loves(X,Y))) 18.01.00 GK Prolog - Maschinelle Übersetzung I
GK Prolog - Maschinelle Übersetzung I Baumtransformation S NP VP Det N V NP every man loves Det N a woman all X -> man exists X Y + woman loves Y X Y 18.01.00 GK Prolog - Maschinelle Übersetzung I
Typologie der Quantoren Allaussagen: all(X, P -> Q) Existenzaussagen: exists(X, P + Q) Every man loves a woman. x man(x) y (woman(y) loves(x,y)) all(X,man(X) -> exists(Y,woman(Y) + loves(X,Y))) A man loves every woman. x man(x) y (woman(y) loves(x,y)) exists(X,man(X) + all(Y,woman(Y) -> loves(X,Y))) 18.01.00 GK Prolog - Maschinelle Übersetzung I
Baumtransformation konkret NP VP Det N V NP every man loves Det N all(X,N->VP) man(X) loves(X,Y) a woman exists(Y,N+V) woman(Y) 18.01.00 GK Prolog - Maschinelle Übersetzung I
Baumtransformation konkreter NP VP Det N V NP every man loves Det N all(X,N->VP) man(X) loves(X,Y) a woman exists(Y,N+V) woman(Y) 18.01.00 GK Prolog - Maschinelle Übersetzung I
GK Prolog - Maschinelle Übersetzung I Ein Prolog-Fragment s(P) --> np(X,Q,P), vp(X,Q). vp(X,P) --> tv(X,Y,Q), np(Y,Q,P). np(X,Q,P)--> det(X,R,Q,P), n(X,R). tv(X,Y,loves(X,Y)) --> [loves]. det(X,R,Q,all(X,R->Q)) --> [every]. det(X,R,Q,exists(X,Q+R))--> [a]. n(X,man(X)) --> [man]. n(X,woman(X)) --> [woman]. 18.01.00 GK Prolog - Maschinelle Übersetzung I
GK Prolog - Maschinelle Übersetzung I Überblick s(S) np(Subj,VP,S) vp(Subj,VP) det(Subj,NSubj,VP,S) n(Subj,NSubj) tv(Subj,Obj,V) np(Obj,V,VP) det(X,R,Q,exists(Q+R)) n(X,man(X)) tv(X,Y,loves(X,Y)) det(X,R,Q,all(R->Q)) n(X,woman(X)) det(Obj,NObj,V,VP) n(Obj,NObj) det(X,R,Q,exists(Q+R)) n(X,man(X)) det(X,R,Q,all(R->Q)) n(X,woman(X)) 18.01.00 GK Prolog - Maschinelle Übersetzung I