Modèles 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

Proche d'un modèle de classification

Le modèle de génération de texte :

  • Utilise le vocabulaire comme classes
  • La dernière couche applique un softmax avec un nombre d'unités égal à la taille du vocabulaire
  • Utilise categorical_crossentropy comme fonction de perte
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Exemple de modèle avec 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')
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Mais pas vraiment un modèle de classification

Différences avec la classification :

  • Calcule la perte, mais pas d'indicateurs de performance (accuracy)
    • Les humains examinent les résultats et évaluent la performance.
    • Si ce n'est pas satisfaisant, entraîner plus d'epochs ou complexifier le modèle (plus de cellules mémoire, couches, etc.).
  • Utilisé avec des règles de génération selon la tâche
    • Générer le caractère suivant
    • Générer un mot
    • Générer une phrase
    • Générer un paragraphe
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Autres applications

  • Création de noms
    • Prénoms
    • Noms d'étoiles, etc.
  • Générer du texte balisé
    • LaTeX
    • Markdown
    • XML, etc.
    • Code de programmation
  • Articles d'actualité
  • Chatbots
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Préparation des données

Décrit la préparation des données pour la génération de texte. Transforme le texte en séquences numériques et scinde l'ensemble d'entraînement en X et Y : séquences de longueur fixe pour X et caractère suivant pour Y.

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...