Préparer le texte de sortie
Dans cet exercice, vous allez préparer les textes de sortie à utiliser dans le modèle de traduction. En plus de transformer le texte en séquences d’index, vous devez également appliquer un encodage one-hot à chaque index.
Les textes anglais sont chargés dans la variable en_sentences, le tokenizer entraîné dans la variable output_tokenizer et la taille du vocabulaire anglais dans en_vocab_size.
De plus, une fonction qui réalise les premières étapes de transformation de la langue cible (transformation des textes en séquences d’index) est déjà créée. La fonction est disponible dans l’environnement sous le nom transform_text_to_sequences() et possède deux paramètres : sentences, qui attend une liste de phrases en anglais, et tokenizer, qui attend un objet Tokenizer déjà entraîné du module keras.preprocessing.text.
numpy est importé sous le nom np.
Cet exercice fait partie du cours
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras
Instructions
- Passez les variables
en_sentencesetoutput_tokenizerà la fonctiontransform_text_to_sequences()pour initialiser la variableY. - Utilisez la fonction
to_categorical()pour appliquer l’encodage one-hot aux phrases. Utilisez la variableen_vocab_sizecomme nombre de classes. - Transformez la liste temporaire en tableau numpy et redimensionnez-la pour obtenir la forme
(num_sentences, sentences_len, en_vocab_size). - Affichez le texte brut et sa version transformée.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Initialize the variable
Y = transform_text_to_sequences(____, ____)
# Temporary list
ylist = list()
for sequence in Y:
# One-hot encode sentence and append to list
ylist.append(____(sequence, num_classes=____))
# Update the variable
Y = np.array(ylist).reshape(____, Y.shape[1], en_vocab_size)
# Print the raw sentence and its transformed version
print("Raw sentence: {0}\nTransformed: {1}".format(____, Y[0]))