Preparare i dati di testo per l'input del modello
In precedenza, hai imparato a creare dizionari di indici-parole e viceversa. In questo esercizio, dividerai il testo in caratteri e continuerai a preparare i dati per l'apprendimento supervisionato.
Suddividere i testi in caratteri può sembrare strano, ma è spesso usato per la generazione di testo. Inoltre, il processo di preparazione dei dati è lo stesso: cambia solo il modo in cui suddividi i testi.
Creerai i dati di addestramento contenenti un elenco di testi a lunghezza fissa e le loro etichette, che sono i caratteri successivi corrispondenti.
Continuerai a usare l'insieme di dati con le citazioni di Sheldon (The Big Bang Theory), disponibile nella variabile sheldon_quotes.
La funzione print_examples() stampa le coppie, così puoi vedere come sono stati trasformati i dati. Usa help() per i dettagli.
Questo esercizio fa parte del corso
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras
Istruzioni dell'esercizio
- Definisci
stepuguale a2echars_windowuguale a10. - Aggiungi la frase successiva alla variabile
sentences. - Aggiungi la posizione corretta del testo
sheldonalla variabilenext_chars. - Usa la funzione
print_examples()per stampare10frasi e i caratteri successivi.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Create lists to keep the sentences and the next character
sentences = [] # ~ Training data
next_chars = [] # ~ Training labels
# Define hyperparameters
step = ____ # ~ Step to take when reading the texts in characters
chars_window = ____ # ~ Number of characters to use to predict the next one
# Loop over the text: length `chars_window` per time with step equal to `step`
for i in range(0, len(sheldon_quotes) - chars_window, step):
sentences.____(sheldon_quotes[i:i + chars_window])
next_chars.append(sheldon_quotes[____])
# Print 10 pairs
print_examples(____, ____, 10)