Prédiction de texte avec des LSTM
Dans les prochains exercices, vous allez bâtir un petit modèle LSTM capable de prédire le prochain mot à partir d'un petit jeu de données textuelles.
Ce jeu de données regroupe des répliques nettoyées tirées des films The Lord of the Ring. Vous les trouverez dans la variable text.
Vous convertirez ce text en sequences de longueur 4 et utiliserez le Tokenizer de Keras pour préparer les variables explicatives et les étiquettes de votre modèle!
Le Tokenizer de Keras est déjà importé pour vous. Il attribue un numéro unique à chaque mot unique et conserve les correspondances dans un dictionnaire. C'est essentiel, car le modèle travaille avec des nombres, mais nous voudrons ensuite décoder ces nombres de sortie en mots.
Cette activité fait partie du cours
Introduction à Deep Learning avec Keras
Instructions de l’exercice
- Divisez le texte en un tableau de mots avec
.split(). - Créez des phrases de 4 mots chacune, en vous déplaçant d'un mot à la fois.
- Instanciez un
Tokenizer(), puis ajustez-le sur les phrases avec.fit_on_texts(). - Transformez
sentencesen une séquence de nombres en appelant.texts_to_sequences().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Split text into an array of words
words = ____.____
# Make sentences of 4 words each, moving one word at a time
sentences = []
for i in range(4, len(words)):
sentences.append(' '.join(words[i-____:i]))
# Instantiate a Tokenizer, then fit it on the sentences
tokenizer = ____
tokenizer.____(____)
# Turn sentences into a sequence of numbers
sequences = tokenizer.____(____)
print("Sentences: \n {} \n Sequences: \n {}".format(sentences[:5],sequences[:5]))