1、使用TF-IDF算法提取到关键词并获得权重;
2、将关键词进行分类,分了8大类;
3、每类中包含几个关键词并附带权重;
问题:如何遍历每条评论分别计算8类的总权重,并导入到excel表格?
表格表头为:评论——类1权重和——类2权重和——
参考GPT和自己的思路:为遍历每条评论,根据关键词进行权重相加并导入到excel表格,你可以按照以下步骤进行操作:
首先,你需要使用TF-IDF算法从每条评论中提取出关键词,并计算出这些关键词的权重。
将提取出的关键词进行分类,将它们分为8大类。你可以自行定义每个类别的关键词,并将它们存储为一个字典。
编写一个函数,将每一类的关键词及其权重存储在一个字典中,并将这个字典嵌套在一个列表中。这样,你可以很方便地对每一类关键词的权重进行累加。
对每条评论进行遍历,将评论中的关键词与你事先定义好的关键词分类列表进行匹配。如果该关键词属于某个类别,将其权重添加到该类别的权重和中。
为每条评论记录在表格中的8类权重和,你可以定义一个空的字典或列表,每当遍历一条评论时,将该评论的8类权重和记录在这个字典或列表中。当所有评论都处理完毕后,你可以将这些记录导入到excel表格中。
下面是一个简单的Python代码示例,它实现了上述步骤中的某些操作。
import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import TfidfVectorizer
# 评论数据集合
text_data = [
'这个电影很好看。',
'这部电影太过无聊了。',
'导演的表现非常出色。',
'这个演员的表演令人印象深刻。',
]
# 定义关键词和类别
category_keywords = {
'类别1': ['电影', '导演', '演员'],
'类别2': ['好看', '出色', '印象深刻'],
# ... 其他类别
}
# 定义每一类别的关键词及其权重
category_weights = [
{'关键词1': 0.1, '关键词2': 0.2},
{'关键词3': 0.3, '关键词4': 0.4},
# ... 其他类别
]
# 提取关键词并计算权重
tf_idf = TfidfVectorizer(stop_words='english')
features = tf_idf.fit_transform(text_data)
vocabulary = tf_idf.vocabulary_
weights = features.todense()
# 遍历每条评论,计算8类的总权重,并将结果记录在字典中
results = []
for i in range(len(text_data)):
class_weights = np.zeros(len(category_weights))
for k, v in vocabulary.items():
if k in category_keywords['类别1']:
class_weights[0] += weights[i, v] * category_weights[0][k]
elif k in category_keywords['类别2']:
class_weights[1] += weights[i, v] * category_weights[1][k]
# ... 其他类别
results.append({'评论': text_data[i], '类1权重和': class_weights[0], '类2权重和': class_weights[1], ...})
# 将结果导入到excel表格中
df = pd.DataFrame(results)
df.to_excel('results.xlsx')
请根据实际需求进行修改和优化。