Tous les produits
Search
Centre de documentation

MaxCompute:Analyser le sentiment des commentaires en ligne avec MaxCompute

Dernière mise à jour :Aug 10, 2026

Cette rubrique explique comment analyser le sentiment des commentaires en ligne à l'aide d'un modèle public dans MaxCompute.

Scénario

La croissance rapide des réseaux sociaux et des plateformes de commerce électronique a entraîné une augmentation massive des commentaires générés par les utilisateurs, riches en opinions et en sentiments publics. L'analyse de sentiment est devenue un outil essentiel pour surveiller l'opinion publique, gérer la marque et optimiser les produits. Cette rubrique présente un exemple concret d'utilisation du langage SQL pour appeler une fonction IA (AI Function) dans MaxCompute avec un grand modèle public intégré, tel que qwen3.7-max, afin de classifier directement les sentiments et d'extraire des informations géographiques à partir des commentaires. Ce processus ne nécessite ni déploiement de modèle, ni service externe, ni déplacement de données. Vous analysez intelligemment vos données dans un environnement sécurisé et contrôlé, ce qui améliore considérablement l'efficacité et la simplicité de l'analyse.

Avantages

  • Grâce aux modèles publics et à la fonction AI Function de MaxCompute, vous exécutez des tâches d'analyse de données complexes, telles que l'analyse de sentiment de texte, sans déployer de modèles ni développer de fonctions.

  • L'analyse s'exécute entièrement au sein de la plateforme, sans migration de données ni services externes, garantissant ainsi la sécurité et la conformité des données.

  • Cette approche abaisse les barrières à l'entrée et améliore l'efficacité de l'analyse. Par rapport aux méthodes traditionnelles d'analyse de données, comme les tables de correspondance statiques ou les expressions régulières, elle offre une plus grande évolutivité, une flexibilité accrue et la capacité de gérer des relations complexes. Cette méthode est également plus conviviale et réduit les coûts de maintenance.

Prérequis

Ignorez cette étape si vous avez déjà activé MaxCompute et créé un projet MaxCompute.

Préparer les données

Cet exemple utilise le client odpscmd pour exécuter les commandes.

Créer une table

Pour plus d'informations sur la création de tables, consultez la section Créer et supprimer des tables :

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'
);

Importer des données

Téléchargez le fichier de données d'exemple : 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         |
+------------------+----------------------------------------------------+---------------+------------+----------------+-------------+--------------+---------------+-------------+

Afficher le modèle public

Exécutez la commande SQL suivante pour afficher les détails du modèle public 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                                             |
+------------------------------------------------------------------------------------+
+------------------------------------------------------------------------------------+

Analyser les données

L'exemple de code suivant montre comment utiliser la fonction AI_GENERATE dans MaxCompute avec le grand modèle public (qwen3.7-max) pour effectuer simultanément deux tâches d'inférence IA dans une seule requête SQL :

  1. Analyse des informations géographiques : déduit automatiquement la province (par exemple, « Province du Shaanxi ») à partir du nom de la ville mentionné dans le commentaire d'un utilisateur (par exemple, « Xi'an »).

  2. Classification des sentiments : analyse le sentiment du texte du commentaire et génère un libellé standardisé (« Positive », « Negative » ou « Neutral »).

Pour plus d'informations, consultez la section 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.             |
+--------------------+----------------+--------------------+----------------------------------------------------+