Maschinelle Übersetzung I Prolog Grundkurs WS 99/00 Christof Rumpf [email protected].
-
Upload
poldi-dumke -
Category
Documents
-
view
117 -
download
0
Transcript of Maschinelle Übersetzung I Prolog Grundkurs WS 99/00 Christof Rumpf [email protected].
18.01.00 GK Prolog - Maschinelle Übersetzung I
2
Ü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
3
DeutschEnglisch direkt
„Paul klaut Bananen“
soll via DCG übersetzt werden in/zurück
„Paul steals bananas“
18.01.00 GK Prolog - Maschinelle Übersetzung I
4
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
5
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
6
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
7
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
8
SubjektVerbObjekt vs. SubjektObjektVerb S
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
9
Nebensatz Deutsch/Englisch
S‘
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
10
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
11
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
12
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
13
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
14
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
15
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
16
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
17
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
18
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
19
Baumtransformation konkret
S
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
20
Baumtransformation konkreter
S
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
21
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
22
Ü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))