本代码使用朴素贝叶斯模型对电影评论进行情感分析,旨在预测评论的情感倾向(正面或负面)。代码使用 Python 编写,并在 JupyterLab 环境中运行,并包含以下步骤:

  1. 数据加载: 从 train.csvtest.csv 文件中加载训练集和测试集数据,每个数据集包含 25000 条数据。
  2. 数据预处理: 使用 CountVectorizer 将文本评论转换为词频矩阵,并使用 train_test_split 将训练集进一步划分为训练集和验证集。
  3. 模型训练: 使用 MultinomialNB 训练朴素贝叶斯模型,并使用验证集评估模型性能。
  4. 模型优化: 调整模型参数,直到模型在验证集上的准确率超过 95%。
  5. 预测: 使用训练好的模型对测试集进行预测,并生成预测结果文件 prediction.csv,其中包含测试集评论的 ID 和预测的标签。

代码如下:

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score

train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')

train_text, val_text, train_label, val_label = train_test_split(train_data['review'], train_data['label'], test_size=0.2, random_state=42)

vectorizer = CountVectorizer(stop_words='english')
train_counts = vectorizer.fit_transform(train_text)
val_counts = vectorizer.transform(val_text)

clf = MultinomialNB()
clf.fit(train_counts, train_label)

val_pred = clf.predict(val_counts)
print('Accuracy:', accuracy_score(val_label, val_pred))

test_counts = vectorizer.transform(test_data['review'])
test_pred = clf.predict(test_counts)
result = pd.DataFrame({'id': test_data['id'], 'label': test_pred})
result.to_csv('prediction.csv', index=False)

本代码旨在提供一个基本框架,用户可以根据自己的需求进行调整和优化。例如,可以尝试使用其他模型或特征工程方法来进一步提高预测准确率。


原文地址: https://www.cveoy.top/t/topic/oiqY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录