mcpField
R
reddit-sentiment-analysis

reddit-sentiment-analysis

github.com/natea数据与数据库463 次安装53 周前更新
代码仓库

关于 reddit-sentiment-analysis

用于分析 Reddit 上产品、品牌、游戏等主题讨论的工作流技能。它指导 Agent 收集帖子和评论、分类情绪、提取讨论方面,并生成支持产品与市场决策的证据型报告。

主要功能

  1. 01收集热门帖和高赞帖及评论
  2. 02分类正面、负面、中性和愿望倾向
  3. 03提取产品方面与反复出现的主题
  4. 04跨时间段或产品比较情绪
  5. 05生成含引文和计数的结构化报告

适用场景

  1. 01评估用户对产品或游戏的反应
  2. 02发现常见问题和功能诉求
  3. 03比较社区对竞品的看法
  4. 04跟踪主题情绪随时间的变化

MCP 相关

需要配置 Reddit MCP 服务,并使用其工具获取 subreddit 帖子及包含评论的帖子内容。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/natea/fitfinder --skill reddit-sentiment-analysis

安装后在 Claude Code 中输入/reddit-sentiment-analysis确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

DEMO-RESULTS.md
examples.md
README.md

详细介绍

Reddit 情感分析技能

目的

此技能可对 Reddit 讨论进行系统的情感分析,以了解社区对产品、品牌、游戏、公司或任何主题的看法、偏好和需求。它会提供可执行的洞察,帮助了解人们喜欢什么、批评什么,以及希望改进什么。

何时使用此技能

在以下情况下使用此技能:

  • 分析社区对游戏、产品或品牌的情感
  • 了解用户欣赏哪些功能/方面
  • 找出常见的投诉和痛点
  • 发现用户希望进行哪些改进或变更
  • 从社区讨论中获取竞争情报
  • 跟踪某个主题随时间推移的情感趋势
  • 根据用户反馈制定数据驱动的产品决策

先决条件

此技能要求在 .mcp.json 中配置 Reddit MCP 服务:

{
  "mcpServers": {
    "reddit": {
      "command": "uvx",
      "args": ["mcp-server-reddit"]
    }
  }
}

核心工作流

阶段 1:确定目标并收集数据

1. 定义分析目标

  • 确定要分析的产品/品牌/游戏/主题
  • 确定相关的 subreddit(例如,r/gaming、r/Games、特定产品的 subreddit)
  • 设置时间范围(近期帖子、当月/当年的热门帖子)
  • 定义范围(要分析多少帖子/评论)

2. 收集 Reddit 数据

  • 使用 mcp__reddit__get_subreddit_hot_posts 获取热门讨论
  • 使用 mcp__reddit__get_subreddit_top_posts 获取高评分内容
  • 使用 mcp__reddit__get_post_content 获取详细帖子和评论
  • 至少收集 10-20 篇帖子,确保分析有意义
  • 同时纳入帖子和顶级评论
阶段 2:情感分类

3. 分析每条讨论

对每篇帖子和每条评论,将情感分类为:

积极信号:

  • 明确赞扬:“我喜欢……”“太棒了”“最好”“太精彩了”
  • 推荐:“强烈推荐”“必试”“值得一试”
  • 积极情绪:“有趣”“令人愉快”“令人满足”“让人上瘾”
  • 问题解决:“终于修好了”“现在运行得很好”
  • 对比式赞扬:“比 X 好”“优于……”

消极信号:

  • 明确批评:“讨厌”“糟糕”“最差”“很差”
  • 失望:“令人失望”“本以为会更好”“被过度炒作”
  • 问题:“坏了”“无法运行”“漏洞百出”“崩溃”
  • 沮丧:“恼人”“令人沮丧”“荒谬”
  • 后悔:“浪费钱”“不值得”“已退款”

中性信号:

  • 不带情绪的提问
  • 事实陈述
  • 技术讨论
  • 信息请求

愿望/需求信号:

  • “我希望……”“他们应该……”“如果……就更好了”
  • “需要更多……”“缺少……”“没有……”
  • “希望他们能添加……”“正在等待……”
  • 功能请求和建议
阶段 3:实体和方面提取

4. 识别提及的具体方面

提取正在讨论的具体内容:

  • 功能:游戏机制、UI/UX、特定能力
  • 性能:速度、稳定性、优化、漏洞
  • 内容:故事、关卡、多样性、深度
  • 价值:定价、变现、成本效益
  • 支持:客户服务、更新、社区互动
  • 比较:与竞争对手、之前版本的比较
阶段 4:汇总和总结

5. 创建结构化摘要

按以下格式生成输出:

# Sentiment Analysis: [Topic/Product Name]

**Analysis Period**: [Date Range]
**Subreddits Analyzed**: [List]
**Posts Analyzed**: [Number]
**Comments Analyzed**: [Number]

