fix: 下载查询仍选protect温馨提示+问句被混合乱码误杀
问题1: '登录插件去哪儿下载'仍返回protect'温馨提示'简略链接而非完整下载列表
- 根因: 质量分+10对两者都加(protect body '- [ √ ] 插件下载:见...'也含'- [')
且heading字段把正文吞进来('## 温馨提示...下载...')导致'下载' in heading误判
- 修复(gui.py): heading只看第一段(<br>|换行|之前), 分支顺序调整为:
① heading首段含'下载'→+20 ② 指针式提示('依托[xx]'或短body含'见')→-10
③ 表格/链接列表→+10 ④ body长度加权
结果: sdf1_login'### 2.1 下载'(45.73) > protect'温馨提示'(17.48)
问题2: 第三次用户消息'pHP用户后端有哪两种登录模式啊?'整条被丢弃
- 根因: OCR把'PHP'打散成'pH P', 大写被CJK分割3组≥2→混合乱码误判
问句豁免只加了协议检测, 混合乱码检测没有
- 修复(monitor.py): 混合乱码检测新增问号'??'豁免
⚠ 只认问号不认疑问词('哪'等疑问词在真乱码Task#1474中常见, 会误放)
This commit is contained in:
@@ -1060,8 +1060,23 @@ class MsgBotApp(ctk.CTk):
|
||||
# 下载类查询优先选择详细表格,而非简略提示
|
||||
is_download_query = any(w in cleaned_msg for w in ('下载', '下到', '哪下', '怎么下'))
|
||||
is_table_body = '|' in body or '- [' in body
|
||||
if is_download_query and is_table_body:
|
||||
quality_score = sc + 10.0 # 下载查询中,表格body额外+10分
|
||||
# ⭐ heading 可能把正文一起吞进来(如'## 温馨提示...<br>如果您:<br> - [ √ ] 插件下载...')
|
||||
# 质量分只看 heading 第一段(<br>/换行/| 之前),避免'温馨提示'借正文'下载'蹭加分
|
||||
_heading_head = re.split(r'<br>|\n|\||- ', (doc.get('heading') or ''))[0].lower()
|
||||
if is_download_query:
|
||||
if '下载' in _heading_head:
|
||||
# ⭐ heading 明确是"下载"section(如'### 2.1 下载'、'## 4. 下载地址')
|
||||
# → 这是真正的下载答案,强加分
|
||||
quality_score = sc + 20.0
|
||||
elif ('见' in body and body_len < 80) or '依托' in _heading_head:
|
||||
# ⭐ 指针式提示(section内无实际内容,只写"见xxx"或"本系统依托[xx]")
|
||||
# 优先于表格分支判定——body即使带'- ['链接列表也降权,
|
||||
# 避免'温馨提示'这类简略提示压过真正下载表格
|
||||
quality_score = sc - 10.0
|
||||
elif is_table_body:
|
||||
quality_score = sc + 10.0 # 下载查询中,表格/链接列表body额外+10分
|
||||
else:
|
||||
quality_score = sc + body_len / 100.0
|
||||
else:
|
||||
quality_score = sc + body_len / 100.0 # 其他查询,body长度加权
|
||||
relevant_candidates.append((quality_score, sc, doc))
|
||||
|
||||
Reference in New Issue
Block a user