Preprocesamiento con Keras
El segundo módulo más importante de Keras es keras.preprocessing. Verás cómo utilizar los módulos y funciones más importantes para preparar los datos sin procesar y darles la forma correcta para su introducción. Keras proporciona funcionalidades que sustituyen el enfoque del diccionario que aprendiste anteriormente.
Utilizarás el módulo keras.preprocessing.text.Tokenizer para crear un diccionario de palabras utilizando el método .fit_on_texts() y cambiarás los textos a identificadores numéricos que representan el índice de cada palabra en el diccionario utilizando el método .texts_to_sequences().
A continuación, utiliza la función « .pad_sequences() » (Reducir secuencias de caracteres) de keras.preprocessing.sequence para que todas las secuencias tengan el mismo tamaño (necesario para el modelo) añadiendo ceros en los textos pequeños y recortando los grandes.
Este ejercicio forma parte del curso
Redes neuronales recurrentes (RNN) para el modelado del lenguaje con Keras
Instrucciones del ejercicio
- Importa
Tokenizerypad_sequencesdesde los módulos pertinentes. - Ajusta el objeto «
tokenizer» a los datos de muestra almacenados entexts. - Transforma los textos en secuencias de índices numéricos utilizando el método
.texts_to_sequences(). - Fija el tamaño de los textos rellenándolos.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Import relevant classes/functions
from tensorflow.keras.preprocessing.text import ____
from tensorflow.keras.preprocessing.sequence import ____
# Build the dictionary of indexes
tokenizer = Tokenizer()
tokenizer.fit_on_texts(____)
# Change texts into sequence of indexes
texts_numeric = tokenizer.____(texts)
print("Number of words in the sample texts: ({0}, {1})".format(len(texts_numeric[0]), len(texts_numeric[1])))
# Pad the sequences
texts_pad = ____(texts_numeric, 60)
print("Now the texts have fixed length: 60. Let's see the first one: \n{0}".format(texts_pad[0]))