Pre-elaborazione dei dati

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

David Cecchini

Data Scientist

Classificazione del testo

Applicazioni della classificazione del testo:

  • Classificazione automatica delle notizie
  • Classificazione documenti per le aziende
  • Segmentazione code per l’assistenza clienti
  • E molto altro!
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Differenze rispetto alla classificazione binaria

Cosa cambia da binaria a multi-classe:

  • Forma della variabile di output y
  • Numero di unità nel layer di output
  • Funzione di attivazione nel layer di output
  • Funzione di loss
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Differenze rispetto alla classificazione binaria

Forma della variabile di output y:

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

Numero di unità nel layer di output:

# Output layer
model.add(Dense(num_classes))
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Differenze rispetto alla classificazione binaria

Differenza tra numeri su una linea e in uno spazio, che mostra l’applicazione della one-hot encoding

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Differenze rispetto alla classificazione binaria

Funzione di attivazione nel layer di output:

  • softmax restituisce la probabilità di ogni classe
# Output layer
model.add(Dense(num_classes, activation="softmax"))

Funzione di loss:

  • Anziché binaria, usiamo la cross-entropy categorica
# Compile the model
model.compile(loss='categorical_crossentropy')
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Preparare le categorie testuali per keras

y = ["sports", "economy", "data_science", "sports", "finance"]
# Trasforma in oggetto pandas Series
y_series = pd.Series(y, dtype="category")

# Stampa i codici delle categorie print(y_series.cat.codes)
0    3
1    1
2    0
3    3
4    2
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Pre-elaborazione di y

from tensorflow.keras.utils import to_categorical

y = np.array([0, 1, 2]) # Converti in categorico y_prep = to_categorical(y) print(y_prep)
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Ayo berlatih!

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Preparing Video For Download...