【发布时间】:2018-12-24 01:51:35
【问题描述】:
我有两个客户评论数据的数据框。
我的第一个数据框 'df' 包含 数千 条原始客户评论、处理/清理的评论数据和情绪评分:
reviewBody reviewClean sentimentScore
'I like these goggles' 'like goggles' 1
'I don't like these goggles' 'don't like goggles' -1
'My strap broke' 'strap broke' -1
... ... ...
我的第二个数据帧,'bigrams' 包含我的第一个数据帧中名为“reviewClean”的字段中最常见的二元组:
topBigrams frequency
'like goggles' 150
'strap broke' 100
... ...
我的目标是获取我的每个 topBigram,例如'like goggles' 或 'strap broken',查找包含每个 bigram 的每个 'reviewClean' 以及与整个评论相关联的情绪,并计算每个 topBigram 的平均情绪得分。
我的最终结果将如下所示(纯数字用于说明):
topBigrams frequency avgSentiment
'like goggles' 150 .98
'strap broke' 100 -.90
... ... ...
然后,我会从这些数据中寻找每个二元组的趋势,以更简洁的方式确定积极或消极情绪的驱动因素。
我什至不知道从哪里开始。非常感谢您对此处潜在方法的任何见解。
【问题讨论】:
-
您是否从
df派生了bigrams数据框?如果是这样,你可以做df.groupby('reviewClean').mean()。 -
如果你想要频率和平均情绪,你可以做
df.groupby('reviewClean').agg(['mean', 'count']).sort_values(('sentimentScore', 'count'), ascending=False)
标签: python pandas sentiment-analysis