Prevedere il sentiment di una recensione cinematografica
Nell'esercizio precedente hai generato le rappresentazioni bag-of-words per i dati di training e di test delle recensioni di film. In questo esercizio useremo questo modello per addestrare un classificatore Naive Bayes in grado di rilevare il sentiment di una recensione e calcolarne l'accuratezza. Nota che, trattandosi di un problema di classificazione binaria, il modello è in grado solo di classificare una recensione come positiva (1) o negativa (0). Non è in grado di individuare recensioni neutre.
Se non lo ricordi, i vettori BoW di training e test sono disponibili rispettivamente come X_train_bow e X_test_bow. Le etichette corrispondenti sono disponibili rispettivamente come y_train e y_test. Inoltre, per tua consultazione, l'insieme di dati originale delle recensioni di film è disponibile come df.
Questo esercizio fa parte del corso
Feature Engineering per NLP in Python
Istruzioni dell'esercizio
- Istanzia un oggetto di
MultinomialNB. Chiamaloclf. - Esegui il fit di
clfusandoX_train_bowey_train. - Misura l'accuratezza di
clfusandoX_test_bowey_test.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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))