Hvad er Google Translate så godt til?

Hvorfor Google Translate til latin er så dårlig.

Google Translate til latin er fuldstændig statistisk. Den har ingen model for grammatik, syntaks eller betydning. Det eneste, det gør, er at korrelere sekvenser af op til fem på hinanden følgende ord i tekster, der er blevet oversat manuelt til to eller flere sprog.

Mere præcist har det opbygget en skjult Markov-model ud fra alle de manuelle oversættelser, der er blevet indlæst i det. Google kalder dette for Phrase-Based Machine Translation Model, eller PBMTM. I november 2016 opdaterede Google Translate til at bruge den forbedrede Neural Machine Translation Model til nogle sprog, som ikke fungerer på denne måde – men latin er ikke blandt dem.

Sådan fungerer PBMTM groft sagt. Den antager, at folk taler ved tilfældigt at vælge det ene ord efter det andet, hvor sandsynlighederne bestemmes af det tidligere udtalte ord. Hvis du f.eks. har sagt “to”, er der en vis sandsynlighed for, at det næste ord vil være “eller”. Hvis du lige har sagt “eller”, er der en vis sandsynlighed for, at det næste ord vil være “butan”. Du kan beregne et skøn over disse sandsynligheder ved at se på alle de tekster, som du har indtastet tidligere. Derefter kan du generere tilfældigt, men bare lidt sammenhængende sludder i overensstemmelse med disse sandsynligheder:

To

To eller

To eller butan

To eller butangas

To eller butangas kan angribes

Hvis du bruger et kontekstuelt “vindue” med flere ord – f.eks, de foregående tre, fire eller fem – for at finde det næste, vil det resulterende sludder se mere ud til at være skrevet af en skizofren end af en afasiramt. Her er et eksempel med det kontekstuelle vindue fremhævet:

Jeg hørte om

Jeg hørte om seks

Jeg hørte om seks i dag

Jeg hørte om seks i dag, vi

Jeg hørte om seks i dag, vi søger

Opmærksomheden henledes på, hvordan hver enkelt sætning med fed skrift kunne have været i en rigtig sætning: “I går

Det er en Markov-model. Den “skjulte” del tilføjer en vis kompleksitet, som jeg vil udskyde til slutningen af dette indlæg. Den grundlæggende idé er: Google Translate’s PBMTM forsøger at vælge det mest sandsynlige næste ord på grundlag af sandsynlighedsestimater, der er afledt af sekvenser af fem ord fra det korpus af tekster på input- og målsproget, som Google Translate er i besiddelse af (ikke kun faktiske tekster, men også mange crowd-sourced-oversættelser).

Det, som Google Translate er mest pålideligt til, er at oversætte dokumenter, der produceres af FN, mellem de sprog, der anvendes der. Det skyldes, at FN-dokumenter har leveret en uforholdsmæssig stor andel af de manuelt oversatte tekster, som Google Translate trækker sine sekvenser af fem ord fra, da FN-dokumenter er let tilgængelige på mange forskellige sprog (da f.eks. alle officielle FN-dokumenter, mødereferater og korrespondance i FN’s hovedkvarter er oversat til mindst arabisk, kinesisk, engelsk, fransk, russisk og spansk).

Vis hvad der sker, når jeg indtaster dette:

À l’exception de ce qui peut être convenu dans les accords particuliers de tutelle conclu conformément aux articles 77, 79 et 81 et plaçant chaque territoire sous le regime de tutelle, et jusqu’à ce que ces accords aient été conclu, ingen bestemmelse i dette kapitel må fortolkes som en direkte eller indirekte ændring på nogen måde af de rettigheder, der gælder for nogen stat eller noget folk, eller af bestemmelser i internationale retsakter, der er i kraft, og som medlemmer af organisationen kan være parter i.

Det giver mig:

