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?