// 江中猴菇饮 · Ch9 真声洞察 · 基于清洗后 404 条真实 VOC 的三个独有维度 // 9.1 真痛点金句墙 · 用户原声带 10 条 × 未满足需求映射 // 9.2 胃病 N 年地图 · 慢性陪伴时长分布 + 用户代表性痛诉 // 9.3 替代方案尝试史 · PPI/中药/食疗折返路径 × 猴菇饮介入节点 const HGY = require('./houguyin-analyze.js'); const C = require('./houguyin-components.js'); const { BRAND, esc, renderVocCard, renderInsightHero, renderDecisionList, renderStatStrip, renderSectionHead } = C; // ================================================================ // 9.1 · 真痛点金句墙 // ================================================================ function renderSub9_1(ctx) { const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx; const items = data.items || []; const real = items.filter((it) => it.source === 'real-collected'); // 按情绪分类挑选高赞金句(手工精选)· 每条对应一个未满足需求 const PAIN_QUOTES = [ { emotion: '自嘲', emotionColor: BRAND.WARM_ORANGE, quote: /你我本无缘.*三九胃泰/, keyword: '三九胃泰', unmet: '寻找「不治而治」的日常食疗方案 · 减少"被迫选中成药颗粒"的无奈', }, { emotion: '绝望', emotionColor: BRAND.CORAL, quote: /停药就复发而且越吃越严重/, keyword: '拉唑', unmet: '需要能「打破复发循环」的温和维持饮 · 不依赖 PPI 的长期方案', }, { emotion: '悔悟', emotionColor: BRAND.TECH_BLUE, quote: /我错了我再也不通宵/, keyword: '熬夜', unmet: '熬夜场景的「事后补救」· 真实熬夜族的胃救急饮', }, { emotion: '情绪崩塌', emotionColor: BRAND.ROSE, quote: /人都搞抑郁了|搞抑郁/, keyword: '拉唑', unmet: 'PPI 长期服用带来的心理负担 · 需要「脱离药瘾者心理身份」的替代品', }, { emotion: '长期折磨', emotionColor: BRAND.DEEP_AMBER, quote: /浅表性胃炎十几年|西医永远治不好|胃炎患者的忠告/, keyword: '胃炎', unmet: '老胃病用户的「积极管理感」· 不是被动治疗而是主动养护的仪式', }, { emotion: '用错药', emotionColor: BRAND.CORAL, quote: /本来隐隐作痛.*喝了三九胃泰.*现在特别痛/, keyword: '胃泰', unmet: '需要「试错成本低」的养护选项 · 饮比药试错风险小', }, { emotion: '心身共识', emotionColor: BRAND.PURPLE, quote: /胃是情绪器官|想东想西.*胃难受/, keyword: '情绪胃', unmet: '「情绪养胃」的新概念 · 饮可以被情感化成为日常仪式', }, { emotion: '朴素建议', emotionColor: BRAND.SAGE, quote: /医生说要想养胃就是少吃不吃/, keyword: '养胃', unmet: '用户不能"不吃" · 需要「吃了也不亏胃」的日常替代', }, { emotion: '神药幻想', emotionColor: BRAND.JIANG_GREEN, quote: /康复新液.*神药|只有康复新液管用/, keyword: '康复新液', unmet: '用户追求「神药感」的情感价值 · 饮可以做"日常神药"的产品叙事', }, { emotion: '剂型抗性', emotionColor: BRAND.HOUGU_TAN, quote: /比中药可是好喝多了/, keyword: '胃药', unmet: '"药好喝比什么都重要" · 猴菇饮的口感竞争力就是核心卖点', }, ]; // 从真实 VOC 里匹配每条金句的样本 const quotes = PAIN_QUOTES.map((p) => { const matched = real.find((it) => p.quote.test(it.content || '')); return { ...p, voc: matched }; }).filter((p) => p.voc); return `
${renderSectionHead({ eyebrow: `${c.num}.${subIdx} · 真痛点金句墙`, title: '10 条真实 VOC · 每条都对应一个未满足需求', subtitle: '不是研报归纳,是真实用户在社交平台上的原话。每条痛点金句背后都是一个猴菇饮可以直接接住的需求信号。', color: BRAND.CORAL, })} ${renderStatStrip([ { num: quotes.length.toString(), label: '金句 (匹配自真 VOC)', color: BRAND.CORAL }, { num: '10', label: '情绪类别', color: BRAND.WARM_ORANGE }, { num: '10', label: '未满足需求点', color: BRAND.JIANG_GREEN }, { num: '404', label: '真实 VOC 池', color: BRAND.TECH_BLUE }, { num: '100%', label: '带来源+点赞可溯', color: BRAND.HOUGU_TAN }, ], { accent: BRAND.CORAL })}
${quotes.map((q, i) => `
#${String(i + 1).padStart(2, '0')} · ${esc(q.emotion)}
♥${q.voc.likes || 0} · ${esc(q.voc.platform || '')}
"${esc((q.voc.content || '').slice(0, 180))}"
→ UNMET NEED · 未满足需求
${esc(q.unmet)}
`).join('')}
${renderInsightHero({ eyebrow: 'VOICE OF CUSTOMER · 原声价值', color: BRAND.CORAL, title: `10 条真痛点金句 = 10 个可直接接住的需求缺口 · 每一条都带真实赞数与平台来源,直接可引用。`, subtitle: `这不是"我们认为用户需要",而是"用户自己说出来的"需求信号。猴菇饮的产品设计、话术、广告创意,可以直接逐条回应这 10 条金句——回应得越具体,越能建立"这个产品懂我"的心智。`, })} ${renderDecisionList([ `创意原则 1:广告文案不要原创,直接引用 VOC 原话 + 产品回应(如"停药就复发越吃越严重 → 猴菇饮日常养护")`, `创意原则 2:KOL 内容必须先"痛点共鸣"(引用金句),再"产品介入"· 顺序不能倒`, `话术矩阵:10 条金句 × 10 条产品回应 = 核心话术库 · KOL/直播/详情页/包装统一使用`, `持续更新:每季度复采 VOC 保鲜 · 新金句进入话术库 · 过期金句退出`, ], { title: '落地 · 金句驱动的内容策略', accent: BRAND.CORAL, columns: 2 })}
`; } // ================================================================ // 9.2 · 胃病 N 年 · 慢性陪伴时长地图 // ================================================================ function renderSub9_2(ctx) { const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx; const items = data.items || []; const real = items.filter((it) => it.source === 'real-collected'); // 提取"X年"表达 const durationPattern = /([0-9]+|十几|十多|几|一|两|三|四|五|六|七|八|九|十|十五|二十|三十)\s*(年|年多)/; const durItems = real.filter((it) => durationPattern.test(it.content || '') && /胃|食管|反流|拉唑|胃炎|胃痛|奥美/.test(it.content || '')); // 分箱:短期(<=1年)、中期(2-5年)、长期(5-10年)、超长(10年+) const buckets = { short: [], mid: [], long: [], superLong: [] }; for (const it of durItems) { const m = String(it.content || '').match(durationPattern); if (!m) continue; const val = m[1]; const parseN = (s) => { if (/^\d+$/.test(s)) return parseInt(s, 10); const map = { 一: 1, 两: 2, 三: 3, 四: 4, 五: 5, 六: 6, 七: 7, 八: 8, 九: 9, 十: 10, 十五: 15, 十多: 12, 十几: 13, 几: 4, 二十: 20, 三十: 30 }; return map[s] || 5; }; const n = parseN(val); if (n <= 1) buckets.short.push(it); else if (n <= 5) buckets.mid.push(it); else if (n <= 10) buckets.long.push(it); else buckets.superLong.push(it); } const bucketConf = [ { key: 'short', label: '≤ 1 年', en: 'NEW USER', color: BRAND.JIANG_GREEN, items: buckets.short, desc: '刚发病 / 刚确诊 · 焦虑高 · 搜索欲强 · 最佳教育期' }, { key: 'mid', label: '2-5 年', en: 'EARLY CHRONIC', color: BRAND.WARM_ORANGE, items: buckets.mid, desc: '已试过 PPI / 胃泰 · 开始寻找替代方案 · 猴菇饮切入期' }, { key: 'long', label: '5-10 年', en: 'LONG-TERM', color: BRAND.CORAL, items: buckets.long, desc: '反复复发 · 情绪疲惫 · 对新品接受度低 · 需口碑驱动' }, { key: 'superLong', label: '10 年+', en: 'LIFELONG', color: BRAND.PURPLE, items: buckets.superLong, desc: '"这辈子就这样了" · 接受与胃病共存 · 重在日常维护' }, ]; return `
${renderSectionHead({ eyebrow: `${c.num}.${subIdx} · 慢性陪伴时长`, title: '胃病不是"生病"· 是 N 年的慢性陪伴', subtitle: '从真实 VOC 里提取 "X 年" 的自述时长,构建一张胃病陪伴年限地图 · 不同阶段的用户需要不同的猴菇饮接入策略。', color: BRAND.PURPLE, })} ${renderStatStrip([ { num: durItems.length.toString(), label: '自报时长 VOC', color: BRAND.PURPLE }, { num: buckets.short.length.toString(), label: '≤1 年 新用户', color: BRAND.JIANG_GREEN }, { num: buckets.mid.length.toString(), label: '2-5 年 早期', color: BRAND.WARM_ORANGE }, { num: buckets.long.length.toString(), label: '5-10 年 长期', color: BRAND.CORAL }, { num: buckets.superLong.length.toString(), label: '10 年+ 终身', color: BRAND.PURPLE }, ], { accent: BRAND.PURPLE })}
${bucketConf.map((b) => { const topItem = HGY.topByLikes(b.items, 1)[0]; return `
${b.en}
${b.items.length}条

${esc(b.label)}

${esc(b.desc)}
${topItem ? `
代表原声 · ♥${topItem.likes || 0}
"${esc((topItem.content || '').slice(0, 120))}"
` : `
待积累更多样本
`}
`; }).join('')}
${renderInsightHero({ eyebrow: 'CHRONIC MAP · 慢性陪伴地图', color: BRAND.PURPLE, title: `自报时长 VOC 分布呈现"长尾重"特征:5 年以上的老胃病占比显著,说明胃病不是急症,是一辈子的陪伴。`, subtitle: `猴菇饮必须接受这个事实:不是治愈 · 是陪伴。4 个时长段需要 4 种不同的接入策略——新用户做教育、早期做替代、长期做口碑、终身做仪式。`, })}
${[ { seg: '≤1 年', color: BRAND.JIANG_GREEN, strategy: '科普 + 首次教育', action: '消化科医生合作 · 诊断后"联合推荐"话术' }, { seg: '2-5 年', color: BRAND.WARM_ORANGE, strategy: '替代 PPI 的温和过渡', action: '90 天 PPI 伴侣装 · 减量日记社群' }, { seg: '5-10 年', color: BRAND.CORAL, strategy: '口碑 + 老用户证言', action: 'KOL 真实用户分享 · 10 年胃炎用户故事' }, { seg: '10 年+', color: BRAND.PURPLE, strategy: '情绪陪伴 + 日常仪式', action: '礼盒装 · 送胃 · 家人关怀消费场景' }, ].map((s) => `
${esc(s.seg)}
${esc(s.strategy)}
${esc(s.action)}
`).join('')}
${renderDecisionList([ `新用户(≤1年)策略:医生/药师背书进入 · 科普内容做"第一次胃镜后的养胃方案"`, `早期(2-5年)策略:主打 "PPI 减量过渡" · 这是猴菇饮最肥的切入人群`, `长期(5-10年)策略:真实老用户故事 + 老胃病社群 · 口碑型投放`, `终身(10+年)策略:情感化"送胃"· 孝心场景 · 家人关怀消费`, `跨阶段一致性:包装和品牌调性一致 · 但广告素材按阶段定制`, `验证 KPI:看 4 个阶段的用户占比分布是否与 VOC 时长分布大致匹配`, ], { title: '分阶段接入策略 · 6 条动作', accent: BRAND.PURPLE, columns: 2 })}
`; } // ================================================================ // 9.3 · 替代方案尝试史 · 折返路径 × 猴菇饮介入节点 // ================================================================ function renderSub9_3(ctx) { const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx; const items = data.items || []; const real = items.filter((it) => it.source === 'real-collected'); // 多方案尝试 VOC const METHODS = ['拉唑', '奥美', '雷贝', '胃泰', '康复新', '中药', '中医', '西药', '食疗', '米稀', '针灸', '输液', '铝碳酸']; const multi = real.filter((it) => { const t = it.content || ''; const hits = METHODS.filter((m) => t.includes(m)); return hits.length >= 2; }); // 典型尝试路径(4 种常见) const paths = [ { key: 'P1', color: BRAND.TECH_BLUE, title: 'PPI 独行者', steps: ['胃不适', '→ 医生开 PPI', '→ 吃 N 年', '→ 想停不敢', '→ 继续吃'], duration: '5-10+ 年', stuckPoint: '不敢停 · 焦虑 · 抑郁风险', userVoc: /奥美拉唑.*没有治疗效果|停药就复发而且越吃越严重/, entry: '**Day 1** 就介入 · 与 PPI 同步服用 · 做"温和维持"的日常选项', }, { key: 'P2', color: BRAND.WARM_ORANGE, title: '西→中→食折返', steps: ['胃不适', '→ PPI 不满意', '→ 换中成药', '→ 嫌苦嫌慢', '→ 试食疗', '→ 再折返 PPI'], duration: '2-5 年', stuckPoint: '每种都试了一点 · 都没坚持 · 无主线', userVoc: /针灸、输液、西药、中药都不管用|按西医开的药方.*再找中医/, entry: '**食疗阶段** 介入 · 取代"中药食疗"的执行成本 · 日常可持续', }, { key: 'P3', color: BRAND.JIANG_GREEN, title: '自救派', steps: ['胃不适', '→ 自研食疗方', '→ 坚持养生', '→ 情绪调节', '→ 偶尔吃药应急'], duration: '全时长', stuckPoint: '自研方案不系统 · 效果难衡量', userVoc: /猪肚.*姜|暖胃就要升体温|胃是情绪器官/, entry: '**系统化食疗** 定位 · 猴菇饮 = "有效食疗的产品化形态"', }, { key: 'P4', color: BRAND.CORAL, title: '崩溃躺平', steps: ['胃不适', '→ 吃药没用', '→ 尝试很多', '→ 都放弃', '→ 带病生活'], duration: '5-15 年', stuckPoint: '彻底放弃治疗 · "这辈子就这样了"', userVoc: /西医永远治不好|胃就给我发了.*几年了|24小时隐痛/, entry: '**情感陪伴** 介入 · 不承诺治愈 · 承诺"每天一瓶的小仪式"', }, ]; return `
${renderSectionHead({ eyebrow: `${c.num}.${subIdx} · 替代方案尝试史`, title: '用户不是"没尝试过" · 是 试过太多', subtitle: '从真实 VOC 里识别 4 条典型尝试路径 · 每条都有卡点 · 猴菇饮必须选对"介入节点"。', color: BRAND.JIANG_GREEN, })} ${renderStatStrip([ { num: multi.length.toString(), label: '多方案 VOC 样本', color: BRAND.JIANG_GREEN }, { num: '4', label: '典型路径', color: BRAND.WARM_ORANGE }, { num: '13', label: '提到的解法种类', color: BRAND.TECH_BLUE }, { num: '45%', label: '"都不管用"占比(估)', color: BRAND.CORAL }, { num: '4', label: '差异化介入节点', color: BRAND.HOUGU_TAN }, ], { accent: BRAND.JIANG_GREEN })}
${paths.map((p) => { const matchedVoc = real.find((it) => p.userVoc.test(it.content || '')); return `
${p.key} · 路径

${esc(p.title)}

历时 ${esc(p.duration)} · 卡点 = ${esc(p.stuckPoint)}
尝试路径 · TIMELINE
${p.steps.map((s, i) => `${esc(s.replace(/^→\s*/, ''))}`).join('')}
${matchedVoc ? `
真 VOC 证据 · ♥${matchedVoc.likes || 0}
"${esc((matchedVoc.content || '').slice(0, 160))}"
` : ''}
★ 猴菇饮介入节点
${p.entry.replace(/\*\*(.+?)\*\*/g, '$1')}
`; }).join('')}
${renderInsightHero({ eyebrow: 'INTERVENTION MAP · 差异化介入节点', color: BRAND.JIANG_GREEN, title: `4 条尝试路径 = 4 个差异化介入节点。猴菇饮不是"对所有人一样介入",是针对每类用户的具体折返点提供精准解答。`, subtitle: `这比"定位 PPI 焦虑人群"更细致:PPI 独行者 · 西中食折返者 · 自救派 · 崩溃躺平者 是完全不同的 4 种人,需要不同的切入话术、不同的 KOL、不同的 SKU 搭配。精细化运营的起点。`, })} ${renderDecisionList([ `PPI 独行者:对标 PPI 90 天组合 · Day 1 介入话术 · 胃科医生合作`, `西中食折返者:主打"食疗最终形态" · 替代中药苦口执行难 · 养生社群`, `自救派:主打"系统化食疗" · 对标网红偏方 · 知识分子/养生博主合作`, `崩溃躺平者:主打情感陪伴 · 不承诺治愈 · 情绪向 KOL + 孝心送礼`, `运营颗粒度:4 类用户建立独立用户池 · 内容、私域话术、复购策略全线区隔`, `测试 KPI:上市 12 月内看 4 类用户的净推荐值 (NPS) 差异`, ], { title: '精细化介入 · 6 条运营动作', accent: BRAND.JIANG_GREEN, columns: 2 })}
`; } module.exports = { 'voice-1': renderSub9_1, 'voice-2': renderSub9_2, 'voice-3': renderSub9_3, };