Het sentiment van een filmrecensie voorspellen
In de vorige oefening heb je de bag-of-words-representaties voor de trainings- en testgegevens van filmrecensies gemaakt. In deze oefening gebruiken we dit model om een Naive Bayes-classifier te trainen die het sentiment van een filmrecensie kan herkennen en de nauwkeurigheid kan berekenen. Let op: omdat dit een binaire classificatie is, kan het model een recensie alleen als positief (1) of negatief (0) classificeren. Het kan geen neutrale recensies detecteren.
Voor het geval je het niet meer weet: de BoW-vectoren voor train en test zijn respectievelijk beschikbaar als X_train_bow en X_test_bow. De bijbehorende labels zijn respectievelijk beschikbaar als y_train en y_test. Ter referentie is de oorspronkelijke gegevensset met filmrecensies beschikbaar als df.
Deze oefening maakt deel uit van de cursus
Feature Engineering voor NLP in Python
Oefeninstructies
- Maak een instantie van
MultinomialNB. Noem dezeclf. - Fit
clfmetX_train_boweny_train. - Meet de nauwkeurigheid van
clfmetX_test_boweny_test.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create a MultinomialNB object
clf = ____
# Fit the classifier
clf.____(____, ____)
# Measure the accuracy
accuracy = clf.score(____, ____)
print("The accuracy of the classifier on the test set is %.3f" % accuracy)
# Predict the sentiment of a negative review
review = "The movie was terrible. The music was underwhelming and the acting mediocre."
prediction = clf.predict(vectorizer.transform([review]))[0]
print("The sentiment predicted by the classifier is %i" % (prediction))