fix(auto_reply): 强化复合标题检测 - 无主体命中直接拒绝

之前仅重置 has_ht 为标题主体命中,但 body 仍可能含核心词导致通过核心词覆盖检查。
新增:标题主体部分不含任何 q_mean 中的词时直接 return False。
This commit is contained in:
youpaishidifu
2026-08-15 10:43:02 +08:00
parent 694d26bb12
commit 4631571019
+8
View File
@@ -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}")