EmpezarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Usa texts_to_sequences() para convertir el parámetro test_text en 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_word del 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.____[____]
Editar y ejecutar código