修复:口语填充词导致关键词覆盖率误判 + OCR早期昵称剥离
【问题1】关键词覆盖率虚高
查询"有个问题。他们常用的登录插件是在哪里下载的?":
- 修复前:core_kw含{'有个','问题','常用','登录','下载'}共5词
- sdf1_login heading"### 2.1 下载"仅命中1词
- 阈值=max(1,(5+1)//2)=3 → 1<3 → 误拒绝
- 修复后:'有个','问题','常用'加入non_core_kw
- core_kw只剩{'登录','下载'}共2词,阈值=1
- heading含"下载" → 1/2 ≥ 1 → 通过 ✓
【问题2】昵称污染早期处理链路
昵称"草原探险服务器备用号"在OCR原始文本中会污染:
- _ocr_text_has_fresh_timestamp时间戳检测
- 行合并逻辑
- _split_and_denoise_segments分段
修复:在_process_ocr_output开头(垃圾检测之前)调用_strip_qq_nickname
确保所有后续步骤都不受昵称字符干扰
新增non_core_kw词条:'有个','问题','常用','他们','各位','大家','小伙伴'
This commit is contained in:
@@ -261,6 +261,10 @@ class AutoReply:
|
||||
'相关联', '相关', '有关', '以及', '以及',
|
||||
# 口语语气词/助动词(用户常用"问问""能够""可到"等口语表达)
|
||||
'问问', '问一嘴', '打听一下', '能够', '可以到',
|
||||
# 口语填充词/主谓占位(2026-08-16 新增)
|
||||
# "有个问题"——"有个""问题"是语气填充,不应计入核心词
|
||||
# "他们常用的"——"他们""常用"是语法修饰,不影响查询意图
|
||||
'有个', '问题', '常用', '他们', '各位', '大家', '小伙伴',
|
||||
}
|
||||
core_kw = q_mean - non_core_kw
|
||||
doc_text = heading_clean + " " + title.lower() + " " + body_clean[:800]
|
||||
|
||||
@@ -3165,6 +3165,12 @@ class MessageMonitor:
|
||||
logger.warning(f"[{platform}] 跨窗口污染({_hit}/{len(_cross_pollution_markers)}标记),丢弃整批")
|
||||
return []
|
||||
|
||||
# ⭐ 2026-08-16: 早期基础昵称剥离——在垃圾检测/时间戳检测/行合并等所有后续处理之前执行。
|
||||
# 防止 OCR 原始文本中的昵称污染时间戳检测、行合并等早期步骤。
|
||||
# 例如:"草原探险服务器备用号,@游戏专用有个问题..." 中的昵称会被提前剥离,
|
||||
# 避免昵称字符干扰后续时间戳解析(如"备用号"中的数字被误读为时间戳片段)。
|
||||
raw_text = self._strip_qq_nickname(raw_text)
|
||||
|
||||
# —— 垃圾检测 ——
|
||||
if self._is_ocr_console_garbage(raw_text):
|
||||
gc = self._ocr_garbage_count.get(platform, 0) + 1
|
||||
|
||||
Reference in New Issue
Block a user