Část 1: Lov pokladů
Nedávno ses vyhrál/a zájezd na bujný tropický ostrov se vším v ceně. Při toulání po ostrově jsi narazil/a na starou mapu pokladu ukazující k velkému bohatství – a na ní bylo několik tajných zpráv zapsaných pomocí jedniček a nul. Díky tomuto kurzu okamžitě poznáš, že jde o sekvenci onehot zakódovaných vektorů. Navíc jsi měl/a štěstí a našel/našla jsi také mapování slov na indexy, takže víš, které slovo odpovídá kterému ID.
Teď musíš tajnou zprávu rozluštit a zjistit, co mapa říká. Máš k dispozici treasure_map – matici ve formátu počet vět × počet slov × délka onehot vektoru. K dispozici máš také Python slovník index2word, který mapuje ID na slova.
Toto cvičení je součástí kurzu
Machine Translation with Keras
Pokyny k cvičení
- Získej word ID pro onehot zakódované vektory v
treasure_map(dimenze onehot vektoru je poslední dimenzí). - Získej délku sekvence (tj. počet časových kroků) z
treasure_mapa přiřaď ji do proměnnéseq_len. - Získej word ID v
i-tévětě nat-tépozici. - Přidej do seznamu
wordsslovo typuString(tedy samotné slovo, ne jeho ID) odpovídající hodnotěwid.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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))