Comment calculer le score BLEU en Python ?

Photo of author

By pierre



Le score BLEU, ou « Bilingual Evaluation Understudy », est un outil fondamental pour évaluer l’efficacité des systèmes de traduction automatique. Il compare une traduction produite par une machine avec une ou plusieurs traductions humaines de référence afin de quantifier la qualité de la traduction. Le score BLEU se situe entre 0 et 1, où 1 indique une correspondance parfaite avec la traduction de référence.

Introduction au concept de score BLEU

L’évaluation via le score BLEU repose sur l’analyse des n-grammes (séquences de n mots consécutifs) présents dans la traduction automatique par rapport à ceux des traductions de référence. Un score plus élevé est généralement synonyme d’une meilleure qualité de traduction, suggérant une similarité accrue avec les traductions de référence considérées comme idéales.

Le calcul du score BLEU s’effectue selon la formule suivante :


BLEU = exp(BP * somme(pn * log(pn/rn)))

Où :

  • BP, ou « brevity penalty », est un facteur de pénalisation pour les traductions trop courtes.
  • pn représente la précision des n-grammes de taille n.
  • rn correspond à la fréquence des n-grammes dans la traduction de référence.

Ce score est largement employé dans divers domaines tels que la traduction automatique, la génération de texte, et l’évaluation des systèmes de traitement automatique du langage naturel (TALN).

Implémentation du score BLEU en Python

Pour faciliter le calcul du score BLEU, plusieurs bibliothèques Python sont disponibles. Les plus couramment utilisées sont :

  • NLTK (Natural Language Toolkit) : Cette bibliothèque offre de nombreuses fonctions pour le traitement du langage naturel, y compris une fonction pour calculer le score BLEU.
  • SacreBLEU : Spécialement conçue pour le calcul du score BLEU, elle propose une interface simple d’utilisation et des performances optimisées.

Calcul du score BLEU avec NLTK

Voici un exemple illustrant l’utilisation de NLTK pour le calcul du score BLEU :

python
from nltk.translate.bleu_score import sentence_bleu

reference = [['Ceci', 'est', 'une', 'phrase', 'test'], ['Ceci', 'est', 'une', 'phrase', 'exemple']]
candidate = ['Ceci', 'est', 'une', 'phrase', 'test']

score = sentence_bleu(reference, candidate)
print(f"Score BLEU: {score}")

Dans cet exemple, reference contient une liste de listes, chacune représentant une traduction de référence, et candidate contient la traduction à évaluer. La fonction sentence_bleu() calcule le score BLEU pour la phrase candidate comparée aux références.

Calcul du score BLEU avec SacreBLEU

L’exemple suivant montre comment calculer le score BLEU en utilisant la bibliothèque SacreBLEU :

python
from sacrebleu import corpus_bleu

reference = [["Ceci est une phrase test.", "Ceci est une phrase exemple."]]
candidate = ["Ceci est une phrase test."]

score = corpus_bleu(candidate, reference)
print(f"Score BLEU: {score}")

Ici, reference est une liste de listes de traductions de référence, et candidate est une liste contenant la traduction automatique. La fonction corpus_bleu() calcule le score BLEU pour l’ensemble du corpus de traductions candidates.

Interprétation du score BLEU

Le score BLEU est un indicateur précieux pour mesurer la qualité des traductions automatiques, mais il est important de connaître ses limites. Il évalue la similitude de la traduction machine avec les traductions de référence, principalement en termes de présence et fréquence des n-grammes. Cependant, il ne prend pas en compte des aspects tels que la fluidité, la cohérence ou le sens global de la traduction.

Pour obtenir une évaluation complète, il est donc crucial de combiner le score BLEU avec d’autres méthodes d’évaluation, notamment des évaluations humaines qui peuvent évaluer la qualité globale de la traduction.

En conclusion

Le score BLEU est un outil essentiel pour évaluer la qualité de la traduction automatique. Il fournit une mesure objective de la similitude entre une traduction machine et les traductions de référence. Bien qu’il ait ses limitations, le score BLEU reste une référence dans le domaine de la traduction automatique et un outil fondamental pour les chercheurs et les développeurs.

Questions fréquentes

1. Qu’est-ce que le score BLEU ?

Le score BLEU est une mesure standard utilisée pour évaluer la qualité des traductions automatiques. Il compare une traduction automatique avec des traductions humaines de référence.

2. Comment le score BLEU est-il calculé ?

Le score BLEU est déterminé en analysant la présence et la fréquence des séquences de n mots (n-grammes) dans la traduction automatique par rapport aux traductions de référence.

3. Quelles sont les limitations du score BLEU ?

Le score BLEU ne prend pas en compte des éléments importants comme la fluidité, la cohérence globale ou le sens profond de la traduction. Il se concentre principalement sur la correspondance des n-grammes.

4. Quelles bibliothèques Python peuvent être utilisées pour calculer le score BLEU ?

Les bibliothèques Python populaires pour le calcul du score BLEU sont NLTK et SacreBLEU.

5. Quel est le score BLEU idéal ?

Un score BLEU de 1 indique une correspondance parfaite avec la traduction de référence, mais un score élevé ne garantit pas nécessairement une traduction de qualité parfaite.

6. Comment interpréter le score BLEU ?

En général, un score BLEU plus élevé indique une meilleure qualité de traduction. Cependant, il est conseillé de l’utiliser avec d’autres méthodes d’évaluation pour une vue d’ensemble complète.

7. Le score BLEU est-il adapté à tous les types de traductions ?

Le score BLEU est principalement conçu pour évaluer les traductions de texte. Il peut ne pas être approprié pour d’autres formes de traductions, comme celles de code ou de logiciels.

8. Quels sont les autres indicateurs d’évaluation de la traduction automatique ?

D’autres indicateurs incluent le score METEOR, ROUGE, et RIBES, qui proposent différentes perspectives d’évaluation.

9. Comment améliorer le score BLEU de ma traduction automatique ?

Pour améliorer le score BLEU, il est possible d’optimiser les données d’entraînement, utiliser des modèles de traduction plus performants ou ajuster les paramètres du modèle.

10. Où trouver plus d’informations sur le score BLEU ?

Des informations détaillées sont disponibles dans les documentations de NLTK et SacreBLEU, ainsi que dans des articles scientifiques (Consultez cet exemple).

Mots-clés : traduction automatique, évaluation, score BLEU, Python, NLTK, SacreBLEU, linguistique computationnelle, traitement du langage naturel, NLP, apprentissage automatique, apprentissage profond.