Oxyb50410's picture
Update README.md
9626821 verified
|
raw
history blame
6.97 kB
metadata
title: Amazon Sentiment Analysis
emoji: 🛍️
colorFrom: blue
colorTo: green
sdk: gradio
sdk_version: 6.0.2
app_file: app.py
pinned: false
license: apache-2.0

🛍️ Analyse de Sentiment d'Avis Amazon + Réponses Automatiques

📋 Description du Projet

Pipeline IA complet pour l'analyse d'avis clients Amazon en français avec :

  1. Nettoyage des textes (suppression stopwords, ponctuation, normalisation)
  2. Analyse de sentiment (positif/négatif)
  3. Génération automatique de réponses pour les avis négatifs

⚙️ Version Technique

Modèle utilisé dans cette démo

bloomz-560m (BigScience)

  • 560M paramètres (~1 GB)
  • Optimisé pour CPU gratuit
  • Excellent en français
  • Temps de réponse : 10-15 secondes

Pourquoi bloomz-560m ?

Le projet initial utilisait Qwen2.5-3B-Instruct (3B paramètres, ~6 GB), mais ce modèle nécessite un GPU pour fonctionner correctement. Pour cette démo sur CPU Basic gratuit, nous avons opté pour bloomz-560m qui offre un excellent compromis qualité/performance.

Le code complet avec Qwen 3B est disponible dans ce repository et peut être déployé sur un environnement avec GPU.

🎯 Objectifs Pédagogiques

Projet développé dans le cadre d'un Master en AI Project Management au Collège de Paris :

  • Maîtrise d'un pipeline NLP complet (preprocessing → analyse → génération)
  • Utilisation de modèles de langage open-source
  • Déploiement avec CI/CD automatique sur Hugging Face Spaces
  • Optimisation pour contraintes de production (adaptation du modèle selon ressources)
  • Application de l'éthique IA (transparence, explicabilité)

🛠️ Technologies Utilisées

🏗️ Architecture du Projet

Structure des fichiers

📦 amazon-sentiment-analysis-shirin/
├── app.py                     # Interface Gradio principale
├── data_processing.py         # Nettoyage et traitement des données
├── generate_response.py       # Génération de réponses (bloomz-560m)
├── build_dataframe.py         # Construction du DataFrame complet
├── main.py                    # Point d'entrée principal
├── test_app.py                # Tests unitaires
├── requirements.txt           # Dépendances Python
└── README.md                  # Documentation

Modules

generate_response.py

Génération de réponses automatiques avec bloomz-560m :

  • load_model() : Chargement du modèle (optimisé CPU)
  • generer_reponse() : Génération de réponse pour avis négatif
  • build_reply_prompt() : Construction du prompt (optimisé pour bloomz)

data_processing.py

Fonctions de nettoyage et traitement :

  • clean_text() : Nettoyage des avis
  • label_to_sentiment() : Conversion label → sentiment
  • make_fake_email() : Génération d'emails factices

app.py

Interface utilisateur Gradio :

  • Saisie d'avis client
  • Analyse de sentiment
  • Génération de réponse (si négatif)
  • Affichage des résultats

🚀 Utilisation

Interface Web

  1. Entrez un avis client dans le champ de texte
  2. (Optionnel) Sélectionnez manuellement le sentiment
  3. Cliquez sur "🚀 Analyser l'avis"
  4. Consultez les résultats :
    • Texte nettoyé
    • Sentiment détecté
    • Réponse générée (si négatif)

Exemples d'avis à tester

Avis négatif :

Le produit est arrivé cassé et le service client ne répond pas. Très déçu !

Avis positif :

Excellent produit, livraison rapide et conforme à la description. Je recommande !

🔄 CI/CD (Intégration Continue / Déploiement Continu)

Pipeline CI/CD Automatique

Ce projet utilise Hugging Face Spaces qui intègre nativement un pipeline CI/CD complet :

Code modifié → Push → Build Auto (CI) → Deploy Auto (CD) → App en ligne

Processus d'Intégration Continue (CI)

À chaque modification du code, Hugging Face Spaces exécute automatiquement :

  1. Détection des changements : Trigger automatique
  2. Parsing de requirements.txt : Identification des dépendances
  3. Installation des packages : pip install automatique
  4. Téléchargement du modèle : bloomz-560m depuis Hugging Face Hub
  5. Vérification syntaxique : Tests Python
  6. Build de l'environnement : Container Docker

Processus de Déploiement Continu (CD)

Si le build CI réussit :

  1. Déploiement automatique : Lancement de l'app Gradio
  2. Mise à jour URL : Application accessible immédiatement
  3. Rolling update : Pas de downtime
  4. Monitoring : Logs disponibles en temps réel

⚙️ Configuration Technique

  • Hardware : CPU Basic (gratuit)
  • Modèle : bloomz-560m chargé en FP32
  • Mémoire requise : ~2 GB
  • Temps de réponse : 10-15 secondes
  • Build initial : ~3-5 minutes

🔮 Évolutions Possibles

  • Version légère avec bloomz-560m (démo CPU)
  • Déploiement version complète avec Qwen 3B sur GPU
  • Fine-tuning du modèle sur avis Amazon FR
  • Classification multi-classes (1-5 étoiles)
  • API REST pour intégration externe
  • Batch processing pour volume élevé

🎓 Contexte Académique

Projet réalisé par : Coralie
Formation : Master AI Project Management - Collège de Paris (2024-2026)
Alternance : AI Project Manager - IRFA Formation
Sujet : Pipeline NLP complet avec déploiement CI/CD

Choix Techniques

Pourquoi bloomz-560m pour la démo ?

  • ✅ Fonctionne sur CPU gratuit
  • ✅ Excellent en français
  • ✅ Temps de réponse acceptable
  • ✅ Permet la démo sans GPU

Le projet complet avec Qwen 3B est disponible et documenté. Le choix de bloomz-560m pour cette démo illustre la capacité à adapter les solutions techniques aux contraintes de production.

📄 Licence

Apache 2.0 - Libre d'utilisation et de modification

🙏 Remerciements

  • Hugging Face pour l'infrastructure Spaces
  • BigScience pour le modèle bloomz
  • Qwen Team pour le modèle Qwen2.5-3B (version production)
  • SetFit pour le dataset Amazon Reviews

📚 Références


🔗 URL du projet : https://huggingface.co/spaces/Oxyb50410/amazon-sentiment-analysis-shirin