Datapreprocessing

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

David Cecchini

Data Scientist

Tekstclassificatie

Toepassingen van tekstclassificatie:

  • Automatische nieuwsclassificatie
  • Documentclassificatie voor bedrijven
  • Wachtrijsegmentatie voor support
  • En meer!
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Wijzigingen t.o.v. binaire classificatie

Wat verandert van binair naar multiklassen:

  • Vorm van de outputvariabele y
  • Aantal units in de outputlaag
  • Activatiefunctie in de outputlaag
  • Verliesfunctie
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Wijzigingen t.o.v. binaire classificatie

Vorm van de outputvariabele y:

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

Aantal units in de outputlaag:

# Output layer
model.add(Dense(num_classes))
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Wijzigingen t.o.v. binaire classificatie

Verschil tussen nummers op een lijn en in de ruimte, ter illustratie van one-hot-encoding

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Wijzigingen t.o.v. binaire classificatie

Activatiefunctie in de outputlaag:

  • softmax geeft de kans voor elke klasse
# Output layer
model.add(Dense(num_classes, activation="softmax"))

Verliesfunctie:

  • In plaats van binair gebruiken we categorische cross-entropy
# Compile the model
model.compile(loss='categorical_crossentropy')
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Tekstcategorieƫn voorbereiden voor keras

y = ["sports", "economy", "data_science", "sports", "finance"]
# Omzetten naar pandas Series-object
y_series = pd.Series(y, dtype="category")

# Print de categoriecodes print(y_series.cat.codes)
0    3
1    1
2    0
3    3
4    2
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

y pre-processen

from tensorflow.keras.utils import to_categorical

y = np.array([0, 1, 2]) # Omzetten naar categorisch y_prep = to_categorical(y) print(y_prep)
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Laten we oefenen!

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Preparing Video For Download...