小红书竞品热度
把小红书的竞品笔记数据变成可复算的对比结论:谁声量大、谁的互动质量高、各自在讲什么、 卖点各占哪块、自家该补哪个缺口。每个数字都能追到一条公式和一批原始记录。
核心原则:先给证据,再给位置
本技能不用模型感觉判断,只做确定性规则计算,因此有三条硬口径:
- 声量 = 记录条数(一条记录 = 该竞品的一篇笔记/一次提及),不是曝光量、不是互动总量。
- 卖点位置 = 该维度的提及证据率与全场均值比较(高于记「领先」、低于记「落后」、 相等记「持平」),不是品质结论。
- 没有证据就是没有证据:一条证据都没有记「未知」,不与「持平」「落后」混同。
一、何时使用
- 手上有几篇对标账号的笔记数据(曝光/点赞/评论/分享/收藏),想横向比一比
- 想知道竞品的互动质量差异,尤其是"收藏"这个小红书的核心信号
- 想把竞品的内容策略(形式/题材/钩子/节奏/证据/引导)拆成一张可读的表
- 想知道自家在哪些卖点上没有提及证据、哪些卖点全场都没人占位
- 需要一份能直接发出去的竞品对比报表
不适用:本技能不抓数据、不登录小红书、不代发布、不做跨平台迁移判断。数据必须由你提供。
二、输入方式与关键参数(全离线)
| 方式 | 用法 |
|---|---|
| 导入导出 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 |
产物默认落盘到当前目录 xiaohongshu-competitor-out/。report 产出的 report.html 是一份可直接用浏览器打开的网页报表。
真实路径以返回的 files 字段为准。
四、小红书特有的判断依据
| 维度 | 小红书机制 |
|---|---|
| 可比指标 | 曝光量(别名含 曝光/观看量/阅读量/views)、点赞、评论、分享、收藏;竞品标识列(作者/昵称/博主)是必需的 |
| 收藏是核心信号 | 档案把 collect_to_like(收藏/赞)的权重给到 0.25,全场最高:小红书的收藏代表"有用",是与点赞不同的信号 |
| 权重侧重 | 收藏/赞 0.25、互动率 0.2、评论占比 0.15、评论/曝光比 0.15、水分惩罚 0.15、转发/赞 0.1(权重和 = 1) |
| 水分代理 | 引擎只算一条可计算代理:转发压力 × 评论真空。档案里的"互赞互藏群""薯条投放痕迹"等是文档数据,引擎不算 |
| 声量口径 | 记录条数;份额 = 该竞品条数 / 全部条数 |
| 语言 | 口语+emoji 分段、负面表达委婉("有点小踩雷");词典已收录「拔草」「空瓶」等小红书用法 |
上表"权重侧重"就是
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就不产出自家的"追赶缺口"类结论(不猜自家是谁)。
Scan to join WeChat group