Inizia subitoInizia gratis

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

Visualizza corso

Istruzioni dell'esercizio

  • Passa le variabili en_sentences e output_tokenizer alla funzione transform_text_to_sequences() per inizializzare la variabile Y.
  • Usa la funzione to_categorical() per applicare la one-hot encoding alle frasi. Usa la variabile en_vocab_size come 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]))
Modifica ed esegui il codice