feat(classify): super-linear positive weighting by hit count

正向改为按命中次数 n(require_title + reaction + charge + weak)做平方加权,使多信号同现的真 reaction 不被单个负向词打穿(1+1>2、1+1+1>5);标题不含 require_title 直接 0 分。库内 796 条有效视频复测:线以下误伤由 47 降至 14。
This commit is contained in:
kairee committed 2026-11-01 19:08:59 +08:00
1 parent 742c67a1c3
commit 337e379514
4 files changed
+78 -75

No files matched your search

+14 -11
View File
@@ -257,19 +257,21 @@ Telegram 私聊发链接/BV 号 ───┘
```
# 硬门槛
title 含 "咻咻满"(全半角/大小写归一化后),否则直接丢弃
title 含 "咻咻满"(全半角/大小写归一化后),否则直接 0 分(丢弃)
up_mid 命中黑名单 → 直接排除(永不通知,连候选池都不进)
score = 0
+3 标题同时含 "咻咻满" 与 reaction|反应(强正向;只含 reaction 不成立)
+3 标题含 加急|特急|充电|专场|转场 中任意 >=2 个
+1 标题含其中恰好 1 个
+1 标题含 双人|路人|第一次|首次(弱正向)
+2 时长 > 60 分钟(仅当已命中 reaction 或 charge 时计入)
+1 时长 > 30 分钟(同上,与上一条不叠加,取大)
-6 标题含 歌切|切片|纯享|搬运|完整版|录播|录像
-6 标题带日期(2026-10-28 / 2026/10/25 / 2026.10.26 / 2024年11月24日 / 10月25日)
-3 UP 为 咻咻满本人(mid=37754047)
# 正向命中次数 n(每个命中记 1)
n = 1 # 标题含 "咻咻满"
+ count(reaction|反应)
+ count(加急|特急|充电|专场|转场)
+ count(双人|路人|第一次|首次)
score = n * n # 超线性:1→1、2→4、3→9、4→16(1+1>2、1+1+1>5)
+ 2 # 时长 > 60 分钟(与下一条不叠加,取大)
+ 1 # 时长 > 30 分钟
- 6 # 标题含 歌切|切片|纯享|搬运|完整版|录播|录像
- 6 # 标题带日期(2026-10-28 / 2026/10/25 / 2026.10.26 / 2024年11月24日 / 10月25日)
- 3 # UP 为 咻咻满本人(mid=37754047)
通知阈值 = 4
0 <= score < 4 且含"咻咻满" → 进看板"候选池"(7 天后删除),不通知
@@ -279,6 +281,7 @@ score < 0 → 丢弃
**几条设计依据**:
- **强正向必须"咻咻满 + reaction"同现**:B 站搜索会命中标题根本不含关键词的结果(简介/标签/相似内容),所以"标题含 reaction"本身不足以判定为高置信,必须与 `require_title` 同时成立;
- **正向按命中次数超线性加权(n²)**:多个正向词同现(如"咻咻满 + reaction + 充电")时不能简单线性和,否则一个负向词(-6)就能把多信号真 reaction 打到线下;`1+1>2`、`1+1+1>5` 用平方实现;
- **"听/看"等宽泛词已移除**:几乎所有 reaction 标题都含,无区分度;
- **时长只在已命中 reaction/charge 时加权**:避免"完整录播/直播录像"这类既无 reaction 也无 charge 的长视频仅靠时长进池;
- **带日期的标题按强负向处理**:`2026-10-28`、`10月25日` 这类通常对应某场直播的录播/回放/录像/自用收藏;实测对真 reaction 标题零误伤,代价是极少数"真 reaction 恰好写日期"会被漏掉;