ITSkillsCenter
Intelligence Artificielle

Comment utiliser l’IA pour l’analyse de sentiments

3 دقائق للقراءة
Comment utiliser l'intelligence artificielle pour l'analyse de données

Qu’est-ce que l’analyse de sentiments et pourquoi c’est utile

L’analyse de sentiments (sentiment analysis) est une technique de traitement du langage naturel (NLP) qui déterminé automatiquement si un texte exprime une opinion positive, négative ou neutre. Appliquée aux avis clients, aux commentaires sur les réseaux sociaux, aux réponses de sondages ou aux tickets de support, elle permet de comprendre à grande échelle ce que les gens pensent de votre produit, service ou marque sans lire manuellement chaque message.

Pour une entreprise sénégalaise qui reçoit des centaines de messages par jour sur WhatsApp, Facebook et Google Reviews, l’analyse de sentiments automatisée identifie immédiatement les clients mécontents qui nécessitent une intervention urgente, détecte les tendances dans les retours clients (un produit qui génère soudainement des avis négatifs), et mesure l’impact d’une campagne marketing sur la perception de la marque.

Méthode 1 : Analyse rapide avec l’API OpenAI

La méthode la plus simple pour démarrer est d’utiliser l’API de ChatGPT. Aucun entraînement de modèle n’est nécessaire, et les résultats sont précis en français. Installez la bibliothèque avec pip install openai, puis utilisez ce script :

from openai import OpenAI
import json

client = OpenAI(api_key="votre-clé-api")

def analyser_sentiment(texte):
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {
                "rôle": "system",
                "content": "Tu es un analyseur de sentiments. Pour chaque texte, "
                           "retourne un JSON avec: sentiment (positif/négatif/neutre), "
                           "score (0.0 a 1.0), et raison (explication courte)."
            },
            {"rôle": "user", "content": texte}
        ],
        response_format={"type": "json_object"},
        temperature=0
    )
    return json.loads(response.choices[0].message.content)

# Exemples
avis = [
    "Le service était excellent, livraison rapide et produit conforme !",
    "Très déçu, le colis est arrivé abîmé et le SAV ne répond pas.",
    "J'ai reçu ma commande hier, elle correspond à la description.",
    "Wallahi c'est trop bien, je recommande à 100% !"
]

for avis_client in avis:
    résultat = analyser_sentiment(avis_client)
    print(f"Texte: {avis_client}")
    print(f"Sentiment: {résultat}")
    print()

Le paramètre temperature=0 garantit des résultats reproductibles. Le response_format force la sortie en JSON structuré, ce qui facilite le traitement automatique des résultats. Le coût est d’environ 0,0001 dollar par analyse avec gpt-4o-mini, soit environ 1 dollar pour 10 000 avis analysés.

Méthode 2 : Analyse gratuite avec Hugging Face Transformers

Pour une solution gratuite et sans API externe, la bibliothèque Hugging Face Transformers propose des modèles pré-entraînés d’analyse de sentiments. Le modèle nlptown/bert-base-multilingual-uncased-sentiment gère le français nativement :

from transformers import pipeline

# Charger le modèle (téléchargement automatique au premier lancement)
analyseur = pipeline(
    "sentiment-analysis",
    model="nlptown/bert-base-multilingual-uncased-sentiment"
)

# Le modèle retourne un score de 1 à 5 étoiles
avis = [
    "Le service était excellent, livraison rapide !",
    "Très déçu, le colis est arrivé abîmé.",
    "Produit correct, rien de spécial.",
]

résultats = analyseur(avis)
for texte, résultat in zip(avis, résultats):
    etoiles = int(résultat['label'][0])  # Extraire le nombre d'étoiles
    sentiment = "positif" if etoiles >= 4 else "négatif" if etoiles <= 2 else "neutre"
    print(f"{sentiment} ({etoiles}/5) : {texte}")

Pour un modèle spécifiquement entraîné sur le français, utilisez cmarkea/distilcamembert-base-sentiment qui est basé sur CamemBERT et optimisé pour l'analyse de sentiments en français. Installez-le de la même manière en remplaçant le nom du modèle dans la fonction pipeline.

Méthode 3 : Entraîner votre propre modèle

Si vous avez des données spécifiques à votre domaine (avis sur des produits sénégalais, commentaires en franglais ou en wolof), un modèle personnalisé sera plus précis. Le processus de fine-tuning avec Hugging Face est accessible :

from datasets import Dataset
from transformers import AutoTokenizer, AutoModelForSequenceClassification
from transformers import TrainingArguments, Trainer
import numpy as np

# Préparer vos données (exemple simplifié)
données = {
    "text": [
        "Très bon produit, je recommande",
        "Nul, ne fonctionne pas du tout",
        "Service correct, délai respecté",
        # ... ajoutez vos données étiquetées
    ],
    "label": [2, 0, 1]  # 0=négatif, 1=neutre, 2=positif
}

dataset = Dataset.from_dict(données)

# Charger le modèle de base
model_name = "camembert-base"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(
    model_name, num_labels=3
)

# Tokeniser les données
def tokenize(examples):
    return tokenizer(examples["text"], truncation=True, padding=True)

dataset = dataset.map(tokenize, batched=True)

# Configurer l'entraînement
training_args = TrainingArguments(
    output_dir="./mon-modèle-sentiment",
    num_train_epochs=3,
    per_device_train_batch_size=8,
    learning_rate=2e-5,
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=dataset,
)

trainer.train()
model.save_pretrained("./mon-modèle-sentiment")

Pour obtenir un modèle performant, vous avez besoin d'au moins 500 exemples étiquetés par catégorie (positif, négatif, neutre). Collectez ces données à partir de vos avis Google, vos messages WhatsApp ou vos commentaires Facebook. L'étiquetage peut être accéléré en utilisant GPT-4 pour pré-étiqueter les données, puis en vérifiant manuellement les cas ambigus.

Application pratique : tableau de bord de réputation

Combinez l'analyse de sentiments avec une visualisation pour créer un tableau de bord de suivi de réputation. Utilisez Pandas pour agréger les résultats par période, par source (Google, Facebook, WhatsApp) et par produit/service. Matplotlib ou Plotly génèrent des graphiques d'évolution du sentiment dans le temps. Streamlit permet de créer une interface web interactive en quelques lignes de code :

import streamlit as st
import pandas as pd
import plotly.express as px

st.title("Tableau de bord - Sentiment clients")

# Charger les données analysées
df = pd.read_csv("resultats_sentiments.csv")

# Graphique d'évolution
fig = px.line(
    df.groupby(['date', 'sentiment']).size().reset_index(name='count'),
    x='date', y='count', color='sentiment',
    title="Évolution du sentiment client"
)
st.plotly_chart(fig)

# Alertes sur les avis négatifs récents
négatifs = df[df['sentiment'] == 'négatif'].tail(10)
if len(négatifs) > 0:
    st.warning(f"{len(négatifs)} avis négatifs récents à traiter")
    st.dataframe(négatifs[['date', 'texte', 'source']])

Lancez le tableau de bord avec streamlit run dashboard.py et accédez-y depuis votre navigateur. Automatisez la collecte des avis avec un script cron quotidien qui interroge l'API Google Business Profile, scrape vos pages Facebook (avec les permissions appropriées), et analyse les nouveaux messages. Ce système vous alerte en temps réel quand un client mécontent nécessite une intervention.

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité