fix(auto_reply): 强化复合标题检测 - 无主体命中直接拒绝
之前仅重置 has_ht 为标题主体命中,但 body 仍可能含核心词导致通过核心词覆盖检查。 新增:标题主体部分不含任何 q_mean 中的词时直接 return False。
This commit is contained in:
@@ -150,6 +150,14 @@ class AutoReply:
|
||||
# 提取标题主体部分(<br>或列表之前的部分)
|
||||
_title_part = re.split(r'<br>|- |\|-', heading_clean)[0]
|
||||
_body_part_tokens = set(AutoReply._meaningful_tokens(_title_part))
|
||||
# ⚠ 如果标题主体部分不含任何 q_mean 中的词,直接拒绝
|
||||
# 防止"温馨提示"类 body 含核心词但非真正标题的文档被误选
|
||||
if not (q_mean & _body_part_tokens):
|
||||
logger.debug(
|
||||
f"复合标题无主体命中拒绝: query={query[:40]!r} "
|
||||
f"heading={heading[:40]!r} title_part={_title_part!r}"
|
||||
)
|
||||
return False
|
||||
# 重新计算 has_ht 为仅主体部分命中
|
||||
has_ht = bool(q_mean & _body_part_tokens)
|
||||
logger.debug(f"复合标题检测: heading={heading[:40]!r} title_part={_title_part!r} has_ht={has_ht}")
|
||||
|
||||
Reference in New Issue
Block a user