Modellen voor tekstopwekking

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

David Cecchini

Data Scientist

Lijkt op een classificatiemodel

Het tekstopwekkingsmodel:

  • Gebruikt de woordenschat als klassen
  • Laatste laag: softmax met aantal vocab-eenheden
  • Gebruikt categorical_crossentropy als verliesfunctie
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Voorbeeldmodel met 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')
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Maar geen echt classificatiemodel

Verschil met classificatie:

  • Berekent verlies, maar geen metrics (accuracy)
    • Mensen bekijken de output en beoordelen de performance.
    • Niet goed? Train meer epochs of maak het model complexer (meer geheugencellen, extra lagen, etc.).
  • Gebruikt generatieregels per taak
    • Genereer volgend teken
    • Genereer één woord
    • Genereer één zin
    • Genereer één alinea
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Andere toepassingen

  • Namen genereren
    • Babynamen
    • Nieuwe sternamen, etc.
  • Gemarkeerde tekst genereren
    • LaTeX
    • Markdown
    • XML, etc.
    • Programmacode
  • Nieuwsartikelen
  • Chatbots
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Datavoorbereiding

Toont de gegevensvoorbereiding voor tekstopwekking: tekst naar cijfervolgorden, en de training splitsen in X en Y met vaste-lengte-sequenties in X en het volgende teken in Y.

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Laten we oefenen!

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Preparing Video For Download...