P paper2skillsPlaybook
AI 路线图 →

InstructABSA — 指令微调驱动的方面级情感分析与评论解构

Skill-VOC-Aspect-Sentiment-Extraction · 07-NLP-VOC

causalexperimentoptimizationrecommendationpricing广告与投放供应链与补货客服与VOC推荐与搜索定价与利润WF-A 智能补货WF-B 广告优化WF-C 客服分诊WF-D 选品扫描WF-E Review监控WF-F 动态定价
年化 ROI50-150 万
实现难度⭐⭐☆☆☆
业务视角
适用角色产品运营负责人 / 选品负责人 · 客服负责人 · 品牌负责人
适用平台Amazon Reviews / Q&A · TikTok 评论区 · Reddit 母婴社区
什么情况下用每月几千条差评和 Q&A 没有人力一条条看,但痛点都在里面;新品开发不知道做什么功能、改什么问题
成功是什么样的自动提取 Top 10 高频痛点,新品开发有用户数据背书,每月出竞品用户洞察报告
业务痛点
差评太多看不过来不知道用户真正在意什么竞品评论没有系统分析过新品开发靠拍脑袋

1. 解决的问题

母婴品类改版方向不明——InstructABSA 方面级情感分析将差评维度拆解从 2 周人工 → 2 小时自动完成,精准定位高差评方面(噪音/尺寸),避免错误改版投入 ¥5 万+ MOQ 成本

2. 核心算法逻辑

传统情感分析只给出"正面/负面/中性"三分类,但跨境电商运营需要的是更细粒度的答案:"这条评论里,用户对哪个方面不满意,不满程度如何?" 一条"吸力好但噪音大,物流也慢"的评论,从整体情感看是负面,但对"吸力"这个方面是正面——单一情感标签会抹掉这种业务关键信息。

3. 业务应用场景

业务问题:某母婴团队的吸奶器 SKU 在 Amazon 积累了 3,000 条评论,整体评分 3.8 星,但不清楚"哪些具体问题在拖评分"。靠人工阅读要花 2 周,且不同运营的判断标准不一。

InstructABSA 处理流程: 1. 对全量评论跑 ATSC(方面情感分类),提取 `(方面, 情感, 意见词)` 三元组 2. 统计各方面的差评占比和情感强度(负面词权重) 3. 输出"方面-情感热力图":哪些方面差评最集中

| 方面 | 正面率 | 负面率 | Top 负面意见词 | |---|---|---|---| | 吸力 | 45% | 38% | "too weak", "not strong enough" | | 噪音 | 22% | 65% | "loud", "noisy", "not quiet" | | 充电 | 71% | 15% | — | | 尺寸/重量 | 38% | 45% | "too big", "bulky" |

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • ROI 预估
  • 差评维度拆解决策加速:避免错误产品改版,每次节省 ¥50,000+(MOQ 生产改版成本)
  • 客服工单自动路由:人工分类时间减少 60%,年化节省 ¥20,000-50,000
  • 选品改版命中率提升:精准定位高差评方面,假设改版成功率从 40% → 65%,年化 GMV 增量 ¥50-150 万
  • 年化综合 ROI:¥100-200 万
  • 实施难度:⭐⭐☆☆☆(规则版直接可用;生产版 InstructABSA 模型推理需 GPU 或调用 API)

7. 代码模板

代码块数量:2 · 路径:未检测到

"""
VOC Aspect Sentiment Extraction — 基于 InstructABSA 的方面级情感分析
简化实现:规则+词典方法,生产环境替换为 InstructABSA 模型推理

依赖: re, dataclasses (标准库)
"""

from dataclasses import dataclass, field
import re


@dataclass
class AspectSentimentTuple:
    """方面-意见-情感三元组"""
    aspect: str
    opinion: str
    sentiment: str          # positive / negative / neutral
    confidence: float = 1.0
    raw_span: str = ""      # 原始文本片段


@dataclass
class ABSAResult:
    """单条评论的 ABSA 结果"""
    review_id: str
    text: str
    tuples: list = field(default_factory=list)
    overall_sentiment: str = "neutral"


# ─── 领域词典(母婴吸奶器,可扩展) ───

ASPECT_KEYWORDS = {
    "吸力":    ["suction", "suction power", "pump strength", "suction level", "pumping power"],
    "噪音":    ["noise", "sound", "loud", "quiet", "silent", "noisy", "decibel"],
    "充电":    ["battery", "charge", "charging", "USB", "battery life", "power"],
    "尺寸重量": ["size", "bulky", "heavy", "weight", "portable", "compact", "large", "small"],
    "舒适度":  ["comfortable", "comfort", "pain", "hurt", "fit", "flange", "sore"],
    "易用性":  ["easy", "simple", "difficult", "complicated", "setup", "assemble"],
    "客服":    ["customer service", "support", "response", "refund", "return", "help"],
    "物流":    ["shipping", "delivery", "arrived", "package", "late", "fast", "slow"],
    "价格":    ["price", "worth", "value", "expensive", "cheap", "affordable", "cost"],
}

POSITIVE_WORDS = {
    "excellent", "great", "good", "amazing", "wonderful", "perfect", "love",
    "quiet", "strong", "easy", "comfortable", "efficient", "powerful", "fast",
    "affordable", "worth", "recommend", "happy", "satisfied", "awesome",
}

NEGATIVE_WORDS = {
    "bad", "terrible", "awful", "poor", "weak", "loud", "noisy", "painful",
    "difficult", "complicated", "disappointing", "slow", "expensive", "broken",
    "leaking", "uncomfortable", "useless", "waste", "regret", "return",
}

NEGATION_WORDS = {"not", "no", "never", "n't", "dont", "doesnt", "wouldnt", "cant", "hardly"}


class RuleBasedABSA:

8. 论文来源

未自动抽取;请查看原始 Skill 卡片。