AI_SENTIMENT

更新时间:
复制为 MD 格式

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    |
+--------------------------------------+--------------+
| 服务超出预期,非常满意!               | 正面    |
| 体验很差,产品用了一天就坏了。         | 负面  |
| 包裹准时到达,没什么特别的。           | 中性      |
| 外观设计很喜欢,但续航太短了。         | 中性  |
+--------------------------------------+--------------+