使用MaxCompute公共模型进行网络评论情感分析

本文使用MaxCompute公共模型进行网络评论情感分析的场景实践。

场景说明

随着社交媒体和电商平台的快速发展,互联网用户产生的评论数据快速增长,蕴含着丰富的公众情绪与观点。网络评论情感分析(Sentiment Analysis on Online Comments)已成为舆情监控、品牌管理和产品优化的重要工具。本文通过一个实际案例,展示如何在MaxCompute中使用SQL调用AI Function,结合平台内置的公共大模型(如Qwen3-0.6B-GGUF),直接对评论进行情感分类和地理信息提取。无需模型部署或外部服务,数据无需搬移,即可在安全可控的环境中完成智能分析,大幅提升分析效率与便捷性。

方案优势

  • 基于MaxCompute的公共模型与AI Function,用户无需部署模型或开发函数,仅用简单SQL即可完成文本情感分析等复杂场景的数据分析任务。

  • 分析过程在平台内部完成,无需数据搬迁,不依赖外部服务,保障数据安全与合规。

  • 降低使用门槛,提升分析效率。相较于传统的数据分析方法,如使用静态映射表、正则表达式等,有更强的扩展性、灵活性和处理复杂关系的能力,无需投入较高的维护成本,使用门槛更低、业务更友好。

环境准备

开通MaxCompute创建MaxCompute项目。如已完成可跳过此步骤。

数据准备

本示例中的命令通过本地客户端(odpscmd)运行。

建表

创建表详情请参见创建和删除表

CREATE TABLE IF NOT EXISTS emotional_comment
(
    content_id      STRING COMMENT '评论id',
    text            STRING COMMENT '评论内容',
    publish_time    STRING COMMENT '评论时间',
    use_id          STRING COMMENT '用户id',
    user_followers  STRING COMMENT '用户粉丝数',
    user_region     STRING COMMENT '用户地域',
    repost_count    STRING COMMENT '转发量',
    comment_count   STRING COMMENT '评论量',
    quote_count     STRING COMMENT '点赞量'
);

导入数据

样例数据文件下载:demo_comment.csv

TUNNEL UPLOAD demo_comment.csv emotional_comment;

SELECT * FROM emotional_comment LIMIT 10;

+------------------+----------------------------------------------------+---------------+------------+----------------+-------------+--------------+---------------+-------------+
| content_id       | text                                               | publish_time  | user_id    | user_followers | user_region | repost_count | comment_count | quote_count |
+------------------+----------------------------------------------------+---------------+------------+----------------+-------------+--------------+---------------+-------------+
| 5087a5a3c22e3f4c | 今天天气真好,心情很不错!阳光明媚,适合出去散步。         | 2025/5/27 12:49 | user_918561 | 132169         | 西安市      | 1015         | 3197          | 1300        |
| 299aa8f97b6fee2f | 今天天气真好,心情很不错!阳光明媚,适合出去散步。         | 2025/5/31 07:46 | user_403208 | 669019         | 呼和浩特市  | 6616         | 4876          | 201         |
| e7ee00dec51b28f6 | 科技发展日新月异,人工智能改变生活。                     | 2025/5/17 11:39 | user_291936 | 840757         | 南宁市      | 264          | 3668          | 174         |
| 0c0d61608cabbac3 | 防控措施很到位,为医护人员点赞!                        | 2025/5/18 03:29 | user_154572 | 925604         | 福州市      | 2154         | 652           | 470         |
| 106b979787b580d1 | 今天天气真好,心情很不错!阳光明媚,适合出去散步。         | 2025/5/28 14:45 | user_528807 | 656952         | 青岛市      | 6617         | 3890          | 1275        |
| 05b0e2ef4636d5c9 | 环保意识需要进一步提高,保护我们的地球家园。              | 2025/5/16 09:06 | user_693289 | 211093         | 佛山市      | 4283         | 1592          | 1792        |
| c9773c4a632a8839 | 这家餐厅的服务态度很好,菜品也很美味,值得推荐。           | 2025/5/21 19:19 | user_850376 | 817461         | 沈阳市      | 9552         | 3974          | 1740        |
| 089e0c5dddc53198 | 环保意识需要进一步提高,保护我们的地球家园。              | 2025/5/17 10:58 | user_800324 | 716599         | 哈尔滨市    | 5725         | 4437          | 939         |
| 04fd7323a957d978 | 教育改革措施需要更多时间来观察效果。                     | 2025/5/26 01:25 | user_544689 | 416372         | 合肥市      | 1440         | 4185          | 416         |
| 04cf4066c5c1e9c7 | 这家餐厅的服务态度很好,菜品也很美味,值得推荐。           | 2025/5/27 03:49 | user_373334 | 722353         | 长春市      | 1134         | 3936          | 773         |
+------------------+----------------------------------------------------+---------------+------------+----------------+-------------+--------------+---------------+-------------+

查看公共模型

运行SQL命令查看公共模型Qwen3-0.6B。

-- 设置flag。
SET odps.task.major.version=flighting;
SET odps.sql.using.public.model=true;
SET odps.namespace.schema=false;

-- 查看公共模型详情。
DESC MODEL bigdata_public_modelset.Qwen3-0.6B-GGUF;

