SuperAPI AI 工具集

sentiment-analysis

数据与分析

查看项目

更新于 10-31 17:41

技能介绍

该技能面向在 Databricks 管道中把自由文本转换为情感、主题、实体等结构化列的场景,属于 SDP(Spark Declarative Pipelines)体系下的 AI 函数使用规范,假定表治理与管道基础能力已经具备。

用途与函数选择 技能按输出目标选择内置 AI 函数:ai_analyze_sentiment(text) 对每行给出整体情感,输出 positive、negative、neutral、mixed 之一;ai_classify(text, ARRAY('a','b',...)) 把文本归入固定标签集(主题、意图);ai_extract(text, ARRAY('field1','field2')) 抽取命名实体或字段,返回 STRUCT;ai_summarize(text, max_words) 压缩长文本;ai_translate(text, lang) 用于情感分析前的多语言归一;ai_query(endpoint, prompt) 覆盖内置函数无法处理的自定义提示。技能建议优先用内置函数,因为更便宜、受治理且无需 serving endpoint。

标准输出模式 Silver 层情感表需按顺序至少暴露:<entity>id(主键)、source_text(供调试与重跑的原始文本)、sentiment_label、topic_label、extracted_entities,以及可选的 summary;之后才是 data_quality_flag 与审计列。额外 AI 派生列以 ai 前缀命名以便审计和下游过滤。

分层规则 Bronze 层不得调用 AI 函数,只落地原始文本与稳定标识;Silver 层执行 AI 函数,并使用 MATERIALIZED VIEW 使调用仅在刷新时运行,调用前过滤无效文本、用 CASE 做门控,并添加 data_quality_flag(MISSING_TEXT、AI_NULL_RESPONSE、CLEAN);Gold 层不得调用 AI 函数且不得包含 source_text,只按业务维度聚合情感。

成本与质量护栏 技能要求:预过滤垃圾文本(如 LENGTH(TRIM(text)) >= 5);用物化视图而非普通视图;开发期用 WHERE MOD(HASH(...), 100) = 0 采样约 1% 数据,上线前移除;传入原始列而非非确定性表达式;下游复用 Silver 的 AI 列而非重复调用;在 Silver/Gold 上设置 delta.enableChangeDataFeed = "true" 以支持增量消费。还应添加 CONSTRAINT 子句防止 AI 标签漂移,若频繁触发应通过代码评审更新分类体系,而非悄悄放宽约束。

PII 注意事项 客户评论常含姓名、邮箱、电话、订单号等 PII:source_text 应标注为 [PII: FREEFORM - HIGH],不得传播到 Gold;Gold 中不得将 Silver 情感与含 PII 的客户属性直接关联,应先聚合;若 extracted_entities 中的真人姓名需对外暴露则先脱敏或哈希。

示例与检查清单 该技能以 AI/BI Bakehouse Marketplace 共享数据为端到端示例,安装笔记本 market_data/install_bakehouse.py(原文为 marketplace_data/install_bakehouse.py)把共享数据落地到临时目录并镜像到 <catalog>.<bakehouse_schema>,使用 customer_reviews 作为 Bronze,franchises 用于 Gold 补充加盟店名称,transactions 可选择用于关联客单价与情感。技能还提供了一份检查清单,覆盖 Bronze 仅原始文本、Silver 使用物化视图、AI 调用门控、输出列齐全、约束锁定标签集、数据质量标记、CDC 开启、审计列置末、PII 处理到位等要点。使用时可结合 @table-governance、@sdp-basics、@pii-management 组合应用。