Prétraitement avec Keras
Le deuxième module le plus important de Keras est keras.preprocessing. Vous allez voir comment utiliser les modules et fonctions essentiels pour transformer des données brutes dans la forme d’entrée attendue. Keras propose des fonctionnalités qui remplacent l’approche par dictionnaire que vous avez vue précédemment.
Vous utiliserez le module keras.preprocessing.text.Tokenizer pour créer un dictionnaire de mots avec la méthode .fit_on_texts() et convertir les textes en identifiants numériques représentant l’index de chaque mot dans le dictionnaire grâce à la méthode .texts_to_sequences().
Ensuite, utilisez la fonction .pad_sequences() depuis keras.preprocessing.sequence pour que toutes les séquences aient la même taille (nécessaire pour le modèle) en ajoutant des zéros aux textes courts et en tronquant les plus longs.
Cet exercice fait partie du cours
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras
Instructions
- Importez
Tokenizeretpad_sequencesdepuis les modules correspondants. - Ajustez l’objet
tokenizersur l’échantillon de données stocké danstexts. - Transformez les textes en séquences d’index numériques avec la méthode
.texts_to_sequences(). - Harmonisez la longueur des textes en les complétant (padding).
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import relevant classes/functions
from tensorflow.keras.preprocessing.text import ____
from tensorflow.keras.preprocessing.sequence import ____
# Build the dictionary of indexes
tokenizer = Tokenizer()
tokenizer.fit_on_texts(____)
# Change texts into sequence of indexes
texts_numeric = tokenizer.____(texts)
print("Number of words in the sample texts: ({0}, {1})".format(len(texts_numeric[0]), len(texts_numeric[1])))
# Pad the sequences
texts_pad = ____(texts_numeric, 60)
print("Now the texts have fixed length: 60. Let's see the first one: \n{0}".format(texts_pad[0]))