Préparer les données pour l’entraînement
Dans cet exercice, vous allez continuer à préparer les données pour entraîner le modèle. Après avoir créé les tableaux de phrases et de caractères suivants, vous devez les transformer en valeurs numériques utilisables par le modèle.
Cette étape est nécessaire, car les modèles RNN n’acceptent que des nombres et non 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 de 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, ainsi que numpy sous le nom np.
Cet exercice fait partie du cours
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras
Instructions
- Instanciez un
np.array()rempli de zéros avec la forme(nombre de phrases, fenêtre de caractères, taille du vocabulaire). - Utilisez le dictionnaire
char_to_indexpour positionner le caractère courant à1. - Positionnez le caractère suivant courant à
1. - Affichez la première position de chaque tableau.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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")