Parte 1: Modello di inversione del testo - Encoder
Creare un semplice modello che inverte il testo è un ottimo modo per capire la meccanica dei modelli encoder-decoder e come si collegano tra loro. Ora implementerai la parte di encoder di un modello di inversione del testo.
L’implementazione dell’encoder è suddivisa in due esercizi. In questo esercizio, definirai la funzione di supporto words2onehot(). La funzione words2onehot() deve prendere in input una lista di parole e un dizionario word2index e convertire la lista di parole in un array di vettori one-hot. Il dizionario word2index è disponibile nell’ambiente di lavoro.
Questo esercizio fa parte del corso
Traduzione automatica con Keras
Istruzioni dell'esercizio
- Converti le parole in ID usando il dizionario
word2indexnella funzionewords2onehot() - Converte gli ID delle parole in vettori one-hot di lunghezza
3(usando l’argomentonum_classes) e restituisci l’array risultante. - Chiama la funzione
words2onehot()con le paroleI,likeecatse assegna il risultato aonehot. - Stampa le parole e i rispettivi vettori one-hot usando le funzioni
print()ezip(). La funzionezip()ti permette di iterare su più liste allo stesso tempo.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
import numpy as np
def words2onehot(word_list, word2index):
# Convert words to word IDs
word_ids = [____[w] for w in ____]
# Convert word IDs to onehot vectors and return the onehot array
onehot = ____(____, num_classes=3)
return ____
words = ["I", "like", "cats"]
# Convert words to onehot vectors using words2onehot
onehot = ____(____, ____)
# Print the result as (, ) tuples
print([(w,ohe.tolist()) for ____,____ in zip(words, ____)])