Descifra tus predicciones
Tu LSTM model
ya ha sido entrenado (detalles en el mensaje de éxito del ejercicio anterior) para que no tengas que esperar. Es hora de definir una función que descifre sus predicciones. El model
entrenado se pasará como parámetro por defecto a esta función.
Dado que estás prediciendo en un modelo que utiliza la función softmax, se puede utilizar argmax()
de numpy para obtener el índice/posición que representa la siguiente palabra más probable del vector de salida de probabilidades.
La página tokenizer
que previamente ha creado y ajustado, se carga para usted. Utilizará su diccionario interno index_word
para convertir la predicción de la siguiente palabra de model
(que es un número entero) en la palabra escrita que representa.
¡Estás muy cerca de experimentar con tu modelo!
Este ejercicio forma parte del curso
Introducción al aprendizaje profundo con Keras
Instrucciones del ejercicio
- Utilice
texts_to_sequences()
para convertir el parámetrotest_text
en una secuencia de números. - Obtenga la predicción de la siguiente palabra del modelo pasando
test_seq
. El índice/posición que representa la palabra con mayor probabilidad se obtiene llamando a.argmax(axis=1)[0]
en el array numpy de predicciones. - Devuelve la palabra que corresponde a la predicción utilizando el diccionario
index_word
del tokenizador.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
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.____[____]