Parte 2: Caça ao tesouro
Agora tem uma pequena mudança na caça ao tesouro. Você esqueceu de levar seu laptop e só tem um aparelho com pouca memória. O código que você escrever deve ter menos de 4 linhas (sem contar os comentários). Como você precisa deixar o código o mais compacto possível, vai usar compreensão de lista.
A compreensão de listas é uma ótima maneira de percorrer dados com uma única linha de código. Por exemplo, se você quer pegar todos os números pares de uma lista de números, você pode fazer assim: [n for n in range(100) if n%2==0]
. for
Como você pode ver, a compreensão de listas permite combinar loops de e e instruções de if
em uma única linha de código.
Este exercício faz parte do curso
Tradução automática com Keras
Instruções do exercício
- Pega os IDs das palavras para os vetores codificados como onehot no arquivo
treasure_map
. - Pega o tamanho do lote (a primeira dimensão) do mapa do tesouro e usa isso pra criar um loop for.
- Pega as palavras da i-ésima frase repetindo a i-ésima linha do
word_ids
e ignorando os 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))