## Overall Sentiment Score
- Positive: X%
- Negative: Y%
- Neutral: Z%
- Mixed: W%

## What People LIKE
1. **[Aspect/Feature Name]** (mentioned X times, Y% positive)
   - Representative quotes: "[quote 1]", "[quote 2]"
   - Common themes: [summary]

2. **[Another Aspect]** (...)
   - Representative quotes: ...
   - Common themes: ...

[Continue for top 5-7 positive aspects]

## What People DISLIKE
1. **[Problem/Issue Name]** (mentioned X times, Y% negative)
   - Representative quotes: "[quote 1]", "[quote 2]"
   - Common complaints: [summary]
   - Severity: [Low/Medium/High based on frequency and intensity]

2. **[Another Issue]** (...)
   - Representative quotes: ...
   - Common complaints: ...
   - Severity: ...

[Continue for top 5-7 negative aspects]

## What People WISH FOR
1. **[Feature/Improvement Request]** (mentioned X times)
   - Representative quotes: "[quote 1]", "[quote 2]"
   - Common requests: [summary]
   - Urgency: [Low/Medium/High based on frequency and intensity]

2. **[Another Request]** (...)
   - Representative quotes: ...
   - Common requests: ...
   - Urgency: ...

[Continue for top 5-7 requests]

## Key Insights
- [Insight 1: Major finding about sentiment patterns]
- [Insight 2: Surprising or notable trend]
- [Insight 3: Competitive advantages/disadvantages]
- [Insight 4: Recommended actions based on sentiment]

## Trending Topics
- [Topic 1]: [Brief description of emerging discussion]
- [Topic 2]: [Brief description]

## Competitor Mentions
- [Competitor 1]: [Sentiment when mentioned, context]
- [Competitor 2]: [Sentiment when mentioned, context]

实施流程

步骤 1:创建待办事项列表
TodoWrite([
  "Identify target subreddits for analysis",
  "Collect hot posts from subreddit(s)",
  "Collect top posts from time period",
  "Fetch detailed post content and comments",
  "Classify sentiment for each post/comment",
  "Extract aspects and entities mentioned",
  "Aggregate positive sentiment patterns",
  "Aggregate negative sentiment patterns",
  "Aggregate wish/desire patterns",
  "Calculate sentiment percentages",
  "Generate structured summary report"
])
步骤 2:并行收集数据

重要:在一条消息中批量执行所有 Reddit API 调用:

[Single Message - All Data Collection]:
  mcp__reddit__get_subreddit_hot_posts({subreddit_name: "gaming", limit: 20})
  mcp__reddit__get_subreddit_top_posts({subreddit_name: "gaming", time: "month", limit: 20})
  mcp__reddit__get_subreddit_hot_posts({subreddit_name: "Games", limit: 20})
  mcp__reddit__get_subreddit_top_posts({subreddit_name: "Games", time: "month", limit: 20})
步骤 3:并行分析评论

针对每个相关的帖子 ID,并行获取详细信息:

[Single Message - All Post Details]:
  mcp__reddit__get_post_content({post_id: "abc123", comment_depth: 3, comment_limit: 20})
  mcp__reddit__get_post_content({post_id: "def456", comment_depth: 3, comment_limit: 20})
  mcp__reddit__get_post_content({post_id: "ghi789", comment_depth: 3, comment_limit: 20})
  // ... up to 10-20 posts in parallel
步骤 4:情感分析引擎

针对每段内容(帖子标题、帖子正文、评论):

  1. 对文本进行分词和规范化

    • 转换为小写
    • 移除 URL 和特殊字符
    • 识别关键短语
  2. 应用情感评分

    function analyzeSentiment(text) {
      const positive_score = countMatches(text, POSITIVE_KEYWORDS);
      const negative_score = countMatches(text, NEGATIVE_KEYWORDS);
      const wish_score = countMatches(text, WISH_KEYWORDS);
    
      return {
        sentiment: determineOverallSentiment(positive_score, negative_score),
        confidence: calculateConfidence(positive_score, negative_score),
        wishes: wish_score > 0,
        aspects: extractAspects(text)
      };
    }
    
  3. 提取上下文和方面

    • 正在讨论什么名词/功能?
    • 用哪些形容词描述它?
    • 哪些动词表示行动/愿望?
步骤 5:生成报告

将结构化摘要保存到 /docs/reddit-sentiment-analysis-[topic]-[date].md

配置选项

基础分析(快速)
  • 子版块:1-2 个
  • 帖子:10-20 篇
  • 每篇帖子的评论:10-15 条
  • 时间:约 5 分钟
全面分析(深入)
  • 子版块:3-5 个
  • 帖子:40-60 篇
  • 每篇帖子的评论:20-30 条
  • 时间:约 15 分钟
