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库,也可以尝试其他分词工具。
