本文为您介绍如何使用AI_SENTIMENT通过AI大模型进行情感分析。
使用限制
-
仅实时计算引擎VVR 11.4及以上版本支持。
-
使用 Flink AI 服务(内置模型)时,需使用 VVR 11.7 及以上版本引擎,并已开通 Flink AI服务(内置模型)。
-
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 之间):
|
|
label |
STRING |
情感标签(positive/negative/neutral) |
|
confidence |
DOUBLE |
模型输出的置信度 |
示例
测试数据
|
id |
movie_name |
comment |
actual_label |
|
1 |
好东西 |
最爱小孩子猜声音那段,算得上看过的电影里相当浪漫的叙事了。很温和也很有爱。 |
POSITIVE |
|
2 |
水饺皇后 |
乏善可陈 |
NEGATIVE |
测试语句
示例SQL引用Flink内置模型,使用AI_SENTIMENT函数对电影评论进行情感分类预测。
CREATE TEMPORARY MODEL general_model
INPUT (`input` STRING)
OUTPUT (`content` VARIANT)
WITH (
'provider' = 'openai-compat',
'task' = 'chat/completions',
'model' = 'qwen3.6-flash'
);
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 |