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 aussi appliquer un codage 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 pour réaliser les premières étapes de transformation de la langue de sortie (transformation des textes en séquences d'index) est déjà créée. La fonction est chargée 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 entraîné du module keras.preprocessing.text.
numpy est chargé sous le nom np.
Cette activité fait partie du cours
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras
Instructions de l’exercice
- Passez les variables
en_sentencesetoutput_tokenizerà la fonctiontransform_text_to_sequences()pour initialiser la variableY. - Utilisez la fonction
to_categorical()pour appliquer un codage one-hot aux phrases. Utilisez la variableen_vocab_sizecomme nombre de classes. - Transformez la liste temporaire en tableau numpy et redimensionnez-la pour obtenir une forme égale à
(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 ce code d’exemple.
# 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]))