Descodifica tus predicciones
Tu LSTM model ya ha sido entrenado (los detalles están en el mensaje de éxito del ejercicio anterior), así que no tienes que esperar. Es hora de definir una función que descodifique sus predicciones. El model entrenado se pasará como parámetro por defecto a esta función.
Como estás prediciendo con un modelo que usa la función softmax, puedes usar argmax() de numpy para obtener el índice/posición de la palabra siguiente más probable a partir del vector de probabilidades de salida.
El tokenizer que creaste y ajustaste previamente ya está cargado. Vas a usar su diccionario interno index_word para convertir la predicción de la siguiente palabra del model (que es un entero) en la palabra escrita que representa.
¡Ya casi puedes empezar a experimentar con tu modelo!
Este ejercicio forma parte del curso
Introducción al Deep Learning con Keras
Instrucciones del ejercicio
- Usa
texts_to_sequences()para convertir el parámetrotest_texten una secuencia de números. - Obtén la predicción de la siguiente palabra del modelo pasando
test_seq. El índice/posición de la palabra con mayor probabilidad se obtiene llamando a.argmax(axis=1)[0]sobre el array de predicciones de numpy. - Devuelve la palabra que corresponde a la predicción usando el diccionario
index_worddel tokenizer.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
def predict_text(test_text, model = model):
if len(test_text.split()) != 3:
print('Text input should be 3 words!')
return False
# Turn the test_text into a sequence of numbers
test_seq = tokenizer.texts_to_sequences([____])
test_seq = np.array(test_seq)
# Use the model passed as a parameter to predict the next word
pred = ____.predict(____).argmax(axis = 1)[0]
# Return the word that maps to the prediction
return tokenizer.____[____]