欢迎访问宙启技术站
智能推送

TfidfVectorizer()在中文电影评论情感分析中的应用探索

发布时间:2024-01-03 14:17:51

TfidfVectorizer()是一个用于将文本转换为TF-IDF特征向量的工具,对于中文电影评论情感分析来说,它可以被用来提取有用的词语特征并作为分类模型的输入。

首先,我们需要导入必要的库和数据集。假设我们有一个包含中文电影评论和对应情感标签的数据集。

import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer

# 导入数据集
data = pd.read_csv("movie_reviews.csv")

# 查看数据集
print(data.head())

数据集的示例:

评论                                 情感
0   这部电影太棒了!                          正向
1   惊人的表演!                            正向
2   故事太枯燥了,不推荐观看。                    负向
3   剧情令人震惊,演员的表现也相当出色。            正向
4   扁平的角色,故事缺乏新意。                   负向

接下来,我们要对评论文本进行分词处理,并使用TfidfVectorizer()来提取特征。

import jieba

# 对评论文本进行分词
data["分词后评论"] = data["评论"].apply(lambda x: " ".join(jieba.cut(x)))

# 使用TfidfVectorizer()提取特征
tfidf_vectorizer = TfidfVectorizer()
tfidf_features = tfidf_vectorizer.fit_transform(data["分词后评论"])

# 查看提取的特征向量
print(tfidf_features.toarray())

输出的结果将是一个特征矩阵,其中每一行代表一个评论文本的特征向量。

最后,我们可以将情感标签转换为数字形式,并使用特征向量和标签训练一个分类模型。

from sklearn.model_selection import train_test_split
from sklearn.svm import SVC

# 将情感标签转换为数字形式
data["情感标签"] = data["情感"].map({"负向": 0, "正向": 1})

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(tfidf_features, data["情感标签"], test_size=0.2, random_state=42)

# 使用SVC训练分类模型
model = SVC()
model.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = model.predict(X_test)

# 查看分类模型的性能
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print("分类模型的准确率:", accuracy)

以上代码演示了如何使用TfidfVectorizer()在中文电影评论情感分析中提取特征并训练一个分类模型。通过对文本进行分词处理,使用TfidfVectorizer()将文本转换为TF-IDF特征向量,并使用特征向量和情感标签训练一个SVM分类模型。最后,通过对测试集进行预测,并计算预测结果与真实标签的准确率来评估模型的性能。

需要注意的是,以上只是一个基础的例子,实际应用中可能还需要对数据进行进一步的预处理,如去除停用词、进行特征选择等。另外,对于中文文本的分词处理可以使用jieba库,也可以尝试其他分词工具。