N-gramy wyższego rzędu w analizie sentymentu
Podobnie jak w poprzednim ćwiczeniu, zbudujesz klasyfikator wykrywający, czy recenzja danego filmu jest pozytywna, czy negatywna. Tym razem jednak do zadania użyjesz n-gramów do n=2.
Recenzje treningowe w postaci n-gramów są dostępne jako X_train_ng. Odpowiadające im recenzje testowe znajdziesz w X_test_ng. Do klas sentymentu dla zbiorów treningowego i testowego służą odpowiednio y_train i y_test.
To ćwiczenie jest częścią kursu
Inżynieria cech dla NLP w Pythonie
Instrukcje do ćwiczenia
- Utwórz instancję MultinomialNB i nazwij ją
clf_ng. - Dopasuj klasyfikator do danych
X_train_ngiy_train. - Zmierz
accuracyna danychX_test_ngiy_test, korzystając z metodyscore().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Define an instance of MultinomialNB
clf_ng = ____
# Fit the classifier
clf_ng.____(____, ____)
# Measure the accuracy
accuracy = ____
print("The accuracy of the classifier on the test set is %.3f" % accuracy)
# Predict the sentiment of a negative review
review = "The movie was not good. The plot had several holes and the acting lacked panache."
prediction = clf_ng.predict(ng_vectorizer.transform([review]))[0]
print("The sentiment predicted by the classifier is %i" % (prediction))