BLEU

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

BLEU (Bilingual Evaluation Understudy) jest algorytmem do ewaluacji jakości tłumaczenia automatycznego z jednego języka naturalnego na inny. Jakość jest rozumiana jako korelacja między danymi wyjściowymi a tekstem ludzkim: "im bliższe tłumaczenie automatyczne jest profesjonalnemu tłumaczeniu ludzkiemu, tym jest lepsze".[1] BLEU był jedną z pierwszych metryk, która uzyskała wysoką korelację z ludzkim osądem jakości.[1] [2] Pozostaje także najbardziej popularną z metod.

Punkty liczone są dla pojedynczych przetłumaczonych segmentów - zwykle zdań - przez porównanie ich ze zbiorem tłumaczeń referencyjnych dobrej jakości. Punkty te są następnie uśredniane w obrębie całego korpusu, aby oszacować całkowitą jakość tłumaczenia. Pod uwagę nie są brane zrozumiałość oraz poprawność gramatyczna.

BLEU jest zaprojektowany, aby przybliżać ludzką ocenę na poziomie dużych korpusów i nie sprawdza się do oceny pojedynczych zdań.

Algorytm[edytuj | edytuj kod]

BLEU używa zmodyfikowanej wersji precyzji do porównania tłumaczenia kandydującego względem kilku tłumaczeń referencyjnych. Metryka modyfikuje pojedynczą precyzję, gdyż ustalono, że tłumaczenie automatyczne generuje więcej słów niż jest w tłumaczeniu referencyjnym. Jest to zilustrowane w poniższym przykładzie (Papineni et al. (2002)):

Przykład słabego wyniku tłumaczenia automatycznego z wysoką precyzją
Kandydat the the the the the the the
Referencja 1 the cat is on the mat
Referencja 2 there is a cat on the mat

W tym przykładzie, kandydujący tekst posiada następujący unigram precyzji:

P = \frac{m}{w_{t}} = \frac{7}{7} = 1

gdzie ~m jest liczbą słów tekstu znalezionych w referencji, a ~w_{t} liczbą słów w referencji.

Wszystkie spośród siedmiu słów tłumaczenia kandydującego pojawiają się w tłumaczeniach referencyjnych. Przedstawia to problem metryki: tłumaczenie kandydujące nie zachowuje żadnych treści z żadnego tłumaczenia referencyjnego. Modyfikacja, którą wprowadza BLEU jest prosta.

Dla każdego wyrazu w tłumaczeniu kandydującym, algorytm bierze maksymalną całkowitą liczbę wystąpień w tłumaczeniach referencyjnych. W powyższym przykładzie, wyraz "the" pojawia się dwa razy w referencji 1 i raz w referencji 3. W tym wypadku największą wartością jest dwa i jest ona uznawana za "maksymalną referencyjną liczbę".

Dla każdego ze słów w tłumaczeniu kandydującym, liczba słów jest porównywana z maksymalną liczbą referencyjną i brana jest najniższa wartość. W tym przypadku liczba słów "the" w tłumaczeniu kandydującym wynosi siedem z maksymalną liczbą referencyjną dwa. Ta "zmodyfikowana liczba" jest następnie dzielona przez całkowitą liczbę słów w tekście kandydującym. W powyższym przykładzie, zmodyfikowane punkty unigramu precyzji wynoszą:

P = \frac{2}{7}

Powyższa metoda jest wykorzystywana do obliczania punktów dla każdego n. Wartość n, która ma "największą korelację z jednojęzycznym osądem ludzkim"[1] wynosi cztery. Unigram punktów odpowiada za adekwatność tłumaczenia (jak wiele informacji zostało zachowanych). Dłuższe punkty n-gramów scores odpowiadają za płynność tłumaczenia albo do jakiego stopnia czyta się je jak "dobry język polski".

Modyfikacja precyzji nie rozwiązuje problemu krótkich tłumaczeń, które mogą wyprodukować wysokie punkty mimo korzystania ze zmodyfikowanej precyzji. Przykład tłumaczenia kandydującego dla tych samych referencji:

the cat

W tym przykładzie zmodyfikowany unigram precyzji wynosi:

P = \frac{1}{2} + \frac{1}{2} = \frac{2}{2}

jako że wyrazy "the" i "cat" pojawiają się raz w tłumaczeniu kandydującym, a całkowita liczba słów wynosi dwa. Zmodyfikowany dwugram precyzji będzie wynosił 1 / 1 jako że dwugram "the cat" występuje raz w tekście kandydującym. Zauważono, że aby uniknąć tego problemu precyzja zwykle idzie w parze z odwołaniami (ang. recall)[1], jako że unigram odwołań w tym przykładzie będzie wynosił 2 / 6 lub 2 / 7. Istnieje problem zawyżenia odwołań, jeśli tłumaczenie składa się ze wszystkich słów zawartych w tłumaczeniach referencyjnych[1].

W celu stworzenia punktu dla całego korpusu, łączone są zmodyfikowane punkty precyzji dla segmentów korzystające ze średniej geometrycznej pomnożonej przez karę zwięzłości (ang. brevity penalty) w celu uniknięcia sytuacji, kiedy krótkie teksty kandydującego otrzymują zbyt duży wynik. Niech r będzie całkowitą długością korpusu referencyjnego, a c całkowitą długością korpusu tłumaczenia. Jeśli c \leq r, stosuje się karę zwięzłości określoną następująco e^{(1-r/c)}. (W przypadku wielorakich zdań referencyjnych, r to suma długości zdań, których długości są najbliższe do długości zdań kandydujących.)

Wyniki[edytuj | edytuj kod]

BLEU często zostawał uznawany za korelujący dobrze z ludzkim osądem,[1][2][3] i pozostaje punktem odniesienia dla ocen każdej nowej metody. Metoda ta jest jednak krytykowana. Wykazano, że mimo możliwości ewaluacji tłumaczeń każdego języka, BLEU w obecnej formie nie radzi sobie z językami, które nie posiadają granic słów.[4]

Stwierdzono, że mimo znacznych zalet BLEU, nie ma gwarancji, że wzrost punktu BLEU jest wskaźnikiem polepszenia jakości tłumaczenia.[5] Niemniej jednak zostały podkreślone dwa przypadki, gdzie BLEU sobie poważnie nie poradził. Były to:

  • ewaluacje NIST z 2005 roku[6] gdzie było testowanych kilka różnych systemów tłumaczeń automatycznych - odnotowano, że wyniki wygenerowane przez BLEU zawiodły w porównaniu z oceną ludzką. Systemy, które zostały najlepiej ocenione przez ludzi były na szóstym miejscu wg BLEU.
  • analiza silnika SYSTRAN przeciw dwóm silnikom korzystającym ze statystycznego tłumaczenia automatycznego.[5] - wynik BLEU dla SYSTRANu był znacząco gorszy niż wynik przyznany przez ludzi. Wywnioskowano, że BLEU powinien być wykorzystywany w celu porównania dwóch podobnych systemów.

Zobacz też[edytuj | edytuj kod]

Przypisy

  1. 1,0 1,1 1,2 1,3 1,4 1,5 Papineni, K., et al. (2002)
  2. 2,0 2,1 Coughlin, D. (2003)
  3. Doddington, G. (2002)
  4. Denoual, E. and Lepage, Y. (2005)
  5. 5,0 5,1 Callison-Burch, C., Osborne, M. and Koehn, P. (2006)
  6. Lee, A. and Przybocki, M. (2005)

Bibliografia[edytuj | edytuj kod]