Décoder vos prédictions
Votre LSTM model a déjà été entraîné (les détails figurent dans le message de réussite de l'exercice précédent), pour que vous n'ayez pas à attendre. Il est temps de définir une fonction qui décode ses prédictions. Le model entraîné sera transmis comme paramètre par défaut à cette fonction.
Comme vous effectuez des prédictions avec un modèle qui utilise la fonction softmax, la fonction argmax() de numpy peut servir à obtenir l'indice/la position du mot suivant le plus probable à partir du vecteur de probabilités en sortie.
Le tokenizer que vous avez créé et ajusté précédemment est déjà chargé pour vous. Vous utiliserez son dictionnaire interne index_word pour convertir la prédiction du mot suivant du model (un entier) en le mot écrit qu'elle représente.
Vous êtes tout près d'expérimenter avec votre modèle!
Cette activité fait partie du cours
Introduction à Deep Learning avec Keras
Instructions de l’exercice
- Utilisez
texts_to_sequences()pour transformer le paramètretest_texten séquence de nombres. - Obtenez la prédiction du mot suivant du modèle en passant
test_seq. L'indice/la position du mot ayant la probabilité la plus élevée s'obtient en appelant.argmax(axis=1)[0]sur le tableau numpy des prédictions. - Retournez le mot correspondant à la prédiction en utilisant le dictionnaire
index_worddu tokenizer.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
def predict_text(test_text, model = model):
if len(test_text.split()) != 3:
print('Text input should be 3 words!')
return False
# Turn the test_text into a sequence of numbers
test_seq = tokenizer.texts_to_sequences([____])
test_seq = np.array(test_seq)
# Use the model passed as a parameter to predict the next word
pred = ____.predict(____).argmax(axis = 1)[0]
# Return the word that maps to the prediction
return tokenizer.____[____]