基于Pandas按产品组类别统计并可视化词频的技术咨询
按产品组统计评论高频词汇的实现方案
没问题!我来帮你搞定按产品组统计词频的需求,用Pandas就能轻松实现,下面是具体步骤和代码:
步骤1:预处理评论文本(可选但推荐)
首先统一文本格式,避免大小写、标点导致的词频统计误差,比如把所有评论转小写、去除标点:
import pandas as pd # 假设你的数据集是df,列名为"产品组"和"评论" df['评论'] = df['评论'].str.lower().str.replace('[^\w\s]', '', regex=True)
步骤2:拆分词汇并展开为单行
把每条评论里的词汇拆分成单独的行,这样才能按产品组进行分组统计:
# 拆分评论为词汇列表,然后展开成每行一个词汇 df_exploded = df.assign(词汇=df['评论'].str.split()).explode('词汇') # 过滤掉拆分后可能出现的空白词汇 df_exploded = df_exploded[df_exploded['词汇'].str.strip() != '']
步骤3:按产品组统计词频
现在可以分组统计每个产品组下的词汇频率了:
# 按产品组分组,统计每个组内的词汇出现次数 grouped_word_counts = df_exploded.groupby('产品组')['词汇'].value_counts() # 查看结果,比如查看产品组"1"的词频 print(grouped_word_counts.loc['1'])
进阶:获取每个产品组的Top N高频词汇
如果想直接得到每个产品组出现频率最高的前N个词汇(比如Top5),可以这样写:
# 统计每个(产品组,词汇)的出现次数,再取每个组的Top5 top_words_per_group = df_exploded.groupby(['产品组', '词汇']).size() \ .groupby(level=0).nlargest(5) \ .reset_index(level=0, drop=True) # 输出结果 print(top_words_per_group)
这样就能精准得到每个产品组下的高频词汇啦,如果你的评论文本有特殊格式(比如包含停用词需要过滤),可以再补充停用词移除的步骤,比如用nltk的停用词库过滤~
内容的提问来源于stack exchange,提问作者Matteo Sabbatini
相关产品推荐
相关产品推荐