竞品分析(广泛)
  • 子版块:5-10 个(包括竞品子版块)
  • 帖子:60-100 篇
  • 每篇帖子的评论:15-20 条
  • 时间:约 20 分钟

使用示例

示例 1:游戏情绪分析
User: "Analyze Reddit sentiment about Elden Ring"

Agent workflow:
1. Create todos for analysis pipeline
2. Identify subreddits: r/Eldenring, r/gaming, r/Games
3. Collect hot + top posts (parallel): 60 posts total
4. Fetch post details (parallel): 30 most relevant posts
5. Analyze ~500 comments for sentiment
6. Extract aspects: combat, difficulty, exploration, story, performance
7. Generate summary showing:
   - LIKES: Combat system (95%), exploration (92%), art direction (88%)
   - DISLIKES: Performance issues (67%), unclear quest objectives (54%)
   - WISHES: Better quest tracking, PC optimization, more checkpoints
8. Save report to docs/reddit-sentiment-analysis-eldenring-2025-01-26.md
示例 2:产品品牌分析
User: "What do people think about Tesla on Reddit?"

Agent workflow:
1. Create todos for brand analysis
2. Identify subreddits: r/teslamotors, r/electricvehicles, r/cars
3. Collect discussions mentioning "Tesla" (100 posts)
4. Analyze sentiment across aspects: quality, service, pricing, features
5. Generate brand perception summary:
   - LIKES: Autopilot, acceleration, software updates
   - DISLIKES: Build quality, service wait times, pricing
   - WISHES: Better quality control, more service centers, lower prices
   - Competitive position vs. other EVs

最佳实践

应该:
  • ✅ 分析多个子版块,获得平衡的视角
  • ✅ 同时包含热门和高赞帖子,兼顾时效性和质量
  • ✅ 阅读评论,而不只是帖子标题(评论蕴含丰富的情绪信息)
  • ✅ 提供直接引语作为证据
  • ✅ 用百分比和数量量化情绪
  • ✅ 按方面/功能整理,而不只是分为正面/负面
  • ✅ 将报告保存到 /docs/ 目录
  • ✅ 在单条消息中批量发送所有 API 调用
不应该:
  • ❌ 只分析一个子版块(存在偏差风险)
  • ❌ 忽略评论中的情绪(仅分析帖子是不够的)
  • ❌ 在没有引语证据的情况下下结论
  • ❌ 在一次分析中混合多个产品(容易造成混淆)
  • ❌ 将报告保存到根目录
  • ❌ 按顺序逐个发送 API 调用(应使用并行批处理)

高级功能

情绪的时间追踪

比较不同时间段的情绪:

[Parallel Time-Based Analysis]:
  get_subreddit_top_posts({time: "week"})
  get_subreddit_top_posts({time: "month"})
  get_subreddit_top_posts({time: "year"})

生成展示情绪变化趋势的报告。

竞品基准分析

同时分析多个产品:

[Parallel Competitive Analysis]:
  // Collect data for Product A
  // Collect data for Product B
  // Collect data for Product C

生成情绪对比矩阵。

特定方面的深入分析

聚焦于所有提及中的某项功能/方面:

// Filter all content mentioning "multiplayer" or "co-op"
// Analyze sentiment specifically about that aspect
// Generate aspect-focused report

输出文件

所有分析报告均保存到:

  • /docs/reddit-sentiment-analysis-[topic]-[date].md - 主报告
  • /docs/reddit-raw-data-[topic]-[date].json - 原始数据(可选)

与其他技能集成

此技能适用于:

  • competitive-analysis:使用情绪数据进行市场定位
  • product-roadmap:根据用户期望确定功能优先级
  • market-research:结合其他数据源
  • trend-analysis:追踪情绪随时间的变化

故障排除

问题:找到的帖子不够多

  • 解决方案:扩展到更多子版块,扩大时间范围

问题:情绪过于两极化(全部正面或负面)

  • 解决方案:检查子版块的偏向(粉丝子版块与综合子版块)

问题:分析中缺少关键方面

  • 解决方案:增加评论深度和数量上限

问题:分析耗时过长

  • 解决方案:减少帖子数量,只关注高赞帖子

总结

此技能通过以下方式,将非结构化的 Reddit 讨论转化为可采取行动的情绪洞察:

  1. 系统地收集相关帖子和评论
  2. 结合上下文和证据对情绪进行分类
  3. 提取讨论中的具体方面和功能
  4. 将各种模式汇总为结构化摘要
  5. 通过直接引语提供量化洞察
  6. 找出用户喜欢、不喜欢和期待的内容
  7. 交付可用于制定产品/业务决策的报告

输出内容将全面、基于证据地呈现社区情绪,助力产品开发、营销策略和竞争定位。

评论

支持 Markdown