小红书爆款选题雷达
按预设关键词池全自动挖掘 6 条互不重复的爆款标题与选题,五步流水线一次跑完:
关键词检索 → 时间窗过滤(近30天) → 互动加权Top30 → 语义去重 → 爆款六选
↑ ↓
不足6条:自动扩窗 30→60→90→120→150→180 天重筛
6条内有重复:选题级二次去重 → 依序补位
默认配置(用户未特别说明时严格遵守)
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 关键词池 | 素养智学、少儿英语、剑桥、少儿口才、KET、PET、线上课、线下课 | 8个词,可由用户输入覆盖 |
| 初始时间窗 | 近30天 | 窗口内发布时间过滤 |
| 互动权重 | 评论×5 > 收藏×3 > 点赞×1 | 评论是转化/争议/求助的最强信号,收藏次之,点赞最弱 |
| 高互动榜单 | Top 30 | 加权分排序取前30 |
| 语义去重阈值 | 0.72 | 标题级(bigram余弦+序列匹配组合相似度) |
| 最终产出 | 6 条 | 两两不重复的爆款标题与选题 |
| 扩窗阶梯 | 30→60→90→120→150→180 天 | 不足6条时逐级扩窗,上限180天 |
执行流程(Agent 按序执行)
第一步:确认参数
- 用户未指定关键词时,使用默认8词池;用户给出关键词则以其为准
- 用户未指定时间窗时,默认近30天
- 禁止擅自扩展、替换用户关键词;禁止跳过任何步骤
第二步:运行主脚本
python scripts/fetch_xhs_ranked.py
> ⚠️ 新人提示:若尚未配置 REDFOX_API_KEY,先加 --demo 跑通验证(无需任何密钥):
> python scripts/fetch_xhs_ranked.py --demo rich
> 验证无误、准备拉真实数据时,再配置 Key 并去掉 --demo。
常用参数(均已在脚本内内置默认值,无特殊需求不传参):
- --keywords "词1,词2" 覆盖关键词池
- --window 30 / --max-window 180 初始窗口与扩窗上限
- --top 30 / --final 6 榜单与最终条数
- --weights 5,3,1 评论,收藏,点赞权重(脚本强制校验 评论>收藏>点赞)
- --sim-threshold 0.72 去重阈值
- --demo [rich|sparse] 演示模式:无 API Key 时用内置仿真数据体验全流程
脚本自动完成:关键词分批检索(每批≤5词)→ 窗口过滤 → 加权排序 → Top30 → 标题级语义去重 →
爆款六选(含选题级二次去重:6条候选以"标题+简介"联合文本再判重,有淘汰即依序补位)→
不足6条自动扩窗重筛。产出 <prefix>_report.md(报告)与 <prefix>_detail.json(明细)。
第三步:向用户汇报(必须输出)
- 数据说明:每轮窗口获取条数、扩窗过程(如"近30天获22条,去重后唯一19条,已凑满6条")
- Top30 加权逻辑:说明 评论>收藏>点赞 权重已生效(高评论笔记反超高点赞笔记)
- 去重明细:标题级淘汰了哪些重复对及相似度;六选时是否有选题同质淘汰与补位
- 最终6条爆款选题卡片:每条包含——
- 标题原文 + 原笔记链接
- 选题赛道(命中的关键词)
- 评论/收藏/点赞/加权分
- 选题角度解读(Agent分析):该笔记为什么爆、可借鉴的结构/痛点/人群、用户可复用的选题方向 - 若扩窗到180天仍不足6条,如实说明并建议(扩充关键词池/降低阈值)
第四步:选题深化(用户需要时)
基于6条爆款给出用户自己的选题建议时:
- 借鉴爆款结构(如"一张表对比""避坑指南""X个真相"),不照抄原文
- 教育类选题注意合规表述:不承诺效果、不制造焦虑、符合广告法与"双减"要求
鉴权(实战模式)
数据源与 xiaohongshu-title-score 同源(同一个红狐 Hub API Key);但本 skill 脚本完全自包含,单独安装即可运行,无需先安装 title-score。
环境变量 REDFOX_API_KEY(红狐Hub https://redfox.hk)。
- 脚本自动依次尝试:进程环境变量 → Windows注册表用户级变量(HKCU\Environment)→ shell配置文件
- 均未配置时脚本给出配置指引;演示模式 --demo 无需 Key 即可跑通全流程
- Windows 永久配置:[Environment]::SetEnvironmentVariable('REDFOX_API_KEY','<你的apikey>','User')
用词规范
- 禁止:"爬取"、"抓取";替代:"获取"
- 数据不足自动扩窗时禁止换词,只扩时间范围
关键机制说明
互动加权(评论>收藏>点赞)
加权分 = 评论数×5 + 收藏数×3 + 点赞数×1。点赞最容易获得(权重最低);收藏代表"想再看/有用"
(次强);评论代表真实讨论、提问、争议(最强转化信号)。这使得评论驱动的笔记能反超点赞虚高的笔记。
语义去重子模型(scripts/semantic_dedup.py)
- 组合相似度 = 0.6×字符bigram余弦 + 0.4×序列匹配比率,归一化标点后计算
- 两轮去重:
1. 标题级(Top30 内):淘汰同题换词(如"攻略/指南"、"免费/无偿"洗稿)
2. 选题级(Top6 候选,标题+简介联合文本):淘汰"标题不同但内容同质"的选题,淘汰后依序补位 - 贪心保留:重复簇中保留互动加权分最高者
- 阈值 0.72 经标定:≥0.72 判重(如"备考全攻略"vs"备考全指南"=0.84),0.6~0.72 保守放行
扩窗策略(不足6条时)
30→60→90→120→150→180 天逐级重筛,每轮复用累积数据池(photoId 去重),凑满即停,报告如实记录每轮窗口与数据量。
使用示例
- 输入:「跑一遍选题雷达」
→ 默认8词池+近30天 → 报告数据获取与扩窗情况 → Top30 说明 → 去重明细 → 6条爆款选题卡片(含选题角度解读) - 输入:「只看KET和PET近30天」
→--keywords "KET,PET",其余流程一致 - 输入:「我关心评论多的真实讨论,权重调狠一点」
→--weights 8,3,1(仍满足 评论>收藏>点赞) - 输入:「数据不够就往回多看点」
→ 已内置:不足6条自动扩窗至最多180天,无需额外参数
资源索引
- 主脚本:scripts/fetch_xhs_ranked.py(五步流水线全自动,零第三方依赖)
- 语义去重子模型:scripts/semantic_dedup.py(可独立复用的去重模块,含自测入口)
- 权重与去重原理:references/guide.md(权重设计依据、阈值标定、扩窗策略)