Med undtagelse af det, der måtte blive aftalt i de særlige værgemålsaftaler, der indgås i overensstemmelse med artikel 77, 79 og 81, og som placerer hvert territorium under værgemålsordningen, og indtil sådanne aftaler er indgået, må dette kapitel ikke fortolkes således, at det direkte eller indirekte på nogen måde ændrer en stats eller et folks rettigheder eller bestemmelserne i gældende internationale retsakter, som medlemmer af organisationen måtte være parter i.

Perfekt! (Næsten).

Det er en af grundene til, at dens latinske oversættelser har tendens til at være så dårlige: Den har et meget tyndt korpus af menneskeskabte oversættelser af latin at basere sine skjulte Markov-modeller på – og den bruger skjulte Markov-modeller.

Så indtil FN begynder at gøre sine forretninger på latin, vil Google Translate’s statistiske model ikke gøre et særligt godt stykke arbejde. Og selv da skal du ikke forvente meget, medmindre du oversætter tekst, der er indsat direkte fra FN-dokumenter.

Flere detaljer om oversættelse for de nysgerrige.

En skjult Markov-model tilføjer “stater”. Det antages, at taleren tilfældigt overgår fra den ene “tilstand” til den anden, og hver tilstand har sit eget sæt af sandsynligheder for, hvilket ord den vil “udsende”. En skjult Markov-model er således et statistisk gæt om, hvad der er de mest sandsynlige tilstande, overgangssandsynligheder og emissionssandsynligheder, som ville producere et givet sæt sekvenser – under forudsætning af, at de blev produceret på denne tilfældige måde.

Google Translate beregner derfor: “Givet at forfatteren på sprog A lige har sagt (op til) disse fem ord, hvad er så den mest sandsynlige tilstand, som forfatteren befinder sig i? OK, nu, ud fra den tilsvarende tilstand i sprog B, hvad er det mest sandsynlige ord, der skal udgives som det næste?”

Her er en illustration af det kontekstuelle vindue med fem ord. Hvis vi indtaster følgende:

Bukser, som du forventede, blev båret.

Bukser blev båret.

Bukser, som du forventede, er båret.

De latinske oversættelser (med manuelle oversættelser tilbage til engelsk), er:

Anhelat quemadmodum speravimus confecta. (Han gisper lige som vi håbede opnået.)

Braccas sunt attriti. (Bukserne er blevet slidt op ).

Anhelat, ut spe teris. (Han gisper, ligesom du, ved håb, er ved at blive slidt op.)

Bemærk, at første og tredje sætning grænser til ugrammatisk vrøvl. Der er ikke nogen sekvenser af fem ord i Google Translate’s engelske database, der passer godt til “pants as you expected were/are”, så det er flabet. Bemærk, at den i den tredje sætning, da den nåede til “slidt”, havde glemt, hvilken betydning af “bukser” den valgte i starten af sætningen. Eller rettere sagt, den havde ikke glemt det, fordi den aldrig sporede det. Den har kun registreret sekvenser af fem ord. Den giver den anden sætning en slags mening, men selv da er den stadig meget forkert – ikke alene giver den “slidt” den forkerte betydning (da den som sagt ikke skaber nogen semantisk forbindelse mellem “bukser” og “slidt”, der ville indebære den anden definition af “at bære”), men den undlader helt at få kønnet på substantivet og verbet til at stemme overens, eller at have subjektet i den korrekte kasus.

Så, om sætningen giver mening påvirker på en måde, om oversættelsen betyder noget, men det er værre end det. Det, der betyder mest, er nøjagtig, ord-for-ord-match med tekster i databasen.

Indtastning af latin i Google Translate (med ord ændret fra den første sætning vist med fed skrift):

Abraham vero aliam duxit uxorem nomine Cetthuram.

Quintilianus vero aliam duxit uxorem nomine Cetthuram.

Abraham vero aliam duxit uxorem nomine Iuliam.

Abraham vero canem duxit uxorem nomine Fido.

English output:

Og Abraham tog sig en anden hustru, og hendes navn var Keturah.

Quintilian, nu en anden hustru, og hendes navn var Ketura.

Og Abraham tog en anden hustru, og hans hustru hed en datter ved navn Julia.

Og Abraham tog en hustru og bragte ham til en hund ved navn Fido.

Vulgata og ASV-oversættelsen (eller lignende) er blandt Google Translates kildetekster, så den er meget god til at oversætte dem direkte – bemærk dog, hvad der sker, når indtastningen afviger med så lidt som ét ord. Da softwaren ikke længere er i stand til at opdage ligheden, begynder den at oversætte mindre sætningsfragmenter i stedet for hele sætningen: F.eks. bliver fragmentet “uxorem nomine Cetthuram” oversat i begge ovenstående sætninger, hvor det står som “en anden hustru, og hendes navn var Keturah” på trods af ændringen af konteksten.

Denne oversættelsesmetode er grunden til, at Google Translate fungerer relativt godt for de mere analytiske sprog , hvor streng ordstilling er det vigtigste for betydningen, men forfærdeligt for de mere syntetiske sprog som f.eks. latin, hvor bøjninger definerer betydningen. Det skyldes, at i sådanne analytiske sprog er det mere sandsynligt, at efterfølgende ord har en semantisk forbindelse, der gør det muligt at bevare betydningen, når de gengives på målsproget.

Den neurale maskinoversættelsesmodel

Den neurale maskinoversættelsesmodel har bevæget sig ud over simple statistiske modeller for oversættelse og anvender i stedet maskinlæring og neurale netværk.

I henhold til et blogindlæg fra Google om emnet:

På et højt niveau oversætter det neurale system hele sætninger ad gangen i stedet for blot stykke for stykke. Det bruger denne bredere kontekst til at hjælpe det med at finde ud af den mest relevante oversættelse, som det derefter omarrangerer og justerer, så den minder mere om et menneske, der taler med korrekt grammatik.

Et endnu mere avanceret system er Googles Zero-Shot Translation med Googles flersprogede maskinoversættelsessystem, som kan opfattes som en oversættelse af indgangssætningerne til sin egen semantiske computer “interlingua” og derefter til udgangssproget. Det er dette, der gør det muligt at foretage “zero-shot-oversættelse” mellem sprogpar, som den nogensinde har analyseret før. Det eksempel, der blev nævnt i Googles rapport, viste en fornuftig oversættelse fra koreansk til japansk, idet det kun var blevet trænet på sætningspar fra japansk-engelsk og koreansk-engelsk. Desværre ser ingen af disse ud til at komme til latin i den nærmeste fremtid.

Hvis du vil se Markov-kæder, der fungerer på engelsk på reddit, er /r/SubredditSimulator en subreddit, der er helt fyldt med Markov-kæde-bots (men ikke skjulte Markov-kæde-modeller), der er tilført frø af indholdet af subreddits. Indlægstitlerne der er skabt af en Markov-kædelængde (kontekstuelt “vindue” af ord) på to, hvilket betyder, at hver sekvens af tre ord har eksisteret på et tidspunkt i den subreddit, hvorfra botten har hentet sin kilde. Kommentarerne er skabt efter samme metode, bortset fra de længere kommentarer, som har en Markov-kædelængde på tre.

TL;DR. Bare læs det. Sammenfattende kan man dog sige, at Googles oversættelsessystem til latin ikke har grammatisk eller semantisk analyse på noget niveau, men blot en statistisk model af det mest sandsynlige ord, der kommer til at optræde som det næste, baseret på en analyse af det korpus af værker, som det har på både indgangssproget og latin. Dette fungerer relativt godt for sprog som engelsk, hvor ordrækkefølgen er det vigtigste, men det er forfærdeligt for sprog som latin.

Så brug ALDRIG Google Translate til latin, hvis du vil have nogen form for egentlig oversættelse.

Som der står i sidebjælken:

Google Translate er altid forkert, altid. Gør dig ikke engang den ulejlighed at henvende dig til Google Translate, før du beder os om hjælp til en oversættelse.

Som sagt plagieret fra Ben Kovitz’ fremragende indlæg på Latin StackExchange, og derefter lidt udvidet.

Leave a Reply