ComenzarEmpieza gratis

Preprocesamiento de datos

Ahora debes procesar los datos para nuestro nuevo modelo, que tiene dos entradas y una sola salida. Las dos entradas son las palabras en inglés codificadas con codificación one-hot y las palabras en francés codificadas con codificación one-hot, excluyendo la última palabra.

El resultado sería las palabras francesas codificadas en one-hot, excluyendo la primera palabra. En otras palabras, en el decodificador, cada palabra francesa introducida tiene una salida, que es la palabra siguiente. Aquí aprenderás cómo implementarlo.

Se te ha proporcionado la función « sents2seqs() », en_text y fr_text.

Este ejercicio forma parte del curso

Traducción automática con Keras

Ver curso

Instrucciones del ejercicio

  • Obtener un lote de entradas del codificador (de i a i+bsize) utilizando la función sents2seqs() (codificadas como onehot e invertidas).
  • Obtenga un lote de entradas y salidas del decodificador (de i a i+bsize) utilizando la función sents2seqs() (codificación onehot).
  • Separa las entradas del decodificador (todas las palabras francesas excepto la última) de de_xy dividiendo en la dimensión temporal.
  • Separa las salidas del decodificador (todas las palabras en francés excepto la primera) de de_xy.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

bsize = 250
for i in range(0, len(en_text), bsize):
  # Get the encoder inputs using the sents2seqs() function
  en_x = ____('source', ____[____:____], onehot=True, reverse=____)
  # Get the decoder inputs/outputs using the sents2seqs() function
  de_xy = sents2seqs('target', ____[____:____], onehot=True)
  # Separate the decoder inputs from de_xy
  de_x = de_xy[:,____,:]
  # Separate the decoder outputs from de_xy
  de_y = de_xy[:,____,:]
  
  print("Data from ", i, " to ", i+bsize)
  print("\tnp.argmax() => en_x[0]: ", np.argmax(en_x[0], axis=-1))
  print("\tnp.argmax() => de_x[0]: ", np.argmax(de_x[0], axis=-1))
  print("\tnp.argmax() => de_y[0]: ", np.argmax(de_y[0], axis=-1))
Editar y ejecutar código