Partea 1: Vânătoarea de comori
Ai câștigat recent o călătorie plătită integral pe o insulă tropicală luxuriantă. În timp ce explorai insula, ai găsit o hartă antică a unei comori care indica un tezaur prețios – cu câteva mesaje secrete scrise folosind 1 și 0. Datorită acestui curs, recunoști imediat că este o secvență de vectori codificați onehot. Ai avut și norocul să găsești maparea de la cuvânt la index, ca să știi ce ID corespunde fiecărui cuvânt.
Acum trebuie să decriptezi mesajul secret și să afli ce spune această hartă. Ți-a fost furnizat treasure_map – o matrice de dimensiune număr de propoziții × număr de cuvinte × lungimea vectorului onehot. Ai la dispoziție și dicționarul Python index2word, care mapează un ID la un cuvânt.
Acest exercițiu face parte din cursul
Traducere automată cu Keras
Instrucțiuni pentru exercițiu
- Obține ID-urile cuvintelor pentru vectorii codificați onehot din
treasure_map(dimensiunea vectorului onehot este ultima dimensiune). - Obține lungimea secvenței (adică numărul de pași de timp) din
treasure_mapși atribuie-o luiseq_len. - Obține ID-ul cuvântului din propoziția
ila pozițiat. - Adaugă cuvântul de tip
String(adică nu ID-ul cuvântului) corespunzător luiwidla listawords.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))