# Comment Intel

> 评论区情报一站式 skill。当用户说「分析我的评论区」「看看大家关心/焦虑什么」「评论区图谱」「采集评论并分析」「每日评论区情报」「多平台评论区监控」「分析这个视频/账号的评论」「市场调研」「需求探索」「竞品评论区分析」「用户研究」时使用。单次调用自动完成：判定数据来源 →（B站/小红书/抖音/YouTube/X/Reddit 多平台采集公开评论，只读）→ 格式化为标准输入 → 定制关注点词表 → 逐条抽取（识别阴阳怪气/提问/成果汇报）→ 建图渲染出可交互知识图谱（atlas.html + graph.json）→ 交付关注点 TOP、内容缺口选题、共现簇、金句库、成果案例。也支持每日定时情报简报：多平台关键词采集 → 分析 → 生成飞书文档发送。完全自包含，不依赖其他 skill。适用于内容创作、市场调研（竞品评论区=免费焦点小组）、需求探索（提问=未被满足的需求）、用户研究与品牌舆情。

- Skill: `0hang/comment-intel` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add 0hang/comment-intel`
- Raw SKILL.md: https://api.skillmd.com/api/skills/0hang/comment-intel/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: 0hang (https://skillmd.com/u/0hang)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/0hang/comment-intel

---


# Comment Intel — 评论区情报

把「评论区」从散装文本变成可交互、可追溯的知识图谱，并产出可直接用的内容结论。**单 skill 自包含**：采集路由、格式化、抽取规范、建图渲染、简报交付全部内置，不依赖任何外部 skill。

核心主张：**单条评论没有价值，评论之间的关系才有。** 谁在关心什么、哪些关注点总是一起出现、哪些提问从来没被回答过——连成网络才看得见。

## 两种用法

| 场景 | 走哪条路 |
|---|---|
| 用户给了平台链接 / 平台关键词 / 本地评论文件 | **即时分析**（第 0-7 节） |
| 每日定时跑多平台关键词情报 | **每日简报**（第 8 节） |

## 工作目录

在任务目录下运行全部命令（不要写进 workspace）。`scripts/`、`data/` 相对路径以任务目录为基准。本 skill 的脚本可按需复制到任务目录 `scripts/` 子目录运行（脚本用 `__file__` 定位根目录）。

## 0. 判定数据来源

| 用户给了什么 | 走哪条路 |
|---|---|
| 平台链接 / 平台关键词（B站/小红书/抖音/YouTube/Reddit/X） | 采集路 → 第 1 节 |
| 本地评论文件（JSON / CSV / 纯文本） | 直用路 → 第 2 节 |
| 什么都没给 | 先问一句要哪个来源，不要自己猜 |

## 1. 采集（可选）— 读 references/collect.md

按 `references/collect.md` 路由表采集评论，声明「使用 comment-intel 的 X 平台 / Y 通道」。单平台单视频数据可加 `--video-id/--video-title/--play` 参数补元数据。

**边界**：不写爬虫；登录态平台用专用小号、只读不写；采集结果存任务目录；单平台失败跳过并在简报注明，不中断整体。

## 2. 格式化（确定性脚本，必须跑）

```bash
python scripts/format_comments.py <采集文件或用户文件> --out-dir <任务目录>/data
```

产出 `data/comments_raw.json`（视频元数据，build_graph.py 必需）+ `data/comments.txt`（每行 `视频ID\t点赞\t正文`）。
脚本只做整理，不改写评论原文。解析失败（如没有 text 字段）时按报错修正输入，不要静默跳过。

## 3. 定制词表（不能跳）

采样 30-50 条评论通读一遍，把 `references/schema.md` 的关注点/人群/应对词表改成贴合这批数据的版本。
不同账号/方向的评论区维度完全不同，用通用词表抽出来的图谱是废的。

## 4. 逐条抽取（LLM 干）

按 `references/schema.md` 对 `data/comments.txt` 每条评论抽取结构化字段，每条一个 JSON 对象：

```json
{"aweme_id":"视频ID","i":0,"text":"评论原文","like":123,
 "concerns":["关注点"],"persona":"人群或null","stance":"情绪立场",
 "metaphor":"隐喻或null","coping":["应对策略"],
 "is_sarcasm":false,"is_ask":false,"is_win":false}
```

规则（照抄 schema.md，此处只列关键）：
- `text` 必须原样复制，一旦改写就失去证据价值
- `concerns` 只抽真实存在的东西，宁缺勿造；纯玩梗/打招呼/夸奖 → `[]`
- `is_sarcasm`（字面正向实际负面=阴阳怪气）、`is_ask`（提问=内容缺口）、`is_win`（成果汇报=正反馈）三个信号必填
- 评论超过 200 条切成每批 ~130 条并行抽取，每个批次写独立的 `data/extracted_<n>.json`
- 输出直接以 `[` 开头 `]` 结尾的 JSON 数组，不要包 markdown 代码块、不要解释文字

## 5. 建图 + 渲染

```bash
python scripts/build_graph.py   # 读 data/extracted_*.json + comments_raw.json → data/graph.json
python scripts/render.py        # → atlas.html（零依赖单文件，双击即开）
```

每条边都挂评论原文作为证据——图谱里任何一个结论都能点回到具体是谁说的哪句话。没有证据的边不要建。

## 6. 发布（可选）

```bash
python scripts/export.py        # GitHub Pages 版 / README mermaid / digest.md / llms.txt
```

**发布前必须告知用户**：graph.json 含评论原文（虽无昵称 UID），公开仓库前由用户决定。

## 7. 交付解读（别只丢一个 HTML）

主动给这几项结论：
- **关注点 TOP 榜** — 按提及次数排
- **内容缺口** — `is_ask` 密集但视频从没正面回应过的关注点 = 被验证过需求的选题
- **共现簇** — 总是一起出现的关注点
- **金句库** — 高赞 metaphor，可当标题/结尾
- **成果案例** — `is_win` 评论，是最好的社会证明素材

## 8. 每日情报简报（定时任务用）

多平台关键词采集 → 同一套分析流水线 → 飞书文档交付。步骤：

1. **采集**：按 `references/collect.md` 对约 30 个关键词跑多平台（抖音 douyin MCP / 小红书 opencli / X twitter-cli / YouTube yt-dlp+代理 / B站 scripts/bili_collect.py / Reddit subreddit+read），全部只读。
2. **格式化 + 词表定制 + 逐条抽取 + 建图渲染**：同上第 2-5 节。
3. **产出飞书文档**（用 lark-doc 能力创建），标题「每日自媒体评论区情报 YYYY-MM-DD」，正文包含：
   - ① 当日关注点 TOP 榜（按提及次数，附次数）
   - ② 内容缺口选题（is_ask 密集但未被回应的关注点）
   - ③ 共现簇（总是一起出现的关注点）
   - ④ 金句库（高赞 metaphor，可直接当标题/结尾）
   - ⑤ 成果案例（is_win 评论）
   - ⑥ 数据来源与未采集平台说明（含各平台登录态状态）
4. **交付**：把飞书文档链接发送给用户。
5. **失败处理**：单平台登录态/网络失败时跳过该平台并在简报注明，至少输出成功平台结果；全部失败则向用户说明原因。日志与中间产物保留在任务目录。

## 已知限制（对用户透明）

- 平台后台通常不提供单条评论时间戳和回复链 → 做不了评论级时间轴和「情绪升级链」
- 真实评论区约 40% 带信息量，图谱反映的是那部分
- 小红书/抖音/X 依赖浏览器或 CLI 登录态；Cookie 只存本地不上传，失效时需重新登录


