AI_SENTIMENT 是 MaxCompute 提供的 AI Function,通过调用模型对输入的文本进行情感分析。
命令格式
STRING AI_SENTIMENT(
STRING <model_name>,
STRING <version_name>,
STRING <input>
[, ARRAY<STRING> <categories>]
[, STRING <model_parameters>]
);参数说明
model_name:必填。STRING 类型。待使用的模型名,请参见SQL AI Function。
version_name:必填。STRING 类型。待使用的模型版本名。如果调用默认版本,支持直接输入
DEFAULT_VERSION。input:必填。STRING类型。待进行情感分析的文本。
categories:选填。ARRAY<STRING>类型。需要做情感分析的类目。默认为 positive(积极)、negative(消极)、neutral(中性)、mixed(混合)。支持常量和列输入,当为常量时类目的数量范围在[1,10]。
model_parameters:选填。STRING 类型。支持指定模型调用相关参数 max_tokens、temperature、top_p,格式为
'{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'。参数说明如下:max_tokens:设置模型单次调用输出 token 的最大数量,对于 MaxCompute 公共模型,默认值为 4096。
temperature:介于 0 到 1 之间的值,用于控制模型输出的随机性强度。值越大,输出越具创意和多样性;值越低,输出越确定和保守。
top_p:介于 0 到 1 之间的值,用于限定模型选择的备选标签范围。值越大,备选范围越广,多样性越高;值越小,范围越窄,结果越集中。
返回值说明
返回 STRING 类型的情感类目。返回规则如下:
input 文本所属情感分类无法识别时,返回 NULL。
input 为 NULL、空字符串(""),或 categories 为空字符串("")时,返回 NULL。
categories 为 NULL 时,效果等同于未使用 categories 参数,使用默认类目(positive、negative、neutral、mixed)。
categories 参数为常量且数量超过 10 时,返回报错。
使用示例
示例 1:使用默认类目进行情感分析
调用 MaxCompute 提供的公共模型 Qwen3-4B-GGUF,对一条商品评价进行情感分析。未指定自定义类目,函数使用默认类目(positive、negative、neutral、mixed)。
SET odps.sql.ai.treat.as.common.model=true;
SET odps.namespace.schema=true;
SELECT AI_SENTIMENT(
bigdata_public_modelset.default.`Qwen3-4B-GGUF`,
DEFAULT_VERSION,
'产品质量非常好,物流也很快,强烈推荐!'
) AS sentiment;
-- 返回结果
+-----------+
| sentiment |
+-----------+
| positive |
+-----------+示例 2:使用自定义类目进行情感分析
调用 MaxCompute 提供的公共模型 Qwen3-4B-GGUF,使用自定义类目对多条客户评价进行情感分析。本示例通过 categories 参数指定了一组自定义标签(正面、负面、中性),更贴合客户满意度分析场景。
-- 示例数据
CREATE TABLE customer_feedback (
review STRING
);
INSERT INTO customer_feedback VALUES
('服务超出预期,非常满意!'),
('体验很差,产品用了一天就坏了。'),
('包裹准时到达,没什么特别的。'),
('外观设计很喜欢,但续航太短了。');
-- 使用自定义类目分析客户评价情感
SET odps.sql.ai.treat.as.common.model=true;
SET odps.namespace.schema=true;
SELECT
review,
AI_SENTIMENT(
bigdata_public_modelset.default.`Qwen3-4B-GGUF`,
DEFAULT_VERSION,
review,
ARRAY('正面', '负面', '中性')
) AS sentiment
FROM customer_feedback;
-- 返回结果
+--------------------------------------+--------------+
| review | sentiment |
+--------------------------------------+--------------+
| 服务超出预期,非常满意! | 正面 |
| 体验很差,产品用了一天就坏了。 | 负面 |
| 包裹准时到达,没什么特别的。 | 中性 |
| 外观设计很喜欢,但续航太短了。 | 中性 |
+--------------------------------------+--------------+