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
Instructions de l’exercice
- Prétraitez la source
en_stafin de la convertir en un tableaunumpyonehot à l'aide de la fonctionsents2seqsdéfinie précédemment. - Prédisez la sortie pour
en_seqen utilisant lemodelentraîné fourni. - Extrayez l'indice maximal pour chaque prédiction de
fr_predavecnp.argmaxet 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")