TorchedUp
ProblemsPremium
TorchedUp
BLEU ScoreMedium
ProblemsPremium

BLEU Score

Implement single-reference BLEU with a brevity penalty.

Signature: def bleu(reference: list, candidate: list, max_n: int = 4) -> float

Tokens are pre-split lists. For each n in 1..max_n:

  • Compute clipped n-gram precision: sum(min(cand_count, ref_count)) / total_cand_ngrams

Then:

  • Geometric mean of precisions
  • Brevity penalty: min(1, exp(1 - len(ref) / len(cand))) if len(cand) < len(ref) else 1
  • Return BP * geo_mean

Return 0.0 for empty inputs or any zero-precision n-gram order.

Math

Asked at

Python (numpy)0/3 runs today

Test Results

○exact match
○partial overlap, no 4-gram
○brevity penalty applies🔒 Premium
Advertisement