Вы находитесь на странице: 1из 4

c E.

Petrişor, 2008
Cursul 12, Probabilităţi şi Statistică ı̂n CS ° 1

12.1 Google’s statistical machine translation


Supliment–cadou la Cursul 12
Machine translation (abreviat MT) este un subdomeniu al CS, care studiază modele de
traducere automată dintr-o limbă naturală ı̂n alta. În principal există două modalităţi de
a efectua traducere automată: metoda bazată pe reguli gramaticale (rule-based method)
şi metoda statistică (statistical machine translation, SMT).
Google a folosit pentru traduceri, până de curând, aplicaţia SYSTRAN (care este
folosită şi de Yahoo şi Microsoft). În 2006 Google a lansat propriul sistem SMT:
http://googleresearch.blogspot.com/2006/04/statistical-machine-translation-live.html
La baza lui stă o metodă dezvoltată de Franz Josef Och, şeful departamentului MT de
la Google. El a studiat la Universitatea Aachen, Germaniaşi a dezvoltat ı̂n lucrarea sa
de doctorat din anul 2002, intitulată Statistical Machine Translation: From Single-Word
Models to Alignment Templates,
http://www-i6.informatik.rwth-aachen.de/publications/download/520/Och--2002.pdf
o modalitate performantă de a efectua traducere ı̂ntre două limbi, una numită sursă
(limba din care traducem) şi cealaltă, ţintă (limba ı̂n care se traduce), pe baza informaţiei
statistice extrase din parallel text corpora. Parallel text corpus (corpora este pluralul) este
o bază de texte ı̂n două limbi distincte, de obicei obţinute prin traducerea textelor dintr-o
limbă, de către traducători specializaţi, ı̂n cea de-a doua limbă.
Google foloseşte textele paralele puse la dispoziţie de către ONU şi Uniunea Euro-
peană.
Modelul teoretic de traducere ı̂ntre două limbi, sursă şi ţintă, este următorul:
Se consideră variabila aleatoare F, ce are ca valori orice propoziţie sau frază, f, pe care
un vorbitor de limbă sursă o poate spune cândva. E este variabila aleatoare ce are ca valori
orice propoziţie sau frază pe care un vorbitor de limbă ţintă o poate enunţa. Precizăm
că ı̂n literatura relativ la SMT cele două notaţii, F, f resspectiv E, e, sunt consacrate.
Această alegere se datorează faptului că primele experimente s-au făcut pe limba sursă,
franceza, şi limba ţintă, engleza.
Dată fiind o frază f, ı̂n limba sursă, aplicaţia SMT trebuie să determine fraza e din
corpusul (baza) de texte, care maximizează probabilitatea condiţionată P(E = e|F = f),
adică probabilitatea ca traducerea să fie e, ştiind că textul de tradus este f.
Din definiţia probabilităţii condiţionate avem:
P(E = e, F = f) P(E = e)P(F = f|E = e)
P(E = e|F = f) = =
P(F = f) P(F = f)
(remarcăm că aceasta este formula lui Bayes!) Astfel problema traducerii frazei f revine
la a determina fraza ê din corpusul de texte din limba ţintă, care maximizează funcţia
P(E = e)P(F = f|E = e)
ψ(e) =
P(F = f)
2 c E. Petrişor, 2008
Cursul 12, Probabilităţi şi Statistică ı̂n CS °

Deoarece numitorul nu depinde de e, problema se reduce la a determina fraza ê care


maximizează:
φ(e) = P(E = e)P(F = f|E = e)
Fraza ê va fi un estimator al verosimilităţii maxime pentru fraza e, ce traduce relativ
corect fraza f.
Relaţia:
ê = argmax(P(E = e)P(F = f|E = e))
se numeşte ecuaţia fundamentală a SMT. Deoarece ı̂n ı̂ntreaga teorie nu mai intervin alte
variabile aleatoare, de obicei acestea se omit ı̂n expresiile folosite şi se notează simplu
P(e), P(f|e). Probabilitatea P(f|e) se numeşte verosimilitatea traducerii.
Distribuţiile teoretice, de probabilitate ale variabilelor aleatoare discrete E şi F fiind
necunoscute, se estimează P(e) şi P(f|e) din datele ı̂nregistrate ı̂n parallel text corpora.
Modalitatea de estimare (ı̂nvăţare, ı̂n limbaj de machine learning) a probabilităţilor P(e)
defineşte ceea se numeşte language model, iar modalitatea de estimare a probabilitătilor
condiţionate, P(f|e), constituie string translation model. Odată generate cele două modele,
la o cerere de traducere a unei fraze f, sistemul SMT caută fraza ê ce maximizează
produsul P(e)P(f|e).

12.1.1 Modelul pentru estimarea probabilităţilor P(e)


Pentru a estima probabilităţile P(e), frazele e, care sunt stringuri de cuvinte, se divid
ı̂n substringuri de n cuvinte, n = 1, 2, ... Un substring de n cuvinte se numeşte n − gram,
şi particularizând avem unigram (n=1), bigram (n=2), trigram (n=3). Franz Josef Och
foloseşte notaţia:
eI = e1 e2 . . . eI , fJ = f1 f2 . . . fJ
pentru a ilustra succesiunea de cuvinte din fraza e, respectiv f(de fapt el notează eI1 ,
respectiv f1J , unde 1 , cred că semnifică faptul că fraza ı̂ncepe cu cuvântul e1 , respectiv
f1 ; eu omit acest indice!).
Pentru a estima probabilitatea P (eI ) din textele din limba ţintă existente ı̂n corpusul
de texte, se procedează astfel: Dacă w este unigram (adică un cuvânt) atunci probabili-
tatea de a ı̂ntâlni cuvântul w este estimată de:
de câte ori apare cuvântul w ı̂n baza de texte ı̂n limba ţintă
p(w) =
numărul total de cuvinte din baza de texte ı̂n limba ţintă
Probabilitatea ca, cuvântul w2 să urmeze după cuvântul w1 este:

