Préparer les données pour l'entraînement
Dans cet exercice, vous allez poursuivre la préparation des données pour entraîner le modèle. Après avoir créé les tableaux des phrases et des caractères suivants, vous devez les convertir en valeurs numériques utilisables par le modèle.
Cette étape est nécessaire, car les modèles RNN ne prennent que des nombres, pas des chaînes de caractères. Vous allez créer des tableaux numériques contenant des zéros ou des uns aux positions représentant les caractères présents dans les phrases. Les uns (ou True) indiquent que le caractère correspondant est présent, tandis que les zéros (ou False) indiquent son absence à cette position dans la phrase.
Les variables sentences, next_char, n_vocab, chars_window, num_seqs (nombre de phrases dans les données d'entraînement) sont déjà chargées dans l'environnement, de même que numpy sous le nom np.
Cette activité fait partie du cours
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras
Instructions de l’exercice
- Instanciez un
np.array()rempli de zéros et de forme(nombre de phrases, fenêtre de caractères, taille du vocabulaire). - Utilisez le dictionnaire
char_to_indexpour positionner le caractère courant à1. - Placez le prochain caractère courant à
1. - Affichez la première position de chaque tableau.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Instantiate the variables with zeros
numerical_sentences = np.zeros((____, ____, ____), dtype=np.bool)
numerical_next_chars = np.zeros((num_seqs, n_vocab), dtype=np.bool)
# Loop for every sentence
for i, sentence in enumerate(sentences):
# Loop for every character in sentence
for t, char in enumerate(sentence):
# Set position of the character to 1
numerical_sentences[i, t, ____] = ____
# Set next character to 1
____[i, char_to_index[next_chars[i]]] = 1
# Print the first position of each
print(____, ____, sep="\n")