Décoder vos prédictions
Votre LSTM model a déjà été entraîné (voir les détails dans le message de réussite de l’exercice précédent), pour vous éviter d’attendre. Il est temps de définir une fonction qui décode ses prédictions. Le model entraîné sera passé comme paramètre par défaut à cette fonction.
Comme vous prédisez avec un modèle qui utilise la fonction softmax, la fonction argmax() de NumPy peut être utilisée pour obtenir l’indice/la position du mot suivant le plus probable à partir du vecteur de probabilités en sortie.
Le tokenizer que vous avez précédemment créé et ajusté est 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 proche de pouvoir expérimenter avec votre modèle !
Cet exercice fait partie du cours
Introduction au Deep Learning avec Keras
Instructions
- Utilisez
texts_to_sequences()pour transformer le paramètretest_texten une séquence de nombres. - Obtenez la prédiction du mot suivant du modèle en passant
test_seq. L’indice/la position correspondant au mot ayant la probabilité la plus élevée s’obtient en appelant.argmax(axis=1)[0]sur le tableau NumPy de 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 cet exemple de code.
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.____[____]