Förutsäg sentimentet i en filmrecension
I föregående övning skapade du bag-of-words-representationer för tränings- och testdata med filmrecensioner. I den här övningen använder vi den modellen för att träna en Naïve Bayes-klassificerare som kan avgöra sentimentet i en filmrecension och beräkna dess noggrannhet. Eftersom det här är ett binärt klassificeringsproblem kan modellen bara klassificera en recension som antingen positiv (1) eller negativ (0) – den kan inte hantera neutrala recensioner.
Om du behöver en påminnelse: tränings- och test-BoW-vektorerna finns tillgängliga som X_train_bow respektive X_test_bow. Motsvarande etiketter finns som y_train respektive y_test. Den ursprungliga datamängden med filmrecensioner finns tillgänglig som df.
Den här övningen är en del av kursen
Funktionsutveckling för NLP i Python
Övningsinstruktioner
- Skapa ett objekt av
MultinomialNB. Döp det tillclf. - Träna
clfmed hjälp avX_train_bowochy_train. - Mät noggrannheten hos
clfmed hjälp avX_test_bowochy_test.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))