Parte 2: Caccia al tesoro
Ora c'è una piccola variazione nella caccia al tesoro. Hai dimenticato il laptop e hai con te solo un dispositivo con memoria limitata. Il codice che scrivi deve essere lungo meno di 4 righe (escluse le righe di commento). Dato che devi rendere il codice il più compatto possibile, userai le list comprehension.
Le list comprehension sono un ottimo modo per ciclare sui dati con una sola riga di codice. Ad esempio, se vuoi ottenere tutti i numeri pari da una lista di numeri, puoi usare [n for n in range(100) if n%2==0]. Come vedi, le list comprehension ti permettono di combinare cicli for e istruzioni if in una singola riga di codice.
Questo esercizio fa parte del corso
Traduzione automatica con Keras
Istruzioni dell'esercizio
- Ottieni gli ID delle parole per i vettori one-hot in
treasure_map. - Ottieni la dimensione del batch (la primissima dimensione) della mappa del tesoro e usala per creare un ciclo for.
- Ottieni le parole della i-esima frase iterando la i-esima riga di
word_idsignorando gli ID parola uguali a zero.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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))