Parte 1: Caça ao tesouro
Você ganhou recentemente uma viagem com tudo pago para uma ilha tropical exuberante. Enquanto explorava, encontrou um mapa do tesouro antigo apontando para uma grande fortuna, com algumas mensagens secretas escritas usando 1s e 0s. Como você acabou de fazer este curso, percebe na hora que se trata de uma sequência de vetores onehot codificados. Você também teve a sorte de encontrar o mapeamento de palavras para índices para saber qual palavra corresponde a qual ID.
Agora você precisa decifrar a mensagem secreta e descobrir o que este mapa está dizendo. Foi fornecido a você um treasure_map, que é uma matriz de número de frases por número de palavras por comprimento do vetor onehot. Também foi fornecido o dicionário Python index2word que mapeia um ID para uma palavra.
Este exercício faz parte do curso
Machine Translation with Keras
Instruções do exercício
- Obtenha os IDs das palavras para os vetores onehot codificados no
treasure_map(a dimensão do vetor onehot é a última dimensão). - Obtenha o comprimento da sequência (isto é, o número de passos de tempo) a partir de
treasure_mape atribua aseq_len. - Obtenha o ID da palavra na
i-ésimafrase na posiçãot-ésima. - Acrescente à lista
wordsaStringda palavra (isto é, não o ID da palavra) correspondente awid.
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 = ____.____(____, axis=____)
# Get the sequence length from the treasure map
seq_len = treasure_map.shape[____]
for i in range(treasure_map.shape[0]):
words = []
for t in range(seq_len):
# Get the word ID for the i-th sentence and t-th position
wid = word_ids[i, ____]
if wid != 0:
# Append the word corresponding to wid
words.append(____[____])
print("Instruction ", i+1, ": ", ' '.join(words))