You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Python词频统计工具添加MovieID搜索功能并展示关联词汇

影评数据集按MovieID筛选的词频统计实现方案

核心思路

在原有脚本基础上,新增按MovieID筛选评论的前置步骤,再对筛选后的内容执行词频及2-3词短语统计,最终输出对应结果。这样可视化工具可直接调用脚本传入指定MovieID,或基于预生成的分组统计数据搭建仪表盘。

具体实现步骤

1. 加载并关联完整数据集

用pandas读取数据集(初学者友好),保留MovieID与评论的关联:

import pandas as pd

# 替换为你的数据集路径(支持csv/excel格式)
df = pd.read_csv("your_reviews_dataset.csv")

2. 添加MovieID筛选功能

提供两种适配可视化场景的实现方式:

  • 手动指定MovieID(适合单电影快速统计)
    直接在脚本内设置目标MovieID,可视化工具可修改该参数后运行:
    # 示例:指定要分析的电影ID
    target_movie_id = "M001"
    # 筛选对应电影的有效评论(剔除空值)
    filtered_reviews = df[df["MovieID"] == target_movie_id]["FreeformComment"].dropna().tolist()
    
  • 命令行传参(适合仪表盘批量调用)
    让脚本接收外部传入的MovieID参数,可视化工具通过命令行触发脚本并传值:
    import sys
    
    # 运行脚本时传入参数:python your_script.py M001
    if len(sys.argv) < 2:
        print("请传入目标MovieID参数")
        sys.exit(1)
    target_movie_id = sys.argv[1]
    filtered_reviews = df[df["MovieID"] == target_movie_id]["FreeformComment"].dropna().tolist()
    

3. 复用原有统计逻辑处理筛选后评论

将原有针对全量评论的词频、短语统计代码,替换为处理filtered_reviews列表。以下是基础示例(可替换为你已有的成熟逻辑):

from collections import Counter
import jieba  # 中文分词工具,英文场景可跳过
from nltk.util import ngrams  # 生成2-3词短语,中文需基于分词结果调整

# 中文评论分词处理(英文直接用split()即可)
def process_comment(comment):
    return jieba.lcut(comment)

# 整合所有筛选后评论的分词结果
all_words = []
for comment in filtered_reviews:
    words = process_comment(comment)
    all_words.extend(words)

# 统计词频
word_freq = Counter(all_words)
# 统计2词短语
bigrams = Counter(ngrams(all_words, 2))
# 统计3词短语
trigrams = Counter(ngrams(all_words, 3))

4. 导出筛选后的统计结果

将结果导出为Excel(适配可视化工具读取),或直接输出JSON格式:

# 整理结果为DataFrame并导出
result_df = pd.DataFrame({
    "统计类型": ["词频"]*len(word_freq) + ["2词短语"]*len(bigrams) + ["3词短语"]*len(trigrams),
    "内容": [k for k in word_freq.keys()] + ["/".join(k) for k in bigrams.keys()] + ["/".join(k) for k in trigrams.keys()],
    "频次": [v for v in word_freq.values()] + [v for v in bigrams.values()] + [v for v in trigrams.values()]
})
# 按MovieID命名输出文件,方便仪表盘识别
result_df.to_excel(f"movie_{target_movie_id}_stats.xlsx", index=False)

5. 仪表盘适配进阶方案

如果可视化工具支持动态数据调用:

  • 用flask封装简单API,仪表盘通过HTTP请求传入MovieID,直接获取JSON格式的统计结果
  • 提前预计算所有MovieID的统计数据,保存为包含MovieID字段的总统计文件,仪表盘直接读取并筛选

注意事项

  • 确保数据集内MovieID格式统一(全为字符串或数字),避免匹配错误
  • 必须剔除空评论(dropna()),防止统计逻辑报错
  • 中文场景需提前安装分词工具:pip install jieba

内容的提问来源于stack exchange,提问作者user14452102

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 23:07:12