简单分析代码import pandas as pd from sklearn.feature_extraction.text import CountVectorizer from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score import joblib # 读取 Excel 文件 data = pd.read_excel('所有评论数据(1).xlsx') # 提取文本和情感倾向值 text = data['评论内容'].tolist() sentiment = data['情感倾向'].tolist() # 将连续的情感倾向值转换为离散的类别 threshold = 0.5 sentiment_class = ['positive' if s >= threshold else 'negative' for s in sentiment] # 将文本转换为特征向量 vectorizer = CountVectorizer() X = vectorizer.fit_transform(text) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, sentiment_class, test_size=0.2, random_state=42) # 训练模型 model = LogisticRegression() model.fit(X_train, y_train) # 评估模型 y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) # 保存模型 joblib.dump(model, 'model.pkl') joblib.dump(vectorizer, 'vectorizer.pkl')
时间: 2024-04-10 07:30:40 浏览: 114
这段代码是一个简单的情感分析模型的训练和评估过程。具体步骤如下:
1. 导入 pandas 库用于读取 Excel 文件,导入其他需要的库。
2. 使用 pd.read_excel 函数读取名为 '所有评论数据(1).xlsx' 的 Excel 文件,并将其存储在一个 DataFrame 对象中,命名为 data。
3. 从 data 中提取评论内容和情感倾向值,分别存储在 text 和 sentiment 列表中。
4. 根据设定的阈值(threshold),将连续的情感倾向值转换为离散的类别。大于等于阈值的赋值为 'positive',小于阈值的赋值为 'negative'。类别标签存储在 sentiment_class 列表中。
5. 使用 CountVectorizer 进行文本特征向量化处理。创建一个 CountVectorizer 对象 vectorizer,并使用 fit_transform 方法将文本列表 text 转换为特征向量矩阵 X。
6. 使用 train_test_split 函数划分训练集和测试集。将 X 和 sentiment_class 分别划分为训练集和测试集,其中测试集占总数据集的 20%。划分结果分别存储在 X_train、X_test、y_train、y_test 四个变量中。
7. 创建一个 LogisticRegression 模型对象 model,并使用 fit 方法对训练数据进行训练。
8. 使用模型对测试集数据进行预测,得到预测结果 y_pred。
9. 使用 accuracy_score 函数计算预测结果的准确率,并将结果存储在 accuracy 变量中。
10. 打印准确率结果。
11. 使用 joblib.dump 函数保存训练好的模型对象 model 和特征向量化器对象 vectorizer,分别保存为 'model.pkl' 和 'vectorizer.pkl'。
这段代码的目的是从 Excel 文件中读取评论数据,进行情感分析模型的训练和评估,并将训练好的模型和特征向量化器保存到文件中,以备后续使用。
阅读全文