CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Utilisez texts_to_sequences() pour transformer le paramètre test_text en 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_word du 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.____[____]
Modifier et exécuter le code