- 业务场景描述
在电商业务中,我们每天都会收到成千上万条用户评价。传统的情感分析通常需要将数据导出到 Python 环境,调用 NLP 库或 API,处理完后再导回数据库,链路冗长且维护成本高。
本次实践,我将直接在 MaxCompute 中使用 SQL AI 功能,对一批手机产品的用户评论进行情感分类(正向/负向),并针对负面评价自动生成改进建议,帮助运营团队快速锁定产品痛点。
- 数据准备
首先,我们在 MaxCompute 中有一张名为 product_reviews 的表,包含用户评论文本:
-- 创建示例数据表
CREATE TABLE IF NOT EXISTS product_reviews (
review_id BIGINT,
content STRING
);
-- 插入示例数据
INSERT INTO TABLE product_reviews VALUES
(1, '手机拍照非常清晰,尤其是夜景模式,续航也给力,好评!'),
(2, '屏幕显示效果不错,但是打游戏发热严重,半小时就烫手。'),
(3, '物流很快,但手机外壳有划痕,系统偶尔卡顿,体验不好。'),
(4, '音质震撼,充电速度极快,是今年买过最满意的电子产品。');
- SQL AI 实战代码
借助 MaxCompute SQL AI,我们可以直接通过 AI_ANALYZE 或 AI_EXTRACT(具体语法以环境中实际支持为准)来调用大模型。
以下是实现“情感分析”与“建议生成”的核心 SQL:
-- 使用 SQL AI 进行情感判定与建议生成
SELECT
review_id,
content,
-- 步骤1:判定情感倾向
AI_ANALYZE(content, "请判定这段评论的情感倾向是'正向'还是'负向'。") AS sentiment,
-- 步骤2:针对评论内容给出业务改进建议
AI_ANALYZE(content, "你是一位产品专家,请根据这条用户反馈给出一句话的改进建议。") AS suggestion
FROM
product_reviews;
注: 在实际操作中,MaxCompute SQL AI 还支持定义 Service(服务)和 Model(模型)。如果您使用的是自定义模型,语法可能类似于 AI_PREDICT(model_name, content)。
- 执行效果展示
执行上述 SQL 后,我们得到了如下结果:
review_id,content,sentiment,suggestion
1,手机拍照非常清晰...,正向,继续保持影像技术优势,可作为核心卖点宣传。
2,...打游戏发热严重...,负向,优化散热模组设计或通过系统更新优化游戏功耗调度。
3,...外壳有划痕,系统卡顿...,负向,加强出厂品控检查,并针对系统底层流畅度进行专项优化。
4,音质震撼...满意...,正向,考虑将高保真音质作为该系列的品牌基因持续迭代。 - 使用体验与总结
通过这次实践,我有以下几点深刻体会:
极简开发: 以前需要写几十行 Python 代码、处理 API 限流和并发的问题,现在只需要写一段 SQL。这种“数据在哪里,AI 就在哪里”的体验非常丝滑。
效率提升: 大规模离线数据的处理可以直接利用 MaxCompute 的计算算力,无需数据频繁搬迁,极大地节省了 ETL 时间。
场景广阔: 除了情感分析,这种方式还可以用于文本摘要提取、数据清洗(如纠正拼写错误)、甚至自动生成 SQL 报表说明。
建议: 希望后续能支持更多自定义 Prompt 模版的预设,以及针对超大规模数据处理时更细粒度的进度展示。