Este tópico demonstra como analisar o sentimento de comentários online usando um modelo público no MaxCompute.
Cenário
O crescimento acelerado das redes sociais e das plataformas de e-commerce gerou um grande volume de comentários produzidos por usuários, repletos de opiniões e sentimentos públicos. A análise de sentimento tornou-se uma ferramenta essencial para monitorar a opinião pública, gerenciar marcas e otimizar produtos. Este tópico apresenta um exemplo prático de uso de SQL para chamar uma AI Function no MaxCompute com um modelo grande público integrado, como o qwen3.7-max, para classificar diretamente o sentimento e extrair informações geográficas dos comentários. Esse processo dispensa a implantação de modelos, services externos ou movimentação de dados. Assim, você executa análises inteligentes em um ambiente seguro e controlado, o que aumenta significativamente a eficiência e a praticidade da análise.
Benefícios
Com os modelos públicos e a AI Function do MaxCompute, você realiza tarefas complexas de análise de dados, como a análise de sentimento de texto, sem precisar implantar modelos ou desenvolver funções.
A análise ocorre inteiramente na plataforma, o que elimina a necessidade de migração de dados ou services externos e garante a segurança e a conformidade dos dados.
Essa abordagem reduz a barreira de entrada e aumenta a eficiência da análise. Em comparação com métodos tradicionais, como tabelas de mapeamento estático ou expressões regulares, ela oferece maior escalabilidade, flexibilidade e capacidade de lidar com relações complexas. Além disso, é mais fácil de usar e reduz os custos de manutenção.
Pré-requisitos
Ignore esta etapa se você já tiver ativado o MaxCompute e criado um projeto do MaxCompute.
Prepare os dados
Este exemplo usa o cliente odpscmd para executar os comandos.
Crie uma tabela
Para obter mais informações sobre a criação de tabelas, consulte Criar e excluir tabelas:
CREATE TABLE IF NOT EXISTS emotional_comment
(
content_id STRING COMMENT 'Comment ID',
text STRING COMMENT 'Comment content',
publish_time STRING COMMENT 'Comment time',
user_id STRING COMMENT 'User ID',
user_followers STRING COMMENT 'User follower count',
user_region STRING COMMENT 'User region',
repost_count STRING COMMENT 'Repost count',
comment_count STRING COMMENT 'Comment count',
quote_count STRING COMMENT 'Like count'
);
Importe os dados
Baixe o arquivo de dados de amostra: 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 | The weather is great today, and I'm in a good mood! The sun is shining, perfect for a walk. | 2025/5/27 12:49 | user_918561 | 132169 | Xi'an | 1015 | 3197 | 1300 |
| 299aa8f97b6fee2f | The weather is great today, and I'm in a good mood! The sun is shining, perfect for a walk. | 2025/5/31 07:46 | user_403208 | 669019 | Hohhot | 6616 | 4876 | 201 |
| e7ee00dec51b28f6 | Technology is advancing rapidly, and AI is changing our lives. | 2025/5/17 11:39 | user_291936 | 840757 | Nanning | 264 | 3668 | 174 |
| 0c0d61608cabbac3 | The prevention and control measures are very effective. Thumbs up to the healthcare workers! | 2025/5/18 03:29 | user_154572 | 925604 | Fuzhou | 2154 | 652 | 470 |
| 106b979787b580d1 | The weather is great today, and I'm in a good mood! The sun is shining, perfect for a walk. | 2025/5/28 14:45 | user_528807 | 656952 | Qingdao | 6617 | 3890 | 1275 |
| 05b0e2ef4636d5c9 | Environmental awareness needs to be further improved to protect our planet. | 2025/5/16 09:06 | user_693289 | 211093 | Foshan | 4283 | 1592 | 1792 |
| c9773c4a632a8839 | The service at this restaurant is excellent, and the food is delicious. Highly recommended. | 2025/5/21 19:19 | user_850376 | 817461 | Shenyang | 9552 | 3974 | 1740 |
| 089e0c5dddc53198 | Environmental awareness needs to be further improved to protect our planet. | 2025/5/17 10:58 | user_800324 | 716599 | Harbin | 5725 | 4437 | 939 |
| 04fd7323a957d978 | Education reform measures need more time to show results. | 2025/5/26 01:25 | user_544689 | 416372 | Hefei | 1440 | 4185 | 416 |
| 04cf4066c5c1e9c7 | The service at this restaurant is excellent, and the food is delicious. Highly recommended. | 2025/5/27 03:49 | user_373334 | 722353 | Changchun | 1134 | 3936 | 773 |
+------------------+----------------------------------------------------+---------------+------------+----------------+-------------+--------------+---------------+-------------+
Visualize o modelo público
Execute o seguinte comando SQL para visualizar os detalhes do modelo público qwen3.7-max.
-- Set the flag.
SET odps.namespace.schema=false;
-- View the details of the public model.
DESC MODEL bigdata_public_modelset.`qwen3.7-max`;
+------------------------------------------------------------------------------------+
| Model Information |
+------------------------------------------------------------------------------------+
| Owner: RAM$odps@aliyun-inner.com:maxcompute_bigdata_public |
| Project: bigdata_public_modelset |
| Model Name: qwen3.7-max |
| Model Type: LLM |
| Source Type: REMOTE |
| Default Version: v1 |
| CreateTime: 2026-05-25 14:51:41 |
| LastModifiedTime: 2026-05-25 14:51:41 |
| Model ID: 724b2d7984f94f9a9e110969514e23e1 |
| Comment: MaxCompute Public LLM Model qwen3.7-max |
+------------------------------------------------------------------------------------+
| Version Information |
+------------------------------------------------------------------------------------+
| Owner: RAM$odps@aliyun-inner.com:maxcompute_bigdata_public |
| Project: bigdata_public_modelset |
| Model Name: qwen3.7-max |
| Model Type: LLM |
| Source Type: REMOTE |
| Version Name: v1 |
| Version ID: de37f6e4323346ebbcfbed0789194647 |
| Path: |
| CreateTime: 2026-05-25 14:51:41 |
| LastModifiedTime: 2026-05-25 14:51:41 |
| default_enable_thinking: TRUE |
| modelstudio_model_name: qwen3.7-max |
| price_tier: {
"tier1": [0,1024000]
} |
| reasoning_mode: TRUE |
+------------------------------------------------------------------------------------+
| Input | Type | Comment |
+------------------------------------------------------------------------------------+
+------------------------------------------------------------------------------------+
Analise os dados
O exemplo de código a seguir mostra como usar a função AI_GENERATE no MaxCompute com o modelo grande público (qwen3.7-max) para executar simultaneamente duas tarefas de inferência de IA em uma única consulta SQL:
Análise de informações geográficas: infere automaticamente a província (por exemplo, "Shaanxi Province") com base no nome da cidade presente no comentário do usuário (por exemplo, "Xi'an").
Classificação de sentimento: analisa o sentimento no texto do comentário e gera um rótulo padronizado ("positive", "negative" ou "neutral").
Para obter mais informações, consulte AI_GENERATE:
-- Use the AI_GENERATE function to call the built-in qwen3.7-max model and generate the province name and sentiment analysis label.
SELECT
AI_GENERATE(
bigdata_public_modelset.`qwen3.7-max`,
default_version,
CONCAT(
'Provide the province where the following city is located. If the city is a municipality or special administrative region, return the city name itself. Output only the province name. City name:',user_region),
'{"max_tokens": 1000, "temperature": 0.7}'
) as province,
user_region,
AI_GENERATE(
bigdata_public_modelset.`qwen3.7-max`,
default_version,
CONCAT(
'Perform sentiment classification on the following comment. The output must be one of these three options: Positive, Negative, Neutral. Comment to analyze:', text),
'{"max_tokens": 1000, "temperature": 0.7}'
) as sentiment_label,
text
FROM emotional_comment limit 20
;
+--------------------+----------------+--------------------+----------------------------------------------------+
| province | user_region | sentiment_label | text |
+--------------------+----------------+--------------------+----------------------------------------------------+
| "Shaanxi Province" | Xi'an | "Positive" | The weather is great today, and I'm in a good mood! The sun is shining, perfect for a walk. |
| "Inner Mongolia Autonomous Region" | Hohhot | "Positive" | The weather is great today, and I'm in a good mood! The sun is shining, perfect for a walk. |
| "Guangxi" | Nanning | "Positive" | Technology is advancing rapidly, and AI is changing our lives. |
| "Fujian Province" | Fuzhou | "Positive" | The prevention and control measures are very effective. Thumbs up to the healthcare workers! |
| "Shandong Province" | Qingdao | "Positive" | The weather is great today, and I'm in a good mood! The sun is shining, perfect for a walk. |
| "Gansu Province" | Lanzhou | "Neutral" | Education reform measures need more time to show results. |
| "Fujian Province" | Fuzhou | "Positive" | Technology is advancing rapidly, and AI is changing our lives. |
| "Hunan Province" | Changsha | "Negative" | I strongly protest this measure, it's completely unreasonable! |
| "Chongqing" | Chongqing | "Positive" | The prevention and control measures are very effective. Thumbs up to the healthcare workers! |
| "Guangdong Province" | Guangzhou | "Positive" | Food safety cannot be ignored; regulation must be stricter. |
| "Shaanxi Province" | Xi'an | "Negative" | The stock market has been very volatile lately, so invest with caution. |
| "Shandong Province" | Jinan | "Positive" | The weather is great today, and I'm in a good mood! The sun is shining, perfect for a walk. |
| "Tianjin" | Tianjin | "Positive" | The new product launch was very successful, looking forward to future developments. |
| "Tianjin" | Tianjin | "Positive" | The weather is great today, and I'm in a good mood! The sun is shining, perfect for a walk. |
| "Xinjiang" | Urumqi | "Negative" | Housing prices have gone up again, and the pressure on young people to buy a home is increasing. |
| "Guangxi" | Nanning | "Positive" | The new product launch was very successful, looking forward to future developments. |
| "Qinghai Province" | Xining | "Positive" | The sporting events are spectacular. Let's cheer for the athletes! |
| "Heilongjiang Province" | Harbin | "Negative" | The stock market has been very volatile lately, so invest with caution. |
| "Heilongjiang Province" | Harbin | "Positive" | The sporting events are spectacular. Let's cheer for the athletes! |
| "Jiangsu Province" | Nanjing | "Negative" | The traffic congestion is terrible. I was half an hour late for work, so annoying. |
+--------------------+----------------+--------------------+----------------------------------------------------+