AI_SENTIMENT

本文为您介绍如何使用AI_SENTIMENT通过AI大模型进行情感分析。

使用限制

  • 仅实时计算引擎VVR 11.4及以上版本支持。

  • AI_SENTIMENT语句相关的Flink算子的吞吐量受到模型平台限流的限制。当触及平台允许的访问流量上限时,Flink作业会表现出以该算子为瓶颈的反压现象。在限流情况严重时,可能会触发相关算子的超时报错及作业重启。

语法

AI_SENTIMENT(
  MODEL => MODEL <MODEL NAME>, 
  INPUT => <INPUT COLUMN NAME>
)

入参

参数

数据类型

说明

MODEL <MODEL NAME>

MODEL

注册的模型服务名字。详情请参见模型设置注册模型服务。

注意:目前需要该模型的输出类型为 VARIANT 类型。

<INPUT COLUMN NAME>

STRING

模型的待分析数据。

输出

参数

数据类型

说明

score

DOUBLE

模型判断的情感分数(-1.0 到 1.0 之间):

  • -1.0: 极度负面

  • -0.5:较为负面

  • -0.0:中性

  • 0.5:较为正面

  • 1.0 极度正面

label

STRING

情感标签(positive/negative/neutral)

confidence

DOUBLE

模型输出的置信度

示例

测试数据

id

movie_name

comment

actual_label

1

好东西

最爱小孩子猜声音那段,算得上看过的电影里相当浪漫的叙事了。很温和也很有爱。

POSITIVE

2

水饺皇后

乏善可陈

NEGATIVE

测试语句

示例SQL创建通义千问Qwen-Plus模型,使用AI_SENTIMENT函数对电影评论进行情感分类预测。

CREATE TEMPORARY MODEL general_model
INPUT (`input` STRING)
OUTPUT (`content` VARIANT)
WITH (
    'provider' = 'openai-compat',
    'endpoint'='<YOUR ENDPOINT>',
    'apiKey' = '<YOUR KEY>',
    'model' = 'qwen-plus'
);

CREATE TEMPORARY VIEW movie_comment(id, movie_name,  user_comment, actual_label)
AS VALUES (1, '好东西', '最爱小孩子猜声音那段,算得上看过的电影里相当浪漫的叙事了。很温和也很有爱。', 'positive'), (2, '水饺皇后', '乏善可陈', 'negative');

-- Use positional argument to call AI_SENTIMENT
SELECT id, movie_name, actual_label, score, label, confidence FROM movie_comment, 
LATERAL TABLE(
  AI_SENTIMENT(
    MODEL general_model, user_comment));
    
-- Use named argument to call AI_SENTIMENT
SELECT id, movie_name, actual_label, score, label, confidence FROM movie_comment, 
LATERAL TABLE(
  AI_SENTIMENT(
    MODEL => MODEL general_model, 
    INPUT => user_comment)); 

输出结果

预测结果label 与实际结果actual_label一致。

id

movie_name

actual_label

score

label

confidence

1

好东西

positive

0.8

positive

0.95

2

水饺皇后

negative

-1.0

negative

0.95