CommencezCommencez gratuitement

Générer des traductions anglais–français

Saviez-vous que la banque HSBC a déjà dépensé 10 millions de dollars pour revoir son slogan, à cause d'une erreur de traduction?

Nous allons utiliser le modèle entraîné pour prédire la traduction française d'une phrase anglaise avec model.predict(). On vous fournit le modèle entraîné (model). Ce modèle a été entraîné pendant 50 époques sur 100 000 phrases et a atteint environ 90 % de précision sur un ensemble de validation de plus de 35 000 mots. Le chargement de cet exercice pourrait être plus long, car le modèle entraîné est chargé avant le démarrage. De plus, on vous fournira un dictionnaire (fr_id2word) que vous pouvez utiliser pour convertir des indices de mots en mots. Enfin, vous utiliserez la fonction sents2seqs que vous avez implémentée plus tôt pour prétraiter les données avant de les transmettre au modèle.

Vous pouvez utiliser help(sents2seqs) pour vous rappeler ce que la fonction sents2seqs() accepte en entrée.

Cette activité fait partie du cours

Traduction automatique avec Keras

Voir le cours

Instructions de l’exercice

  • Prétraitez la source en_st afin de la convertir en un tableau numpy onehot à l'aide de la fonction sents2seqs définie précédemment.
  • Prédisez la sortie pour en_seq en utilisant le model entraîné fourni.
  • Extrayez l'indice maximal pour chaque prédiction de fr_pred avec np.argmax et assignez-le à fr_seq.
  • Convertissez les identifiants de la séquence française en une phrase au moyen d'une compréhension de liste (n'oubliez pas d'ignorer les 0) et assignez-la à fr_sent.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

en_st = ['the united states is sometimes chilly during december , but it is sometimes freezing in june .']
print('English: {}'.format(en_st))

# Convert the English sentence to a sequence
en_seq = ____(____, en_st, ____=True, reverse=____)

# Predict probabilities of words using en_seq
fr_pred = ____.____(en_seq)

# Get the sequence indices (max argument) of fr_pred
fr_seq = ____.____(fr_pred, axis=____)[0]

# Convert the sequence of IDs to a sentence and print
fr_sent = [____[i] for i in ____ if i != ____]
print("French (Custom): {}".format(' '.join(fr_sent)))
print("French (Google Translate): les etats-unis sont parfois froids en décembre, mais parfois gelés en juin")
Modifier et exécuter le code