Modelli di generazione del testo

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

David Cecchini

Data Scientist

Simile a un modello di classificazione

Il modello di generazione del testo:

  • Usa il vocabolario come classi
  • L’ultimo layer applica una softmax con unità pari alla dimensione del vocabolario
  • Usa categorical_crossentropy come loss
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Esempio di modello con Keras

model = Sequential()

model.add(LSTM(units, input_shape=(chars_window, n_vocab), dropout=0.15, recurrent_dropout=0.15, return_sequences=True))
model.add(LSTM(units, dropout=dropout, recurrent_dropout=0.15, return_sequences=False))
model.add(Dense(n_vocab, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam')
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Ma non è proprio un modello di classificazione

Differenze dalla classificazione:

  • Calcola la loss, ma non metriche di performance (accuracy)
    • Le persone guardano i risultati e valutano le prestazioni.
    • Se non va bene, allena più epoche o aumenta la complessità (più celle di memoria, più layer, ecc.).
  • Usato con regole di generazione in base al task
    • Genera il prossimo char
    • Genera una parola
    • Genera una frase
    • Genera un paragrafo
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Altre applicazioni

  • Creazione di nomi
    • Nomi per bebè
    • Nuovi nomi di stelle, ecc.
  • Generazione di testo marcato
    • LaTeX
    • Markdown
    • XML, ecc.
    • Codice
  • Articoli di news
  • Chatbot
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Preparazione dati

Rappresenta il processo di preparazione dati per la generazione di testo: trasforma il testo in sequenze numeriche e divide il training set in X e Y mantenendo sequenze di lunghezza fissa in X e il carattere successivo in Y.

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Passiamo alla pratica !

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Preparing Video For Download...