La fonction de génération de texte

Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

David Cecchini

Data Scientist

Générer des phrases

  • Une phrase est délimitée par la ponctuation : par exemple . (point), ! (exclamation) ou ? (interrogation).

    • Ces signes de ponctuation doivent figurer dans le vocabulaire.
  • Il existe un jeton de phrase, p. ex. <SENT> et </SENT>, qui indique le début et la fin d'une phrase.

    • Il faut prétraiter les données pour insérer ces étiquettes.
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Générer des phrases

sentence = ''

# Boucler jusqu'à la fin de la phrase while next_char != '.':
# Prédire le prochain caractère : récupérer le tableau de prédiction en position 0 pred = model.predict(X)[0]
char_index = np.argmax(pred)
next_char = index_to_char(char_index)
# Concaténer à la phrase sentence = sentence + next_char
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Mise à l'échelle des probabilités

Redimensionner la distribution de probabilités.

  • Température : terme issu de la physique
    • Valeurs faibles : rend la prédiction plus confiante
    • Valeur égale à 1 : pas de redimensionnement
    • Valeurs plus élevées : rend la prédiction plus créative
    • Hyperparamètre : tester plusieurs valeurs selon vos besoins
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Mise à l'échelle des probabilités

def scale_softmax(softmax_pred, temperature=1.0):
    # Prendre le logarithme
    scaled_pred = np.log(softmax_pred) / temperature

# Réappliquer l'exponentielle scaled_pred = np.exp(scaled_pred)
# Construire la distribution de probabilités scaled_pred = scaled_pred / np.sum(scaled_pred)
# Simuler une multinomiale scaled_pred = np.random.multinomial(1, scaled_pred, 1)
# Retourner la classe simulée return np.argmax(scaled_pred)
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Passons à la pratique !

Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Preparing Video For Download...