Parte 2: Caça ao tesouro
Agora tem uma pequena reviravolta na caça ao tesouro. Você esqueceu de levar o seu laptop e está só com um dispositivo com memória limitada. O código que você escrever deve ter menos de 4 linhas (sem contar comentários). Como você precisa deixar o código o mais compacto possível, vai usar list comprehension.
List comprehension é uma ótima forma de percorrer dados em uma única linha de código. Por exemplo, se você quer obter todos os números pares de uma lista de números, pode usar [n for n in range(100) if n%2==0]. Como você pode ver, list comprehension permite combinar laços for e condicionais if em uma única linha de código.
Este exercício faz parte do curso
Machine Translation with Keras
Instruções do exercício
- Obtenha os IDs de palavras para os vetores one-hot codificados no
treasure_map. - Pegue o tamanho do batch (a primeira dimensão) do mapa do tesouro e use-o para criar um laço for.
- Obtenha as palavras da i-ésima frase iterando a i-ésima linha de
word_idsenquanto ignora IDs de palavras iguais a zero.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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))