Попередня обробка даних

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

David Cecchini

Data Scientist

Класифікація текстів

Застосування класифікації текстів:

  • Автоматична класифікація новин
  • Класифікація документів для бізнесу
  • Сегментація черги підтримки клієнтів
  • Та багато іншого!
Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Зміни порівняно з бінарною класифікацією

Що змінюється від бінарної до багатокласової:

  • Форма вихідної змінної y
  • Кількість юнітів на вихідному шарі
  • Функція активації на вихідному шарі
  • Функція втрат
Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Зміни порівняно з бінарною класифікацією

Форма вихідної змінної y:

  • One-hot кодування класів
# Example: num_classes = 3
y[0] = [0, 1, 0]
y.shape = (N, num_classes)

Кількість юнітів на вихідному шарі:

# Output layer
model.add(Dense(num_classes))
Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Зміни порівняно з бінарною класифікацією

Різниця між числами на прямій і в просторі, що ілюструє застосування one-hot кодування

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Зміни порівняно з бінарною класифікацією

Функція активації на вихідному шарі:

  • softmax дає ймовірність кожного класу
# Output layer
model.add(Dense(num_classes, activation="softmax"))

Функція втрат:

  • Замість бінарної — категоріальна крос-ентропія
# Compile the model
model.compile(loss='categorical_crossentropy')
Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Підготовка текстових категорій для 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
Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Попередня обробка 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.]]
Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Давайте потренуємось!

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Preparing Video For Download...