Nieuwsartikelen classificeren
In deze oefening maak je een multi-class-classificatiemodel.
De gegevensset is al in de omgeving geladen als news_novel. Ook is alle pre-processing van de trainingsgegevens al gedaan en tokenizer is beschikbaar in de omgeving.
Er is een RNN-model voorgetraind met de volgende architectuur: gebruik de Embedding-laag, één LSTM-laag en de uitvoerlaag Dense die drie klassen verwacht: sci.space, alt.atheism en soc.religion.christian. De gewichten van dit getrainde model staan in het bestand classify_news_weights.h5.
Je gaat de nieuwe gegevens voorbewerken en evalueren op een nieuwe gegevensset news_novel.
Deze oefening maakt deel uit van de cursus
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras
Oefeninstructies
- Transformeer de gegevens in
news_novel.datamet de geladentokenizer. - Pad de verkregen reeksen met numerieke indexen.
- Zet de labels in
news_novel.targetom naar een one-hot-representatie. - Evalueer het model met de methode
.evaluate()en print de behaalde loss en accuracy.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Change text for numerical ids and pad
X_novel = tokenizer.texts_to_sequences(____)
X_novel = pad_sequences(____, maxlen=400)
# One-hot encode the labels
Y_novel = to_categorical(____)
# Load the model pre-trained weights
model.load_weights('classify_news_weights.h5')
# Evaluate the model on the new dataset
loss, acc = model.____(X_novel, Y_novel, batch_size=64)
# Print the loss and accuracy obtained
print("Loss:\t{0}\nAccuracy:\t{1}".format(____, ____))