+------------------------------------------------------------------------------------+
|                  Model Information                                                 |
+------------------------------------------------------------------------------------+
| Owner:                    ALIYUN$od**@aliyun-inner.com                             |
| Project:                  bigdata_public_modelset                                  |
| Model Name:               Qwen3-0.6B-GGUF                                          |
| Model Type:               LLM                                                      |
| Source Type:              IMPORT                                                   |
| Default Version:          v1                                                       |
| CreateTime:               2025-09-25 23:35:31                                      |
| LastModifiedTime:         2025-09-25 23:35:31                                      |
| Comment:                  MaxCompute Public LLM Model Qwen3-0.6B-GGUF with 8-bit mixed quantization (Q8_0), using default settings {"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}. Source:https://huggingface.co/unsloth/Qwen3-0.6B-GGUF |
+------------------------------------------------------------------------------------+
|                Version Information                                                 |
+------------------------------------------------------------------------------------+
| Owner:                    ALIYUN$****@aliyun-inner.com                             |
| Project:                  bigdata_public_modelset                                  |
| Model Name:               Qwen3-0.6B-GGUF                                          |
| Model Type:               LLM                                                      |
| Source Type:              IMPORT                                                   |
| Version Name:             v1                                                       |
| Path:                                                                              |
| CreateTime:               2025-09-25 23:35:31                                      |
| LastModifiedTime:         2025-09-25 23:35:31                                      |
+------------------------------------------------------------------------------------+
| Input           | Type       | Comment                                             |
+------------------------------------------------------------------------------------+
| prompt          | string     |                                                     |
| settings        | string     |                                                     |
+------------------------------------------------------------------------------------+

数据分析

下面的示例代码展示了如何在MaxCompute中通过AI_GENERATE函数,结合公共大模型(Qwen3-0.6B-GGUF),在一个SQL查询中同时完成两项AI推理任务:

  1. 地理信息解析:根据用户评论中的城市名称(如“西安市”),自动推断其所属的省级行政区(如“陕西省”);

  2. 情感倾向分类:对评论文本进行情感分析,输出标准化标签(“正面”、“负面”或“中性”)。

函数的使用详情参见AI_GENERATE

-- 通过AI_GENERATE函数调用内置的千问3模型,生成省会城市名称和情感分析的标签结果。
SELECT 
  AI_GENERATE(
    bigdata_public_modelset.Qwen3-0.6B-GGUF,
    default_version,
    CONCAT(
      '请提供以下城市所在的省份,如果该城市是直辖市或特区则直接显示该城市名,输出仅包含省份名称。城市名:',user_region),
    '{"max_tokens": 1000, "temperature": 0.7}'
  ) as province,
  user_region,
  AI_GENERATE(
    bigdata_public_modelset.Qwen3-0.6B-GGUF,
    default_version,
    CONCAT(
      '请对以下评论进行情感分析分类,输出结果仅限于以下三个选项之一:正面、负面、中性。待分析的评论:', text),
    '{"max_tokens": 1000, "temperature": 0.7}'
  ) as sentiment_label,
  text
  FROM emotional_comment limit 20
;

+--------------------+----------------+--------------------+----------------------------------------------------+
| province           | user_region    | sentiment_label    | text                                               |
+--------------------+----------------+--------------------+----------------------------------------------------+
| "陕西省"            | 西安市          | "正面"             | 今天天气真好,心情很不错!阳光明媚,适合出去散步。           |
| "内蒙古自治区"       | 呼和浩特市      | "正面"              | 今天天气真好,心情很不错!阳光明媚,适合出去散步。           |
| "广西"              | 南宁市         | "正面"              | 科技发展日新月异,人工智能改变生活。                      |
| "福建省"            | 福州市         | "正面"              | 防控措施很到位,为医护人员点赞!                         |
| "河北省"            | 青岛市         | "正面"              | 今天天气真好,心情很不错!阳光明媚,适合出去散步。          |
| "甘肃省"            | 兰州市         | "中性"              | 教育改革措施需要更多时间来观察效果。                      |
| "福建省"            | 福州市         | "正面"              | 科技发展日新月异,人工智能改变生活。                      |
| "湖南省"            | 长沙市         | "负面"              | 对这个措施表示强烈抗议,这完全不合理!                    |
| "四川省"            | 重庆市         | "正面"              | 防控措施很到位,为医护人员点赞!                         |
| "广东省"            | 广州市         | "正面"              | 食品安全问题不容忽视,监管要更加严格。                    |
| "陕西省"            | 西安市         | "负面"              | 最近股市波动很大,投资需要谨慎。                         |
| "山东省"            | 济南市         | "正面"              | 今天天气真好,心情很不错!阳光明媚,适合出去散步。          |
| "河北省"            | 天津市         | "正面"              | 新产品发布会很成功,期待后续发展。                       |
| "河北省"            | 天津市         | "正面"              | 今天天气真好,心情很不错!阳光明媚,适合出去散步。          |
| "新疆"              | 乌鲁木齐市      | "负面"             | 房价又涨了,年轻人买房压力越来越大。                     |
| "广西"              | 南宁市         | "正面"             | 新产品发布会很成功,期待后续发展。                       |
| "青海省"            | 西宁市         | "正面"              | 体育赛事精彩纷呈,为运动员加油!                        |
| "黑龙江省"          | 哈尔滨市        | "负面"              | 最近股市波动很大,投资需要谨慎。                        |
| "黑龙江省"          | 哈尔滨市        | "正面"              | 体育赛事精彩纷呈,为运动员加油!                        |
| "江苏省"            | 南京市         | "负面"              | 交通堵塞太严重了,上班迟到了半小时,真是烦人。             |
+--------------------+----------------+--------------------+----------------------------------------------------+