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 :

  • Classement automatique des nouvelles
  • Classification de documents pour les entreprises
  • Segmentation des files pour le soutien à la clientèle
  • Et bien plus encore !
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Différences avec la classification binaire

Ce qui change du binaire au multiclasse :

  • 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

Différences avec la classification binaire

Forme de la variable de sortie y :

  • Encodage one-hot 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

Différences avec la classification binaire

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

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

Différences avec la classification binaire

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 de 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]) # Convertir 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...