Maschinelle Übersetzung I Prolog Grundkurs WS 99/00 Christof Rumpf rumpf@uni-duesseldorf.de

Preview:

Citation preview

Maschinelle Übersetzung I

Prolog Grundkurs WS 99/00

Christof Rumpf

rumpf@uni-duesseldorf.de

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

Recommended