Prédire le caractère suivant
Dans cet exercice, vous allez coder la fonction qui prédit le caractère suivant à partir d’un modèle entraîné. Vous utiliserez les 20 derniers caractères pour prédire le prochain. Vous verrez comment entraîner le modèle dans la leçon suivante, car cette étape est indispensable avant l’entraînement du modèle.
C’est l’étape initiale pour établir des règles de génération de phrases, de paragraphes, de courts textes ou d’autres blocs de texte selon les besoins.
Les variables n_vocab, chars_window et le dictionnaire index_to_char sont déjà chargés dans l’environnement. De plus, les fonctions ci-dessous sont déjà créées pour vous :
initialize_X(): transforme le texte d’entrée en une séquence d’indices avec la forme adéquate.predict_next_char(): obtient le caractère suivant en utilisant la méthode.predict()de la classe du modèle et le dictionnaireindex_to_char.
Cet exercice fait partie du cours
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras
Instructions
- Définissez la fonction
get_next_char()et ajoutez les paramètresinitial_textetchars_windowsans valeurs par défaut. - Utilisez la fonction
initialize_X()et transmettez la variablechar_to_indexpour obtenir un vecteur de zéros à utiliser pour la prédiction. - Utilisez la fonction
predict_next_char()pour obtenir la prédiction et stockez-la dans la variablenext_char. - Affichez le caractère prédit en appliquant la fonction définie au
initial_textfourni.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
def ____(model, ____, ____, char_to_index, index_to_char):
# Initialize the X vector with zeros
X = ____(initial_text, chars_window, ____)
# Get next character using the model
____ = predict_next_char(model, X, ____)
return next_char
# Define context sentence and print the generated text
initial_text = "I am not insane, "
print("Next character: {0}".format(____(model, ____, 20, char_to_index, index_to_char)))