Maskinöversättning - Skolan för datavetenskap och kommunikation

Maskinöversättning
Johan Boye, KTH
Rosetta-stenen
• Världens mest kända parallellkorpus (från 190 f.Kr)
• En text – tre språk:
– Egyptiska hieroglyfer
– Egyptisk s.k. demotisk text
– Klassisk grekiska
• Ledde till att man kunde dechiffrera egyptiska
hieroglyfer (Champollion, 1822).
Pyrgi-tavlorna (ca 500 f.Kr)
Maskinöversättning - historia
• Maskinöversättning (MT) var en av de första tänkta
applikationerna för datorer.
• Weaver, 1949: I have a text in front of me which is written in Russian
but I am going to pretend that it is really written in English and that it has
been coded in some strange symbols. All I need to do is strip off the code in
order to retrieve the information contained in the text.
•
•
•
•
•
IBM 1954: Program översatte 60 meningar ryska→engelska
ALPAC-rapporten 1960: MT övergavs under lång tid
80-90-tal: Grammatiska approacher till MT
CANDIDE 90-tal: Statistisk MT franska →engelska
2000 – : BabelFish, Google, stort intresse för statistisk MT
Kommersiellt/politiskt intressant
• EU spenderar mer än 1,000,000,000 Euro på
översättning varje år!
– även en smula automatisering skulle göra stor skillnad
• Viktigt för militär underrättelsetjänst
• På 1950-talet jobbade man mest på ryska-engelska –
vilka språkpar är viktiga nu?
Akademiskt intressant
• Tvärvetenskapligt: datavetenskap, lingvistik, språk,
statistik, artificiell intelligens.
• MT är ”AI-svårt”: kräver en lösning på AI-problemet
hur man representerar och resonerar om olika slags
kunskap (om världen)
• eller…?
Varför är översättning svårt?
• Ordföljd
• Polysemi (olika ordbetydelser)
– verbet run har 41 olika betydelser enligt WordNet
– 32 olika svenska översättningar enligt Folkets Lexikon
• Många-till-många-relationer
– ett ord i källspråket kan motsvaras av 0, 1 eller flera ord i
målspråket, och vice versa
• Pronomen
• Tempus
• Idiom
Ordföljd
• Svenska är SVO (subjekt-verb-objekt):
– Oracle köpte Sun.
– Tidningarna påstod att Oracle köpte Sun.
• Japanska är SOV (subjekt-objekt-verb):
– Oracle Sun köpte.
– Tidningarna Oracle Sun köpte påstod.
Polysemi
• He ran a business.
• He ran a marathon.
• He ran drugs across the
border.
• He ran for president.
• His nose ran.
• The machine ran for two
hours.
• The film ran for two hours.
• etc., etc.
•
•
•
•
•
•
•
•
•
•
Han gick till föreläsningen.
Bilen gick inte.
Tåget gick i morse.
Filmen gick på Rigoletto.
Tiden gick.
Det gick 100 pfennig på en
mark.
Melodin gick så här:
Magsjukan gick på skolan.
Han gick långt inom
politiken.
etc., etc.
Ordrelationer
• 1-1: Kalle älskar Marie – Kalle loves Marie
• 1-flera: Kalle är datavetare – Kalle is a computer
scientist
• flera-flera: Kalle simmade över sjön – Kalle a traversé
le lac à la nage
Pronomen
• Ibland är genus på pronomen oklart:
– J’ai lui donné un paquet – Jag gav honom/henne ett paket.
• T.ex. italienska, spanska, japanska är pro-drop-språk
– Pensa che il gelato è buono – Han/hon/den/det tycker att
glass är gott
• Olika pronomen kan signalera olika grader av
artighet eller intimitet
– I would like to ask you… – Je voudrais vous/te demander
Tempus
• Franska har tre olika tempi för förfluten form (passé simple,
passé composé, imparfait) som alla kan motsvara svenskans
imperfekt.
– Ett program som översätter sv→fr måste avgöra vilket tempus som ska
användas.
• Han simmade över sjön → He swam across the lake eller He
was swimming across the lake
• He was swimming across the lake → Han simmade över sjön
eller Han höll på att simma över sjön
Idiom
• Kick the bucket, lame duck, tongue in cheek
• Dra alla över en kam, gå i lås, bita i det sura äpplet
MT- alternativa angreppssätt
•
•
•
•
Ord-för-ord-översättning
Syntaktisk transfer
Interlingua
Statistisk översättning
Ord-för-ord
• Använd ett lexikon för att översätta varje ord i texten.
• Fördelar:
– snabbt och enkelt att implementera
– ger (möjligen) en viss idé om vad texten handlar om
• Nackdelar:
– tar inte hänsyn till skillnader i ordföljd
– oklart vilken betydelse som ska användas om ordet är
polysemt
– dålig kvalitet på resultatet
Syntaktisk transfer
• Analysera (parsa) meningarna i källspråket
• Ordna om delträden
• Översätt orden
NP
NP
• Lokal omordning:
red tomatoes
tomates rouges
• Icke-lokal omordning:
S
S
VP
NP
V
JJ
VP
NP
Red tomatoes are cheap this week
NP
V
NP
JJ
RoteTomaten sind diese Woche billig
Syntaktisk transfer
• Fördelar:
– hanterar ordföljd
• Nackdelar:
– behöver en stor grammatik för att kunna parsa alla
meningar i källspråket
– behöver transferregler för varje språkpar för att kunna
ordna om i analysträden
– hanterar inte polysemi-problemet
Interlingua
• Översätt varje mening till en logisk formel (meningsrepresentation)
– Johan kan äta →Possible(Eat(Johan))
– Johan måste äta → Compulsory(Eat(Johan))
– Menar du verkligen att hon tycker att Johan måste äta? →
…
• Använd sedan den logiska representationen för att
generera en mening i målspråket.
Vauquois-triangeln
Interlingua
syntaktisk
transfer
ord-för-ord
källspråk
målspråk
Interlingua
• Fördelar:
– vi behöver bara skriva en analysator/generator för varje
språk↔interlingua
– dvs 2n i stället för n2 system för att översätta mellan n
språk
• Nackdelar:
– svårt/omöjligt att definiera en enda logisk formalism som
funkar för alla världens språk
– svårt att konstruera analysatorer och generatorer, även om
vi kan komma överens om hur interlingua ska se ut
Modifierad triangel
Interlingua
semantisk
transfer
syntaktisk
transfer
ord-för-ord
källspråk
målspråk
Statistisk maskinöversättning
• Försöker hitta den troligaste svenska meningen givet en
mening i ett främmande språk (t.ex franska)
arg maxs p(s|f)
• Parar automatiskt ihop ord och fraser i ett parallellkorpus.
• Sannolikheter fås genom att träna statistiska modeller utifrån
parallellkorpuset.
Statistisk maskinöversättning
• Fördelar:
– kan hantera polysemi
– data-drivet, behövs minimal manuell insats
– kan skapas för varje språkpar där det finns tillräckligt med
data (=stort parallellkorpus)
– återanvänder bitar av översättningar gjorda av människor
• Nackdelar:
– hanterar inte syntax explicit (omordning sker på ord- eller
frasnivå)
– kräver mycket data
Statistisk maskinöversättning
• Hitta den mest troliga svenska meningen givet en fransk
mening
sˆ =arg max p( s | f ) =
s
p( s) ⋅ p( f | s)
arg max
=
s
p( f )
arg max p ( s ) ⋅ p ( f | s )
s
MT som en brusig kanal
Svensk
mening p(s)
Brusig kanal
p(f|s)
Fransk
mening f
Avkodare
(översättare)
ŝ = arg max p(f|s)∙p(s)
Gissad svensk
mening ŝ
Statistiska modeller
• p(f|s) är översättningsmodellen
(notera ordningen på f och s pga Bayes)
– ger en högre sannolikhet till svenska meningar som har samma
betydelse som meningen f
– p(f|s) uppskattas via ett parallellkorpus
• p(s) är språkmodellen
– ger en högre sannolikhet till svenska meningar som är
grammatiska/sannolika i svensk text
– p(s) uppskattas via ett svenskt korpus
Översättningsmodell
• p(f|s) – sannolikheten för att en viss svensk mening s ska ge
upphov till den franska meningen f
• Hur kan vi uppskatta p(f|s) ?
• Idé: Introducera matchningsvariabler (alignment variables)
som representerar hur orden i f parats ihop med orden i s
• p(f|s) = Σa p(a,f|s)
• Tänk på a som en funktion som givet ett franskt ord returnerar
ett svenskt ord i den parallella meningen
Översättningsmodell
• För att kunna lära sig en översättningsmodell måste vi först
para ihop meningarna i korpuset:
Ord-matchning (alignment)
Kalle
aime
Marie
Kalle
älskar
Toma
ten
Marie
Tomatoes
are
cheap
this
week
sind
diese
Woche
billig
Ord-matchning (alignment)
Le
projet
a
été
mis
en
œuvre
Projektet
har
blivit
genomfört
Ett ord i målspråket kan matchas mot flera ord i källspråket.
Men ett ord i källspråket kan bara matchas mot ett enda ord i målspråket.
Ord-matchning (alignment)
Le
projet
a
été
mis
en
NULL
Projektet
har
blivit
genomfört
Variant: Antag att det finns ett NULL-ord i målspråket.
œuvre
Ord-matchning (alignment)
Le
projet
a
été
mis
en
œuvre
a1
1
a2
1
a3
2
a4
3
a5
4
a6
4
a7
4
Projektet
har
blivit
genomfört
Variabel
Matchning
Matchningsmodell
f1,…, fm är den franska meningen
s1,…, sl är den svenska översättningen.
Vi vill uppskatta p(f1,…, fm , a1,…, am | s1,…, sl , m)
Låt t(fi|sai) vara sannolikheten att det franska ordet fi
genereras givet det svenska ordet sai
• Låt q(j|i,l,m) vara sannolikheten att ai=j, givet l (längden på
den svenska meningen) och m (längden på den franska
meningen)
• p(f1,…, fm , a1,…, am | s1,…, sl , m) = Πi=1,m q(ai|i,l,m)∙ t(fi|sai)
•
•
•
•
Matchningsmodell
• ”Le projet a été mis en œuvre”
• ”Projektet har blivit genomfört”
p(f1,…, fm , a1,…, am | s1,…, sl , m) =
q(1|1,4,7) ∙ t(Le|Projektet) ∙
q(1|2,4,7) ∙ t(projet|Projektet) ∙
q(2|3,4,7) ∙ t(a|har) ∙
q(3|4,4,7) ∙ t(été|blivit) ∙
q(4|5,4,7) ∙ t(mis|genomfört) ∙
q(4|6,4,7) ∙ t(en|genomfört) ∙
q(4|7,4,7) ∙ t(œuvre|genomfört)
• Hur kan vi estimera parametrarna q och t från data?
Matchningsmodell
• Hur kan vi estimera parametrarna q och t från data?
• Antag att vi har en massa träningsexempel (fransk mening,svensk
mening).
• Notera att vi inte vet ordmatchning för dessa exempel! (Data är
partiellt observerbara).
• Antag först att vi ändå vet ordmatchning för alla exempel.
c( f , s)
t ( f | s) =
c( s)
c(f,s) är antalet gånger det svenska ordet s blivit översatt till f
c(s) är antalet gånger s förekommer i korpuset
Matchningsmodell
c ( j , i , l , m)
q ( j | i , l , m) =
c(l , m)
c(l,m) är antalet gånger vi ser en svensk mening av längd l
tillsammans med en fransk mening av längd m
c(j,i,s,m) är antalet gånger vi ser en svensk mening av längd l
tillsammans med en fransk mening av längd m, och där det
i:te svenska ordet matchas mot det j:te franska ordet.
Expectation Maximisation
• Eftersom vi inte känner till ordmatchningarna (partiellt
observerbara data) uppskattas parametrarna q och t med
Expectation Maximisation (EM).
une maison
ett hus
une maison bleue
une table
ett blått hus
ett bord
• Först, anta att alla matchningar är lika sannolika
• Modellen lär sig ett och une ofta är matchade
Expectation Maximisation
• Efter 1 iteration: Vissa matchningar är mer sannolika (t.ex.
mellan une och ett.
une maison
ett hus
une maison bleue
une table
ett blått hus
ett bord
Expectation Maximisation
• Efter 2 iterationer:
une maison
ett hus
une maison bleue
une table
ett blått hus
ett bord
• Så småningom kan man dra slutsatser via Dirichlets princip
(pigeonhole principle), t.ex. att bleue och blått ska matchas.
Expectation Maximisation
• Konvergens. Vi kan nu uppskatta sannolikheterna, t.ex.
p(une|ett) = 0.41, p(maison|hus)=0.82, osv.
une maison
ett hus
une maison bleue
une table
ett blått hus
ett bord
Statistiska modeller
• p(f|s) är översättningsmodellen
(notera ordningen på f och s pga Bayes)
– ger en högre sannolikhet till svenska meningar som har samma
betydelse som meningen f
– p(f|s) uppskattas via ett parallellkorpus
• p(s) är språkmodellen
– ger en högre sannolikhet till svenska meningar som är
grammatiska/sannolika i svensk text
– p(s) uppskattas via ett svenskt korpus
Språkmodell
• p(s) är en n-gram-modell (t.ex n=3, trigram-modell)
• T.ex. S=Jag har en boll.
• p(s) = p(jag|start)∙p(har|start,jag)∙p(en|jag,har)∙p(boll|har,en)
Uppskattning av sannolikheter
• Unigram:
c( w)
p( w) =
N
där c(w) = antalet gånger w förekommer i korpuset, och
N = antal ord (tokens) i korpuset
Uppskattning av sannolikheter
• Bigram:
c( w1 , w2 )
p( w2 | w1 ) =
c( w1 )
där c(w1,w2) = antalet gånger w2 följer omedelbart efter w1 i
korpuset
Uppskattning av sannolikheter
• Trigram:
c( w1 , w2 , w3 )
p( w3 | w1 , w2 ) =
c( w1 , w2 )
där c(w1,w2, w3)= antalet gånger w3 följer omedelbart efter w1
och w2 i korpuset
Smoothing
• När man använder n-gram med n≥3 kommer man finna att en
mängd n-gram inte finns i träningsdata
• Detta leder till att ett antal beräknade sannolikheter är 0 (eller
odefinierade om vi har 0 i nämnaren)
• Samma problem som i Naive Bayes (se fö om maskininlärning)
• Smoothing löser problemet: anta att varenda n-gram har en
liten sannolikhet ε>0
• Finns många olika smoothing-metoder (se boken)
Bortom trigram
• Google använder antagligen 5- eller t.o.m. 6-gram
• Google har ett fritt tillgängligt korpus med 1000 miljarder
(1012) n-gram
– se kurssidan för länk
Till slut
• Modern statistisk MT är frasbaserad snarare än ordbaserad
• Detta leder till jättelika översättningsmodeller som måste
tränas på enormt mycket data
• Kan statistisk MT bli hur bra som helst?
– Google använder nästan all parallelldata som finns (EuroParl, FN,
digitaliserad översatt skönlitteratur…)
– "Each doubling of the amount of translated data input led to about a
0.5% improvement in the quality of the output” (Zollman)
– Kanske hybridmetoder (statistiska & grammatiska) är framtiden?