Prétraitement des données

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

David Cecchini

Data Scientist

Classification de texte

Applications de la classification de texte :

  • Classification automatique des actualités
  • Classification de documents en entreprise
  • Segmentation des files pour le support client
  • Et bien d'autres !
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Passer de la classification binaire au multi-classes

Ce qui change du binaire au multi-classes :

  • Forme de la variable de sortie y
  • Nombre d'unités dans la couche de sortie
  • Fonction d'activation de la couche de sortie
  • Fonction de perte
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Passer de la classification binaire au multi-classes

Forme de la variable de sortie y :

  • One-hot encoding des classes
# Example: num_classes = 3
y[0] = [0, 1, 0]
y.shape = (N, num_classes)

Nombre d'unités dans la couche de sortie :

# Output layer
model.add(Dense(num_classes))
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Passer de la classification binaire au multi-classes

Différence entre des nombres sur une ligne et dans l'espace, illustrant l'usage du one-hot encoding

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

Passer de la classification binaire au multi-classes

Fonction d'activation de la couche de sortie :

  • softmax donne la probabilité de chaque classe
# Output layer
model.add(Dense(num_classes, activation="softmax"))

Fonction de perte :

  • Au lieu du binaire, on utilise l'entropie croisée catégorielle
# Compile the model
model.compile(loss='categorical_crossentropy')
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Préparer les catégories texte pour keras

y = ["sports", "economy", "data_science", "sports", "finance"]
# Transform to pandas series object
y_series = pd.Series(y, dtype="category")

# Print the category codes print(y_series.cat.codes)
0    3
1    1
2    0
3    3
4    2
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Prétraiter y

from tensorflow.keras.utils import to_categorical

y = np.array([0, 1, 2]) # Passer en catégoriel y_prep = to_categorical(y) print(y_prep)
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
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...