P paper2skillsPlaybook
AI 路线图 →

LLM Review Structured Extraction — 方面情感 JSON 批量提取与语义聚类

Skill-LLM-Review-Structured-Extraction · 07-NLP-VOC

causalexperimentmulti_agent客服与VOCMAS与智能体工程WF-C 客服分诊WF-E Review监控WF-G Listing内容优化WF-I 智能体工程
年化 ROI18 万元
实现难度⭐⭐☆☆☆
业务优先级⭐⭐⭐⭐⭐
业务视角
适用角色产品运营负责人 / 选品负责人 · 客服负责人 · 品牌负责人
适用平台Amazon Reviews / Q&A · TikTok 评论区 · Reddit 母婴社区
什么情况下用每月几千条差评和 Q&A 没有人力一条条看,但痛点都在里面;新品开发不知道做什么功能、改什么问题
成功是什么样的自动提取 Top 10 高频痛点,新品开发有用户数据背书,每月出竞品用户洞察报告
业务痛点
差评太多看不过来不知道用户真正在意什么竞品评论没有系统分析过新品开发靠拍脑袋

1. 解决的问题

母婴运营每季度面对 3 万条吸奶器评论却无从下手——LLM JSON 批量提取将评论结构化时间压缩至 2 小时,自动生成 Top10 差评维度排行,年化节省人力约 18 万元并加速产品迭代 4 周

2. 核心算法逻辑

核心思路是把评论结构化拆解为三层流水线:

3. 业务应用场景

- 业务问题:某跨境母婴品牌 `BabyBreeze` 吸奶器 ASIN 每季度积累 30,000+ 条 Amazon 评论,人工总结产品缺陷需 2 名运营 3 个工作日,且主观性强、遗漏率高达 30%。 - 数据要求:Amazon 评论 CSV(含 `review_text`, `star_rating`, `verified_purchase`),最少 500 条,建议 2,000 条以上 - 预期产出:Top10 差评维度排行榜(如:吸力不足 34% → 噪音大 28% → 配件漏奶 21% → ...),每维度附代表性评论片段 - 业务价值:将季度痛点总结从 3 人天压缩至 2 小时,

- 业务问题:品牌同时运营婴儿监视器、湿巾加热器、消毒锅共 12 个 SKU,需要跨品类对比核心差评维度,找出共性工程问题(如"连接稳定性"可能跨越多品类)。 - 数据要求:每个 SKU 的评论 CSV,总量 5,000–20,000 条 - 预期产出:跨 SKU 差评维度热力矩阵(横轴:SKU,纵轴:语义概念,值:差评率),识别共性工程缺陷集中投入整改 - 业务价值:共性工程问题一次整改可同步修复 3–5 个 SKU 的差评痛点,一次产品迭代 ROI 提升 3x(单 SKU 迭代成本约 8 万元,一次覆盖 4 个 SKU 则边际成本降至 2 万元/SKU)。

4. 输入数据要求

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

5. 输出结果

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

6. 业务价值 / ROI

18 万元

7. 代码模板

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

"""
LLM Review Structured Extraction — 方面情感 JSON 批量提取与语义聚类
参考论文: arXiv:2509.26103 (Wayfair 2025)

三阶段流水线:
  1. LLM JSON 提取 (aspect, sentiment, evidence)
  2. 语义聚类 (sentence-transformers + HDBSCAN 压缩)
  3. 差评率统计 (Top-N 排名输出)

依赖: pip install sentence-transformers scikit-learn numpy
API 依赖: openai 或 anthropic (测试模式下用 mock 无需真实 key)
"""

from __future__ import annotations
import json
import re
from collections import defaultdict
from dataclasses import dataclass, field
from typing import List, Dict, Any, Optional
import numpy as np


# ─────────────────────────────────────────────────────────────────────────────
# 数据结构
# ─────────────────────────────────────────────────────────────────────────────

@dataclass
class AspectTriple:
    """单个 aspect-sentiment-evidence 三元组"""
    aspect: str
    sentiment: str  # "positive" | "negative" | "neutral"
    evidence: str

@dataclass
class ReviewExtraction:
    """单条评论的提取结果"""
    review_id: str
    review_text: str
    star_rating: int
    aspects: List[AspectTriple] = field(default_factory=list)
    error: Optional[str] = None


# ─────────────────────────────────────────────────────────────────────────────
# 阶段 1: LLM JSON 提取
# ─────────────────────────────────────────────────────────────────────────────

EXTRACTION_PROMPT = """\
你是一名专业的产品评论分析师。请从以下产品评论中提取关键方面(aspect)及其情感(sentiment)。

规则:
1. 每条评论最多提取 5 个最重要的 aspect
2. sentiment 只能是 "positive"、"negative"、"neutral" 之一
3. evidence 是原文中直接支持该判断的片段(≤20字)
4. 输出必须是合法 JSON,不要有额外说明

输出格式:
{"aspects": [{"aspect": "...", "sentiment": "...", "evidence": "..."}, ...]}

评论文本:

8. 论文来源

  • 2509.26103