fix: 修复'邀请活动持续到几月几号'查询返回错误位置
- non_core_kw添加'几月','几号','几日','什么时候','何时'等时间疑问词过滤 - SYNONYMS添加'持续到'→'持续时间','到几月'→'持续时间'等同义词映射 - knowledge_base.py添加持续时间意图加权:heading含'持续时间'的section×4.0 - 根因:'几月'/'几号'被当作核心关键词参与匹配,root heading含'邀请'+'活动' 获得heading_hits加分但body为空,压过了真正含答案的'### 持续时间'section - 验证:修复后'### 持续时间'section得分189.82(第1),root heading仅27.13(第2)
This commit is contained in:
@@ -451,6 +451,9 @@ class AutoReply:
|
||||
'一嘴',
|
||||
# 2026-08-17 新增:口语"咱那家"的"那家"(OCR常写成"那价")
|
||||
'那家', '那价',
|
||||
# 2026-09-17 新增:时间疑问词不应作为核心词
|
||||
# "持续到几月几号"的核心词应是{'邀请','活动','持续'},而非{'几月','几号'}
|
||||
'几月', '几号', '几日', '什么时候', '何时',
|
||||
}
|
||||
core_kw = q_mean - non_core_kw
|
||||
# ⭐ OCR碎片过滤:纯ASCII且≤2字符的词(如"丿IJ"切成'ij')是OCR噪声
|
||||
|
||||
@@ -1217,6 +1217,8 @@ class MsgBotApp(ctk.CTk):
|
||||
'有人',
|
||||
'一嘴',
|
||||
'那家', '那价',
|
||||
# 2026-09-17 新增:时间疑问词不应作为核心词
|
||||
'几月', '几号', '几日', '什么时候', '何时',
|
||||
}
|
||||
core_kw = q_tokens - non_core_kw
|
||||
# OCR碎片过滤
|
||||
|
||||
@@ -48,6 +48,12 @@ class KnowledgeBase:
|
||||
# ⭐ 口语"云包"= 云背包(用户常说"云包插件",OCR识别"云背包"为"云包")
|
||||
# 修复"怎么装那个云包插件?"无法命中beibao.md的安装方法section
|
||||
"云包": ["云背包"],
|
||||
# ⭐ 时间口语"持续到"= 持续时间(用户常说"活动持续到几月几号")
|
||||
# 修复"邀请活动持续到几月几号"无法命中invite.md"### 持续时间"section
|
||||
"持续到": ["持续时间"],
|
||||
"持续多久": ["持续时间"],
|
||||
"到几月": ["持续时间"],
|
||||
"到几号": ["持续时间"],
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
@@ -671,6 +677,13 @@ class KnowledgeBase:
|
||||
if (any(w in query_stripped for w in ('怎么配置', '如何配置', '配置方法', '配置步骤', '配置教程', '怎么设置', '如何设置'))
|
||||
and '配置' in heading_clean):
|
||||
combined_scores[i] *= 4.0
|
||||
# ⭐ 持续时间意图加权:查询含"持续到几月/到几号/什么时候"等,heading含"持续时间"的section加权
|
||||
# 修复"邀请活动持续到几月几号"被root heading"草原探险服务器玩家邀请活动奖励规则"
|
||||
# 压过"### 持续时间"section的问题。根因:root heading含"邀请"+"活动"获得heading_hits加分,
|
||||
# 但body为空无实际内容。"持续时间"heading虽只含"持续"但有真实答案。
|
||||
if (any(w in query_stripped for w in ('持续到', '持续多久', '到几月', '到几号', '什么时候', '持续时间', '活动时间', '活动日期', '截止', '结束时间'))
|
||||
and '持续时间' in heading_clean):
|
||||
combined_scores[i] *= 4.0
|
||||
# ⭐ 兑换码插件特殊加权:查询含"兑换码插件"且文档标题含"sdf1"→ 巨幅加权
|
||||
# 修复"兑换码插件怎么用"被"CDK管理"section压过的问题
|
||||
if ('兑换码插件' in query_stripped and 'sdf1' in doc.get('title', '').lower()):
|
||||
|
||||
Reference in New Issue
Block a user