Génération de traductions anglais-français
Saviez-vous que la banque HSBC a dépensé $10 s de dollars pour changer son slogan à cause d'une erreur de traduction ?
Nous utiliserons le modèle formé pour prédire la traduction française d'une phrase anglaise à l'aide de model.predict()
. Le modèle formé vous sera fourni (model
). Ce modèle a été entraîné pendant 50 époques sur 100 000 phrases, ce qui lui a permis d'atteindre une précision d'environ 90 % sur un ensemble de validation de plus de 35 000 mots. Le chargement de cet exercice peut prendre plus de temps, car le modèle formé est chargé avant l'exercice. De plus, vous disposerez également d'un dictionnaire (fr_id2word
) que vous pourrez utiliser pour convertir les indices de mots en mots. Enfin, vous utiliserez la fonction d'sents2seqs
que vous avez implémentée précédemment pour pré-traiter les données avant de les transmettre au modèle.
Vous pouvez utiliser help(sents2seqs)
pour vous rappeler ce qui est accepté par la fonction sents2seqs()
.
Cet exercice fait partie du cours
Traduction automatique avec Keras
Instructions
- Pré-traitez l'
en_st
source afin qu'elle soit convertie en un tableau d'numpy
s codées en onehot à l'aide de la fonctionsents2seqs
précédemment définie. - Veuillez prédire la sortie pour
en_seq
à l'aide du modèle d'model
entraîné fourni. - Extrayez l'index maximal pour chaque prédiction de
fr_pred
à l'aide denp.argmax
et attribuez-le àfr_seq
. - Convertissez les identifiants de séquence français en une phrase à l'aide d'une compréhension de liste (n'oubliez pas d'ignorer les 0) et attribuez-la à
fr_sent
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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")