Skip to content

sacrebleu returning 100 BLEU score for mismatched corpus #281

@Saltychtao

Description

@Saltychtao

Issue Description

I'm encountering an unexpected behavior with the sacrebleu library where, under specific input conditions, corpus_bleu returns a score of 100.0, which seems incorrect given the content of the hypotheses and references. When individually evaluating the sentence BLEU for these pairs, the scores are consistently very low (below 1.0), suggesting a significant mismatch, yet the corpus-level score indicates perfect translation.

import sacrebleu

hyps = ["Il n'a pas chiffré ces réductions, disant qu'elles seront basées sur la production économique chinoise.",
        'Le taux de TB-UR dans le groupe de personnes atteintes de tuberculose semble encore faible\u2009; 6\u2009000 personnes sur un total de 330\u2009000 ont été infectées à un moment donné en Afrique du Sud.',
        "Il n'a pas chiffré ces réductions, disant qu'elles seront basées sur la production économique chinoise."]

refs = [['Les gens apportaient des sacrifices aux dieux et les prêtres essayaient de répondre aux besoins des dieux par le biais de cérémonies et de festivités.'],
        ["Il n'a pas chiffré ces réductions, disant qu'elles seront basées sur la production économique chinoise."],
        ["À l'instar d'autres experts, il se montre sceptique quant à la possibilité de guérir le diabète, faisant remarquer que ces résultats ne sont pas applicables aux personnes qui souffrent déjà de diabète de type 1."]]

print(sacrebleu.corpus_bleu(hyps, refs))

Observed Output:

BLEU = 100.00 100.0/100.0/100.0/100.0 (BP = 1.000 ratio = 1.000 hyp_len = 26 ref_len = 26)

Environment

sacrebleu version: 2.5.1
Python version: 3.9.12

Additional Context

It seems that the high score might be triggered by the second sentence pair, where hyps[0] perfectly matches refs[0][1]. However, this single perfect match should not lead to a 100.0 BLEU score for the entire corpus when other pairs are clearly misaligned. The hyp_len = 26 and ref_len = 26 also seems suspicious for the entire corpus given the varied sentence lengths.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions