Partea 2: Vânătoarea de comori
Acum intervine o mică complicație în vânătoarea de comori. Ai uitat laptopul acasă și ai la tine doar un dispozitiv cu memorie limitată. Codul pe care îl scrii trebuie să aibă mai puțin de 4 linii (fără a număra comentariile). Deoarece trebuie să faci codul cât mai compact posibil, vei folosi list comprehension.
List comprehension este o metodă excelentă de a parcurge date cu o singură linie de cod. De exemplu, dacă vrei să obții toate numerele pare dintr-o listă, poți scrie [n for n in range(100) if n%2==0]. Astfel, list comprehension îți permite să combini buclele for și instrucțiunile if într-o singură linie de cod.
Acest exercițiu face parte din cursul
Traducere automată cu Keras
Instrucțiuni pentru exercițiu
- Obține ID-urile cuvintelor pentru vectorii codați one-hot din
treasure_map. - Obține dimensiunea lotului (prima dimensiune) a hărții de comori și folosește-o pentru a crea o buclă
for. - Obține cuvintele propoziției cu indexul i iterând rândul i din
word_ids, ignorând ID-urile de cuvinte egale cu zero.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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))