p(w1 w2 ) de câte ori apare ı̂n baza de texte succesiunea de cuvinte w1 w2


p(w2 |w1 ) = =
p(w1 ) p(w1 )

Apoi
de câte ori apare ı̂n baza de texte stringul ”w1 w2 w3 ”
p(w3 |w1 w2 ) =
decâte ori apare stringul ”w1 w2 ”
c E. Petrişor, 2008
Cursul 12, Probabilităţi şi Statistică ı̂n CS ° 3

etc. Aplicând formula condiţionării iterate:


P (A1 ∩A2 ∩. . .∩AI−1 ∩AI ) = P (An |A1 ∩. . .∩AI−1 )P (AI−1 |A1 ∩. . .∩AI−2 ) · · · P (A3 |A1 ∩A2 )P (A2 |A1 )P (A1 )

rezultă că un estimator al probabilităţii frazei eI = e1 e2 . . . eI este:

p(eI ) = p(eI = e1 e2 . . . eI ) = p(eI |e1 e2 . . . eI−1 )p(eI−1 |e1 e2 . . . eI−2 ) · · · p(e2 |e1 )p(e1 )

În urma a numeroase teste, Och a ajuns la concluzia că nu e nevoie să estimeze proba-
bilităţi de tipul
p(ek |e1 e2 . . . ek−1 ), k > 4
deoarece ı̂n baza de texte există puţine stringuri de k > 4 cuvinte care să se repete şi
cel mai adesea se repetă stringuri de două, trei cuvinte (bigramuri şi trigramuri). Astfel
prima ı̂mbunătăţire adusă modelelor de limbă preexistente a fost să introducă un nou
estimator al probabilităţii unei fraze eI = e1 e2 . . . eI , şi anume a introdus un ”cuvânt”
artificial, notat $, care se adaugă la ı̂nceputul şi sfârşitul unei fraze şi estimatorul:
I+1
Y
I
p(e = e1 e2 . . . eI ) = p(ei |ei−3 ei−2 ei−1 )
i=1

unde e−2 = e−1 = e0 = eI+1 = $

12.1.2 Model pentru estimarea probabilităţilor ce caracterizează verosimili-


tatea traducerii.
În ecuaţia fundamentală a SMT intervine probabilitatea condiţionată P(f|e), numită
verosimilitatea traducerii e, pentru fraza f. La baza acestei estimări stă ceea ce se numeşte
statistical alignment model, care pornind de la baza de texte paralele T = {(fs , es ), s =
1, 2, . . . , S} asociază fiecarei perechi de fraze (fs , es ), o corespondenţa ı̂ntre cuvintele din
fraza fs şi fraza paralelă es . În literatura de specialitate există multe modele de aliniament,
dar modelul propus de Och, numit template alignment model pare a fi cel mai performant
şi ı̂n anul 2003 a câştigat concursul DARPA (Defense Advanced Research Projects Agency,
o agenţie din SUA care suportă activităţi de cercetare–dezvoltare de noi tehnologii).
Detalii despre template alignment model se găsesc ı̂n teza de doctorat a lui Och (vezi
link-ul de mai sus). Există şi numeroase articole pe WEB, dar acestea sunt ı̂n general
rezumate din teză şi expuse mai puţin explicit.
Avantajul major al SMT este că, spre deosebire de rule-based machine translation
este independent de perechea (limbă sursă, limbă ţintă). Implementarea este unică şi
performanţa sistemului depinde de volumul de texte paralele de care dispune.
Testând traduceri din engleză ı̂n română sau viceversa, neavând informaţiile de mai
sus am fi tentaţi să spunem că Google’s SMT este slab. Cauza traducerilor ”bizare” este
corpusul redus de texte paralele ı̂n aceste două limbi.
Câteva exemple (puteţi testa la http://translate.google.com/translate_t):
4 c E. Petrişor, 2008
Cursul 12, Probabilităţi şi Statistică ı̂n CS °

Limba sursă Limba ţintă


How does Google’s machine translation work? Cum face Google’s machine traducere de muncă?
How does machine translation work? Cum se machine traducere de muncă?
Cum realizeaza Google traducerea automata? How Google produces automatic translation?
Studentii din Romania nu frecventeaza cursurile. Students of Romania not attend classes.
Google Translate FAQ menţionează că maşina de tradus poate fi ”ajutată” dacă se
contribuie cu un volum mare de texte paralele şi/sau se sugerează o traducere mai bună
ı̂n cazul unei traduceri necorespunzătoare:
http://www.google.com/support/contact/?translate=1
Post Scriptum: Ştiţi de ce Google a tradus suficient de bine fraza: ”Studentii din
Romania nu frecventeaza cursurile”? Pentru că ı̂n corpusul pus la dispoziţie de Uniunea
Europeană figurează această informaţie ı̂n toate limbile ţărilor membre. Rezultatul va fi
că ı̂n câţiva ani absolvenţii din RO vor fi evitaţi, pentru că au studiat la ”fără frecvenţă”
şi deci nu au un background solid.

Вам также может понравиться