Preprocesarea datelor

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

David Cecchini

Data Scientist

Clasificarea textului

Aplicații ale clasificării textului:

  • Clasificarea automată a știrilor
  • Clasificarea documentelor în mediul de afaceri
  • Segmentarea cozilor pentru suportul clienților
  • Și multe altele!
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Modificări față de clasificarea binară

Ce se modifică de la binar la multiclasă:

  • Forma variabilei de ieșire y
  • Numărul de unități pe stratul de ieșire
  • Funcția de activare pe stratul de ieșire
  • Funcția de pierdere
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Modificări față de clasificarea binară

Forma variabilei de ieșire y:

  • Codificare one-hot a claselor
# Example: num_classes = 3
y[0] = [0, 1, 0]
y.shape = (N, num_classes)

Numărul de unități pe stratul de ieșire:

# Output layer
model.add(Dense(num_classes))
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Modificări față de clasificarea binară

Diferența dintre numerele pe o linie și în spațiu, ilustrând aplicarea codificării one-hot

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Modificări față de clasificarea binară

Funcția de activare pe stratul de ieșire:

  • softmax oferă probabilitatea fiecărei clase
# Output layer
model.add(Dense(num_classes, activation="softmax"))

Funcția de pierdere:

  • În loc de binară, folosim entropie încrucișată categorică
# Compile the model
model.compile(loss='categorical_crossentropy')
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Pregătirea categoriilor text pentru 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
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Preprocesarea variabilei y

from tensorflow.keras.utils import to_categorical

y = np.array([0, 1, 2]) # Change to categorical y_prep = to_categorical(y) print(y_prep)
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Să exersăm!

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Preparing Video For Download...