# 案例:契合度阈值 0.7 到底拦住了什么 > 这是白鲸台里最容易被误解的一个数字。它不是「推荐像不像」,而是**「够不够格去打扰你」**的门槛。 > 下面全部是实测数据,不是估算。 ## fitScore 怎么算 ``` 五路材料,各自可信度不同: 标题 权重 2 (最直接) 简介 权重 1 字幕 权重 1.5 (视频本人说了什么) 画面描述 权重 1 (抽帧给多模态模型的描述) 弹幕 权重 0.6 (只是观众反应,最弱) raw = Σ min(画像词权重, 12) × min(1, 来源权重/2) score = 1 − e^(−raw/6) ← sigmoid,压到 0–1 ``` 匹配用**包含式**,不用分词。这一条是踩出来的: > 第一版拿 `tokenize()` 的结果去比,它把「原神新角色PV」整串切成一个词, > 跟画像里的「原神」永远对不上 → **所有条目得分 0.00**,看起来像「模型判断全都不相关」, > 实际是匹配写错了。 ## 实测分布(`mentionThreshold` 默认 0.7) | 内容来源 | fitScore | 过 0.7? | | --- | --- | --- | | 标题命中画像词 | 0.81 | ✓ | | 字幕命中 | 0.71 | ✓ | | 只有画面描述命中 | 0.57 | ✗ | | 只有弹幕命中 | 0.39 | ✗ | | 完全无关 | 0.00 | ✗ | 结论:**0.7 等价于「标题或字幕里必须出现画像词」。** ## 把阈值降到 0.5 会发生什么 会开始放进「只有画面命中」的条目(0.57)。这类最危险: - 弹幕出现「原神」不代表这视频讲原神,可能只是有人刷梗; - 画面像美食但内容在讲历史,抽帧描述会出现误命中。 所以 0.5 → 0.7 之间,多出来的不是「更多推荐」,是**更多误打扰**。 宁可这次不 @,也不要 @ 一条你不关心的。 ## 为什么阈值和概率是两个开关 - `mentionThreshold`(默认 0.7):**够不够格**。不够格连骰子都不掷。 - `mentionChance`(默认 0.5):够格之后**这次要不要真的打扰你**。 两个都留着,是因为「全部命中的都 @」会烦人,「全部不 @」等于没这功能。 分开调之后,可以做到「够格的 100% 记录、50% 提醒」。 ## 怎么自己验证 1. 「学习」页填几个手动话题(权重最高,每个 +6),或粘两条你喜欢的 BV 号; 2. 跑一轮,「记录」页能看到每条视频的取材来源; 3. 把 `mentionThreshold` 调到 0.9,跑几轮,观察日志里「这次不打扰主人」的频率; 4. 再调到 0.5 对比。差异就是这篇文档里那张表。 代码:`index.js` 的 `fitScore()` / `mentionThreshold`(MIT,随便改)。