2.ª parte: Búsqueda del tesoro
Ahora hay un pequeño giro en la búsqueda del tesoro. Has olvidado llevar tu ordenador portátil y solo tienes un dispositivo con memoria limitada. El código que escribas debe tener menos de 4 líneas (sin incluir comentarios). Dado que necesitas que el código sea lo más compacto posible, utilizarás la comprensión de listas.
La comprensión de listas es una forma estupenda de recorrer datos con una sola línea de código. Por ejemplo, si deseas obtener todos los números pares de una lista de números, puedes hacer lo siguiente: [n for n in range(100) if n%2==0]
. Como puedes ver, la comprensión de listas te permite combinar bucles « for
» y sentencias « if
» en una sola línea de código.
Este ejercicio forma parte del curso
Traducción automática con Keras
Instrucciones del ejercicio
- Obtener los ID de palabra para los vectores codificados como onehot en
treasure_map
. - Obtén el tamaño del lote (la primera dimensión) del mapa del tesoro y utilízalo para crear un bucle for.
- Obtén las palabras de la frase i-ésima iterando la fila i-ésima de
word_ids
e ignorando los ID de palabras iguales a cero.
Ejercicio interactivo práctico
Prueba este ejercicio completando el código de muestra.
# Get the word IDs from the treasure map
word_ids = np.argmax(____, axis=-1)
# Get the batch size from the treasure map
for i in range(treasure_map.shape[____]):
# Get all the words of the i-th sentence using list comprehension
words = [index2word[____] for wid in word_ids[____] if wid != ____]
print("Instruction ", i+1, ": ", ' '.join(words))