BLEU scores with Argos Translate

BLEU (bilingual evaluation understudy) is an algorithm for evaluating the quality of text which has been machine-translated from one natural language to another. Quality is considered to be the correspondence between a machine’s output and that of a human: “the closer a machine translation is to a professional human translation, the better it is” – this is the central idea behind BLEU.[1] BLEU was one of the first metrics to claim a high correlation with human judgements of quality,[2][3] and remains one of the most popular automated and inexpensive metrics.

Scores are calculated for individual translated segments—generally sentences—by comparing them with a set of good quality reference translations. Those scores are then averaged over the whole corpus to reach an estimate of the translation’s overall quality. Intelligibility or grammatical correctness are not taken into account.[citation needed]

BLEU’s output is always a number between 0 and 1. This value indicates how similar the candidate text is to the reference texts, with values closer to 1 representing more similar texts. Few human translations will attain a score of 1, since this would indicate that the candidate is identical to one of the reference translations. For this reason, it is not necessary to attain a score of 1. Because there are more opportunities to match, adding additional reference translations will increase the BLEU score.[4] - Wikipedia

Argos Translate now has two [1][2] scripts for calculating BLEU scores using sacrebleu, a popular BLEU implementation. Sacrebleu only supports a handful of languages but it’s results can be easily compared to other translations because it’s widely used.

I haven’t done very much with BLEU scores, instead I’ve tried to use as much high quality data as possible and then manually tested to ensure the model is generating stable plausible translation. However, I think they can be useful for benchmarking and quantitatively comparing different translation models.