微博竞品热度
把微博的竞品博文数据变成可复算的对比结论:谁声量大、谁的互动质量高、各自在讲什么、
卖点各占哪块、自家该补哪个缺口。每个数字都能追到一条公式和一批原始记录。
核心原则:先给证据,再给位置
本技能不用模型感觉判断,只做确定性规则计算,因此有三条硬口径:
- 声量 = 记录条数(一条记录 = 该竞品的一条博文/一次提及),不是阅读量、不是转发量。
- 卖点位置 = 该维度的提及证据率与全场均值比较(高于记「领先」、低于记「落后」、
相等记「持平」),不是品质结论。 - 没有证据就是没有证据:一条证据都没有记「未知」,不与「持平」「落后」混同。
一、何时使用
- 手上有几个微博对标账号的博文数据(阅读/点赞/评论/转发),想横向比一比
- 想知道竞品的互动质量差异,同时排掉"转发抽奖"类博文撑起来的虚高
- 想把竞品的内容策略(形式/题材/钩子/节奏/证据/引导)拆成一张可读的表
- 想知道自家在哪些卖点上没有提及证据、哪些卖点全场都没人占位
- 需要一份能直接发出去的竞品对比报表
不适用:本技能不抓数据、不登录微博、不代发布、不做跨平台迁移判断。数据必须由你提供。
二、输入方式与关键参数(全离线)
| 方式 | 用法 |
|---|---|
| 导入导出 CSV(推荐) | --csv 微博竞品导出.csv(必须能映射到竞品标识列,如 作者/昵称/博主) |
| 粘贴一批文案 | `--text "博文一 |
博文二" --author 竞品甲(--author` 给这一批文案打上竞品标识) |
|
| 固定时间基准 | --now 2026-09-17(把 3小时前 这类相对时间换成绝对时间;保证同输入同输出) |
| 覆盖权重与词典 | --config 我的权重.json(顶层键与 data/competitor.json 一致,字典逐键合并) |
| 指定自家 | --self 自家账号名(写数据里作者列的名字;不传则不猜自家,见 §五) |
CSV 表头不用改:脚本内置别名映射,阅读量/阅读/展现量/views 都能识别。
未识别的列会在结果里列出,不会静默丢弃。
三、命令
bash ${CODEBUDDY_SKILL_DIR}/run.sh sov --csv 微博竞品导出.csv
bash ${CODEBUDDY_SKILL_DIR}/run.sh quality --csv 微博竞品导出.csv
bash ${CODEBUDDY_SKILL_DIR}/run.sh strategy --csv 微博竞品导出.csv
bash ${CODEBUDDY_SKILL_DIR}/run.sh matrix --csv 微博竞品导出.csv
bash ${CODEBUDDY_SKILL_DIR}/run.sh gaps --csv 微博竞品导出.csv --self 自家名
bash ${CODEBUDDY_SKILL_DIR}/run.sh report --csv 微博竞品导出.csv --self 自家名
| 命令 | 做什么 | 产物 |
|---|---|---|
sov |
声量份额对比(按记录条数) | sov.csv |
quality |
互动质量分(扣抽奖转发水分) | 不落盘(只看控制台 / JSON) |
strategy |
内容策略拆解(形式/题材/钩子/节奏/证据/引导) | strategy.md |
matrix |
卖点差异矩阵(位置表 + 证据表) | matrix.md |
gaps |
机会缺口识别 | gaps.md |
report |
对比报表(含上面全部五块) | report.html |
产物默认落盘到当前目录 weibo-competitor-out/。report 产出的 report.html 是一份可直接用浏览器打开的网页报表。
真实路径以返回的 files 字段为准。
四、微博特有的判断依据
| 维度 | 微博的机制 |
|---|---|
| 可比指标 | 阅读量(别名含 阅读/展现量/曝光量/views)、点赞、评论、转发;竞品标识列(作者/昵称/博主)是必需的 |
| 没有收藏 | 微博渠道档案把 collects 标为 not_applicable:即便你的导出表带了收藏列,它也不进任何信号,collect_to_like 恒进"未评估"(原因写"该渠道无此指标",与"用户没给"分开) |
| 权重侧重 | 互动率 0.25、评论占比 0.22、评论/阅读比 0.18、转发/赞 0.15、水分惩罚 0.15、收藏/赞 0.05(该支恒不可算) |
| 水分代理 | 引擎只算一条可计算代理:转发压力 × 评论真空(转发抽奖的数值版)。档案里的"水军账号特征""控评刷屏"等是文档数据,引擎不算 |
| 声量口径 | 记录条数;份额 = 该竞品条数 / 全部条数 |
| 语言 | 短文本、公开转发链、观点对立被放大;词典已收录「转发抽奖」「拉踩」等微博用法 |
> 上表"权重侧重"就是 data/competitor.json 里实际参与打分的权重,不是参考区间。
> 算不出来的信号(缺列、比值为 0 无定义、渠道无此指标)会进结论顶部的"未评估"清单,
> 原因分三类写清,绝不拿 0 顶替。
五、不传 --self 会怎样(明确说清)
--self 是"你自己是哪个竞品",取值必须是数据里作者列的名字(如 --self 自家官微)。
- 不传
--self时引擎不会猜自家是谁(猜错比不猜更糟:会生成一条假的"自家落后"结论)。 - 此时
gaps只会给出两类缺口:无人占位(全场都没有该维度的证据)与
需自家标识(有领先者,但不知道自家在哪);不会产出「追赶缺口」。 - 自家位置一栏显示
未能判定,并在 JSON 的self_note与gaps.md的「口径」段明说原因。 --self写了数据里不存在的名字,会得到E_NO_DATA(退出码 1)并列出数据里真实有哪些竞品。
六、互动质量信号怎么算
| 信号 | 公式 | 算不出的条件 |
|---|---|---|
engagement_ratio |
(赞+转+评)/阅读量 | 阅读量缺失或为 0 |
comment_share |
评论/(赞+转+评) | 三者全缺 |
share_to_like |
x/(1+x),x = 转发/赞 |
赞缺失或为 0 |
collect_to_like |
x/(1+x),x = 收藏/赞 |
赞/收藏缺失或为 0;微博无收藏 ⇒ 恒为"未评估" |
comment_per_view |
评论/阅读量 | 阅读量缺失或为 0 |
suspicion_penalty |
转发压力 × 评论真空 = bounded(转发/赞) × (1 − 评论占比) |
任一因子算不出 |
无界量先做 x/(1+x) 有界变换,所有信号都落在 [0,1],权重才有"重要性"的含义;
score = Σ 权重 × 信号值 − 权重 × suspicion_penalty,不做归一化,
所以分低与"没数据"是分开报的(另给"权重覆盖率")。
七、明确的边界(不许美化)
- 不联网、不登录、不抓取、不代发布。 数据只在本机读取,不上传;本技能只分析你提供的这一个渠道的数据,因此不做跨渠道对比,也不做跨平台迁移判断(单渠道离线技能在结构上拿不到别的渠道数据)。
suspicion_penalty是启发式:由引擎按固定公式(转发压力 × 评论真空)计算,
是"转发极高 + 评论极低"的数值代理,不是平台官方口径,也不等于"判定买量/买热搜"。- 声量 = 记录条数,不是阅读量、不是转发量。导出多少条记录直接决定声量份额。
- 卖点矩阵的相对位置是"该维度的提及证据率"对比,不是品质结论:
「领先」只说明该竞品的文案里提到该卖点的比例高于全场均值。 format(形式)与cadence(节奏)两维经常「未能判定」:账号级信息
(发的是图文还是短视频、多久更一次)通常不在博文正文里。
这两维判不出就是判不出,不会硬猜。- 词典法未在真实语料上校准:策略维度与卖点维度都是确定性的关键词命中,
没命中记「未能判定」。本技能不声称任何准确率。 - 权重与词典是行业参考值,非平台官方数据,请用
--config按自己的历史数据覆盖;
用了默认值会在结论顶部标注。 - 没有
--self就不产出自家的"追赶缺口"类结论(不猜自家是谁)。