Förbehandling av data

Återkommande neurala nätverk (RNN) för språkmodellering med Keras

David Cecchini

Data Scientist

Textklassificering

Tillämpningar av textklassificering:

  • Automatisk nyhetsklassificering
  • Dokumentklassificering för företag
  • Köhantering för kundsupport
  • Och mycket mer!
Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Förändringar från binär klassificering

Vad som förändras vid övergång till multiklass:

  • Formen på utdatavariabeln y
  • Antalet enheter i utdatalagret
  • Aktiveringsfunktionen i utdatalagret
  • Förlustfunktionen
Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Förändringar från binär klassificering

Formen på utdatavariabeln y:

  • One-hot-kodning av klasserna
# Example: num_classes = 3
y[0] = [0, 1, 0]
y.shape = (N, num_classes)

Antalet enheter i utdatalagret:

# Output layer
model.add(Dense(num_classes))
Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Förändringar från binär klassificering

Skillnad mellan tal på en linje och i rummet, som illustrerar tillämpningen av one-hot-kodning

Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Förändringar från binär klassificering

Aktiveringsfunktionen i utdatalagret:

  • softmax ger sannolikheten för varje klass
# Output layer
model.add(Dense(num_classes, activation="softmax"))

Förlustfunktionen:

  • Istället för binär används kategorisk korsentropi
# Compile the model
model.compile(loss='categorical_crossentropy')
Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Förbereda textkategorier för 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
Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Förbehandling av 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.]]
Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Nu kör vi en övning!

Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Preparing Video For Download...