feat(sync): 术式 category 关键词分类兜底(精确未命中长尾,救回 ~70% 漏配)
问题:enum_mapping 是 normalize 后的【整串精确匹配】,treatName 2万+ distinct 精确字典覆盖不全 → 长尾全靠 _default:'' 丢弃 → 真 actual 治疗被丢 → 召回排除 失效 → 误召(诊断后明明做过同类治疗却仍被召回)。实测 tx|act missing-category 59410 occ / 20681 distinct。 方案(分层,只接管精确未命中,精确命中零影响,最坏退化=_default 现状,无回归): - 引擎(host 无关算法):applyEnum 精确未命中 → keyword 分类器 → _default。 classifyByKeyword 提为导出纯函数:按 ,;。切段 + 剥离条件从句(stripClauses) + 按 rules 顺序含词匹配(优先级裁决:种植>冠、根管>冠、操作词>人群词)。 - yaml(host 术式差异):treatment_actual/planned 加 keyword_mapping(10 类真治疗, 有序优先级)+ keyword_strip_clauses(actual 剥必要时/建议等;planned 只剥必要时, 保留建议/拟——计划本就这么措辞)。流程/无操作不配 → 落 _default(复用上游 route_by_pattern 的 review 分流,不重复)。 实测回收:distinct 72.4% / occurrence 70.0%;仍丢弃 Top 全是流程噪音(咨询/复诊/ 无需处理/口扫…),负向词剥离使"定期观察,必要时拔除"正确落空不误判 surgical。 新增单测 26 例(真实漏配术式 fixture);全量 89 测试通过,tsc 0 错。 生效路径:新增量数据自动走;存量需 reparse(truncate facts + sync --full)才回填。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Showing
Please
register
or
sign in
to comment