De tekstgeneratiefunctie

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

David Cecchini

Data Scientist

Zinnen genereren

  • Zinnen worden bepaald door interpunctie, bv. . (punt), ! (uitroep) of ? (vraag).

    • Deze leestekens moeten in de woordenschat staan.
  • Er is een zinstoken, bv. <SENT> en </SENT>, dat begin en eind markeert.

    • Data vooraf bewerken om deze labels in te voegen.
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Zinnen genereren

sentence = ''

# Loop tot het einde van de zin while next_char != '.':
# Voorspel volgend teken: haal pred-array op op positie 0 pred = model.predict(X)[0]
char_index = np.argmax(pred)
next_char = index_to_char(char_index)
# Voeg toe aan zin sentence = sentence + next_char
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Waarschijnlijkheid schalen

Schaal de waarschijnlijkheidsverdeling.

  • Temperatuur: term uit de natuurkunde
    • Lage waarden: maken de voorspelling zekerder
    • Waarde 1: geen schaling
    • Hogere waarden: maken de voorspelling creatiever
    • Hyperparameter: probeer waarden om je doel te bereiken
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Waarschijnlijkheid schalen

def scale_softmax(softmax_pred, temperature=1.0):
    # Neem de logaritme
    scaled_pred = np.log(softmax_pred) / temperature

# Exponent opnieuw toepassen scaled_pred = np.exp(scaled_pred)
# Bouw kansverdeling scaled_pred = scaled_pred / np.sum(scaled_pred)
# Simuleer multinomiaal scaled_pred = np.random.multinomial(1, scaled_pred, 1)
# Geef gesimuleerde klasse terug return np.argmax(scaled_pred)
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...