Preparación de los datos para el entrenamiento
En este ejercicio, continuarás preparando los datos para entrenar el modelo. Después de crear los arreglos de oraciones y caracteres siguientes, debes transformarlos en valores numéricos que puedan utilizarse en el modelo.
Este paso es necesario porque los modelos RNN solo admiten números, no cadenas de caracteres. Crearás arreglos numéricos que tienen ceros o unos en las posiciones que representan los caracteres presentes en las oraciones. Los unos (o « True ») representan que el carácter correspondiente está presente, mientras que los ceros (o « False ») representan la ausencia del carácter en esa posición de la frase.
Las variables sentences, next_char, n_vocab, chars_window, num_seqs (número de frases en los datos de entrenamiento) ya están cargadas en el entorno, así como numpy como np.
Este ejercicio forma parte del curso
Redes neuronales recurrentes (RNN) para el modelado del lenguaje con Keras
Instrucciones del ejercicio
- Instancia un objeto de tipo «
np.array()» con valores cero y forma «(number of sentences, characters window, vocabulary size)». - Utiliza el diccionario
char_to_indexpara establecer la posición del carácter actual en1. - Establece el siguiente carácter actual en
1. - Imprime la primera posición de cada arreglo.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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")