Preparare il testo di output
In questo esercizio preparerai i testi di output da usare nel modello di traduzione. Oltre a trasformare il testo in sequenze di indici, devi anche applicare la one-hot encoding a ogni indice.
I testi in inglese sono caricati nella variabile en_sentences, il tokenizer già addestrato nella variabile output_tokenizer e la dimensione del vocabolario inglese in en_vocab_size.
È già stata creata anche una funzione per eseguire i primi passi di trasformazione della lingua di output (trasformazione dei testi in sequenze di indici). La funzione è caricata nell’ambiente come transform_text_to_sequences() e ha due parametri: sentences, che si aspetta una lista di frasi in inglese, e tokenizer, che si aspetta un oggetto Tokenizer addestrato dal modulo keras.preprocessing.text.
numpy è importato come np.
Questo esercizio fa parte del corso
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras
Istruzioni dell'esercizio
- Passa le variabili
en_sentenceseoutput_tokenizeralla funzionetransform_text_to_sequences()per inizializzare la variabileY. - Usa la funzione
to_categorical()per applicare la one-hot encoding alle frasi. Usa la variabileen_vocab_sizecome numero di classi. - Trasforma la lista temporanea in un array numpy e fai il reshape per ottenere una forma pari a
(num_sentences, sentences_len, en_vocab_size). - Stampa il testo grezzo e quello trasformato.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Initialize the variable
Y = transform_text_to_sequences(____, ____)
# Temporary list
ylist = list()
for sequence in Y:
# One-hot encode sentence and append to list
ylist.append(____(sequence, num_classes=____))
# Update the variable
Y = np.array(ylist).reshape(____, Y.shape[1], en_vocab_size)
# Print the raw sentence and its transformed version
print("Raw sentence: {0}\nTransformed: {1}".format(____, Y[0]))