基于朴素贝叶斯影评情感倾向分类代码
时间: 2023-08-15 08:05:02 浏览: 120
深度学习-情感分析系统(朴素贝叶斯算法的应用)
5星 · 资源好评率100%
以下是一个基于朴素贝叶斯的影评情感倾向分类的Python代码示例:
```python
import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
# 读取数据集
data = pd.read_csv('movie_reviews.csv')
# 分割数据集
train_data = data[:1500]
test_data = data[1500:]
# 创建词袋模型并将文本转换成向量
vectorizer = CountVectorizer(stop_words='english')
train_matrix = vectorizer.fit_transform(train_data['text'])
test_matrix = vectorizer.transform(test_data['text'])
# 创建并训练朴素贝叶斯模型
clf = MultinomialNB()
clf.fit(train_matrix, train_data['sentiment'])
# 对测试集进行预测
predicted = clf.predict(test_matrix)
# 输出准确率、精确率、召回率和 F1 值
print("Accuracy:", accuracy_score(test_data['sentiment'], predicted))
print("Precision:", precision_score(test_data['sentiment'], predicted, average='macro'))
print("Recall:", recall_score(test_data['sentiment'], predicted, average='macro'))
print("F1 Score:", f1_score(test_data['sentiment'], predicted, average='macro'))
```
这个示例中,我们首先读取了一个名为`movie_reviews.csv`的数据集,然后将其分成了训练集和测试集。接着,我们使用`CountVectorizer`将文本转换成了向量表示,并使用`MultinomialNB`创建了一个朴素贝叶斯模型。我们使用训练集来训练这个模型,然后使用测试集进行预测,并计算了准确率、精确率、召回率和 F1 值。需要注意的是,这个示例中的数据集是一个已经经过预处理的影评数据集,实际应用中可能需要对数据集进行更多的处理和清洗。
阅读全文