Modellen voor multiclass-classificatie

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

David Cecchini

Data Scientist

Herhaling: sentimentclassificatiemodel

# Bouw en compileer het model
model = Sequential()

model.add(Embedding(10000, 128))
model.add(LSTM(128, dropout=0.2))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Modelarchitectuur

Dezelfde architectuur is bruikbaar

# Build the model
model = Sequential()
model.add(Embedding(10000, 128))
model.add(LSTM(128, dropout=0.2))

# Outputlaag heeft `num_classes` units en gebruikt `softmax` model.add(Dense(num_classes, activation="softmax"))
# Compile het model model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) ...
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

20 Newsgroups-dataset

20 Newsgroups-dataset

  • Beschikbaar via sklearn.datasets import fetch_20newsgroups
# Importeer de functie om de data te laden
from sklearn.datasets import fetch_20newsgroups

# Download train- en testsets news_train = fetch_20newsgroups(subset='train')
news_test = fetch_20newsgroups(subset='test')
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

20 Newsgroups-dataset

De data heeft deze attributen:

  • news_train.DESCR: Documentatie.
  • news_train.data: Tekstdata.
  • news_train.filenames: Paden naar bestanden op schijf.
  • news_train.target: Numerieke index van de klassen.
  • news_train.target_names: Unieke namen van de klassen.
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Tekstdata pre-processen

# Modules importeren
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.utils import to_categorical

# Maak en fit de tokenizer tokenizer = Tokenizer() tokenizer.fit_on_texts(news_train.data)
# Maak de (X, Y)-variabelen X_train = tokenizer.texts_to_sequences(news_train.data) X_train = pad_sequences(X_train, maxlen=400) Y_train = to_categorical(news_train.target)
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Trainen op data

Train het model op trainingsdata

# Train the model
model.fit(X_train, Y_train, 
          batch_size=64, epochs=100)

# Evaluate on test data
model.evaluate(X_test, Y_test)
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...