fix(report): 负向归纳对齐分量类抱怨并约束质地表述

默认关注词与负向口语短语表补充分量/量少等;§8.2 情感大模型提示要求对照 negative_lexeme_hits 条数、勿将未命中的质地问题写成主诉;lexeme 说明补充预设表局限。

Made-with: Cursor
This commit is contained in:
hub-gif 2026-04-16 14:03:24 +08:00
parent 505352ecda
commit 1495161850
2 changed files with 17 additions and 2 deletions

View File

@ -142,6 +142,10 @@ COMMENT_FOCUS_WORDS: tuple[str, ...] = (
"回购",
"包装",
"物流",
# 规格/分量(与「硬」等质地问题并列的常见抱怨维度)
"分量",
"量少",
"克重",
)
# 用途/场景:每组 (展示名, 触发子串…)。每条评价若命中组内任一子串则该组 +1同一条可属多组。
@ -638,12 +642,21 @@ _POS_LEXEME_DETAIL = (
"软硬适中",
)
_NEG_LEXEME_DETAIL = (
# 质地(保留;与分量类并列,避免统计只突出硬而不计少量)
"口感偏硬",
"口感很硬",
"咬不动",
"发硬",
"硬邦邦",
"口感发粘",
# 分量/规格常见生活化抱怨与条形图、§8.2 归纳对齐)
"分量少",
"量太少",
"太少了",
"不够吃",
"一袋很少",
"比想象少",
"克重不足",
"太甜了",
"甜得发腻",
"甜度过高",
@ -753,6 +766,7 @@ def _comment_sentiment_lexicon(texts: list[str]) -> dict[str, Any]:
"「正向短语」仅在命中正向词表的评价条内统计(含混合条);"
"「负向短语」仅在命中负向词表的评价条内统计(含混合条);每条每短语最多计 1 次;"
"统计的是预设口语片段,非分词模型。"
"预设表无法覆盖全部说法(如「一袋就一点点」),条形图条数低不代表用户未在别处表述同类不满,须结合语义池原文。"
),
}
@ -2580,7 +2594,7 @@ def build_competitor_markdown(
_embed_chart(
run_dir,
"chart_sentiment_overview_pie.png",
"评价语气四象限占比(扇形图;与上表条数一致)",
"评价语气占比(扇形图;与上表条数一致)",
)
)
lines.extend(

View File

@ -126,12 +126,13 @@ SENTIMENT_LLM_SYSTEM = """你是电商/食品类用户研究助手。输入 JSON
- **不要编造**样本中未出现的具体事实品牌价格医学功效
- **定量数字**条数占比lexicon 各字段须与 ``comment_sentiment_lexicon`` **一致**勿编造
- **定性归纳**满意点/抱怨点引语是否算差评**整句语义**为准若某句在语义上为褒义或中性描述**不得**放入质地差口感硬等负向归因若词表归类结果与句意冲突**以句意为准**并在使用注意点明关键词归类**仅反映子串计数不作态度判断**
- **负向主题优先级硬性**主要集中突出类抱怨前**必须对照** ``negative_lexeme_hits_top`` 各短语的 ``texts_matched``口感硬/咬不动/发硬**预设短语命中为 0 或明显低于**其它维度如分量物流**不得**把质地硬写成首要负向主题若抽样原文与语义池里**反复出现**分量少太少不够吃等而预设短语未列出仍须**单独归纳**用户常用生活化表述不必与预设表完全一致
- 若某措辞****出现在任一抽样原文含前缀后正文**禁止**用引号写成直接引语
- **不要**只复述某词出现 N 条形图已展示你的价值是**语义归纳**
**建议结构**使用四级标题 ``####``
1. ``#### 正向体验主题``36 条;概括满意点(口感、甜度、性价比等),**尽量**用「」引用 ``sample_reviews_semantic_pool`` 或其它样本中**语义确为正面**的短句(勿把对比褒义句当差评例子)。
2. ``#### 负向评价主题归因``**核心段落**。依据你读后判定为**确有不满**的句子,归纳 **48 个**问题维度(口味、质地、价格、物流等)。引文优先取自句意确为批评的原文(可来自任一档位键,不限于 ``sample_reviews_negative_biased``);引文须含 ``【细类…|…店铺…】`` 或同义店铺+品名/SKU。
2. ``#### 负向评价主题归因``**核心段落**。依据你读后判定为**确有不满**的句子,归纳 **48 个**问题维度(须覆盖**质地、分量/规格、价格、物流、包装**等中在原文中**实际出现**的类别,勿只写质地)。引文优先取自句意确为批评的原文(可来自任一档位键,不限于 ``sample_reviews_negative_biased``);引文须含 ``【细类…|…店铺…】`` 或同义店铺+品名/SKU。
3. ``#### 混合评价中的典型张力``(可选):同一评价里褒贬并存时,说明在争什么;若无则略写。
4. ``#### 使用注意``:关键词子串统计的局限、``sample_reviews_semantic_pool`` 与词表归类的差异、抽样截断、非医学结论。