knowledge-vault/sources/references/AI学习笔记/OpenClaw/我让openclaw做了一个B站弹幕分析工具自动抓取词...

193 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 我让openclaw做了一个B站弹幕分析工具自动抓取词云情感分析舆情报告开源
大家好最近我让openclaw把我自己在内容运营里常用的一套“弹幕分析流程”做成了一个可复用的小项目
👉 **bilibili-danmaku**
GitHub[https://github.com/Smartloe/bilibili-danmaku](https://link.zhihu.com/?target=https%3A//github.com/Smartloe/bilibili-danmaku)
核心目标很直接:
* 给我一个 B 站视频链接
* 自动抓取弹幕
* 自动做分词清洗
* 自动输出词云图 + 情感分析 + 舆情报告
适合做内容复盘、热点观察、用户反馈提炼。
一、这个项目解决了什么问题?
--------------
日常做视频复盘时,常见痛点是:
1. **弹幕采集麻烦**:每次手动导出/复制,效率很低。
2. **词云质量不稳定**:不清洗会被“哈哈哈/666/这边那边”污染。
3. **舆情判断缺标准**:没有统一口径,沟通时容易“拍脑袋”。
这个项目把整条链路打通了:
> 抓取 → 清洗 → 关键词 → 词云 → 情感 → 报告
---
二、功能特性
------
* ✅ 自动解析 `BVID -> CID`,抓取弹幕 XML
* ✅ 导出结构化数据CSV / JSON / TXT
*`jieba` 分词 + 干扰词清洗
*`SnowNLP` 情感分析(正/中/负分布)
*`wordcloud` 生成高密度中文词云 PNG
* ✅ 自动生成 Markdown 舆情报告
三、项目结构
------
```
bilibili-danmaku/
├── SKILL.md
├── README.md
├── README.en.md
├── requirements.txt
├── scripts/
│ ├── ensure_env.sh
│ ├── fetch_danmaku.py
│ ├── fetch.sh
│ ├── analyze_danmaku.py
│ └── analyze.sh
├── references/
│ ├── methodology.md
│ └── stopwords.default.txt
└── output/
```
四、在 OpenClaw 里一键使用(推荐)
----------------------
如果你本身就在用 OpenClaw最省事的方式是直接从 ClawHub 安装:
```
clawhub install bilibili-danmaku
```
安装后开启一个新的 OpenClaw 会话,直接给视频链接即可调用技能完成:
* 弹幕抓取
* 词云生成
* 情感分析
* 舆情报告输出
五、源码方式3 步)
-----------
### 1安装依赖
```
cd bilibili-danmaku
bash scripts/ensure_env.sh
```
### 2抓取弹幕
```
python3 scripts/fetch_danmaku.py \
--url "https://www.bilibili.com/video/BV17JfuBqEqg" \
--outdir "./output"
```
支持短链:
```
python3 scripts/fetch_danmaku.py --url "https://b23.tv/gO0nMGs" --outdir "./output"
```
### 3分析并出报告
```
bash scripts/analyze.sh \
"./output/<xxx>_danmaku.csv" \
"./output/<xxx>_meta.json" \
"./output" \
"task_name"
```
输出文件:
* `task_name_top_words.json`
* `task_name_sentiment.json`
* `task_name_wordcloud.png`
* `task_name_report.md`
六、为什么这版词云更“干净”?
---------------
我在分词后做了数据清洗,重点是四件事:
1. **停用词过滤**:默认词表 + 自定义词表
2. **噪声词过滤**:比如 `哈哈哈 / 233 / 666 / 纯符号`
3. **token 规范化**:别名合并、重复字符压缩
4. **高文档频率短词剔除**:去掉“出现太广但信息量低”的词
你还可以临时追加干扰词:
```
./.venv/bin/python scripts/analyze_danmaku.py \
--csv "./output/<xxx>_danmaku.csv" \
--meta "./output/<xxx>_meta.json" \
--outdir "./output" \
--name "task_clean" \
--extra-stopwords "妈妈,亲戚,那边,这边"
```
七、情感分析怎么做?
----------
使用 `SnowNLP`,每条弹幕都会得到一个 `0~1` 的情绪分:
* `>= 0.60`positive
* `<= 0.40`negative
* 中间neutral
最后汇总成:
* 正向/中性/负向占比
* 平均情绪分
* 代表性正负样本
这对“选题复盘”和“评论区风向判断”很实用。
八、适用场景
------
* 内容运营:复盘某条视频的用户反馈
* 新媒体团队:快速形成“可汇报”的舆情材料
* 创作者:看粉丝关注点与争议点
* 数据分析同学:做多视频横向对比
九、我自己的使用建议
----------
如果你要把它用于日常工作流,我建议:
1. **先跑单视频**,确认数据链路与参数
2. **再跑批量视频**,做横向对比
3. 维护一个自己的 `stopwords` 词表(按垂类持续迭代)
4. 报告里优先看三件事:
* 情绪结构是否异常
* 高频词是否偏离内容定位
* 负向样本是否集中在某个可改进点
十、开源地址
------
如果你刚好也在做内容分析,欢迎直接拿去用:
🔗 GitHub[https://github.com/Smartloe/bilibili-danmaku](https://link.zhihu.com/?target=https%3A//github.com/Smartloe/bilibili-danmaku)
欢迎提 issue / PR一起把它打磨成更顺手的中文内容分析工具。🚀
十一、免责声明
-------
请遵守 B站平台规则与相关法律法规。
本项目仅用于公开数据分析与研究,不用于违规抓取和滥用。