Spaces:
Runtime error
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 :
- Nettoyage des textes (suppression stopwords, ponctuation, normalisation)
- Analyse de sentiment (positif/négatif)
- 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
- Modèle (démo) : bigscience/bloomz-560m
- Modèle (production) : Qwen/Qwen2.5-3B-Instruct
- Dataset : SetFit/amazon_reviews_multi_fr
- Framework UI : Gradio 4.0+
- Librairies : Transformers, PyTorch, Pandas, Datasets
🏗️ 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égatifbuild_reply_prompt(): Construction du prompt (optimisé pour bloomz)
data_processing.py
Fonctions de nettoyage et traitement :
clean_text(): Nettoyage des avislabel_to_sentiment(): Conversion label → sentimentmake_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
- Entrez un avis client dans le champ de texte
- (Optionnel) Sélectionnez manuellement le sentiment
- Cliquez sur "🚀 Analyser l'avis"
- 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 :
- ✅ Détection des changements : Trigger automatique
- ✅ Parsing de requirements.txt : Identification des dépendances
- ✅ Installation des packages : pip install automatique
- ✅ Téléchargement du modèle : bloomz-560m depuis Hugging Face Hub
- ✅ Vérification syntaxique : Tests Python
- ✅ Build de l'environnement : Container Docker
Processus de Déploiement Continu (CD)
Si le build CI réussit :
- ✅ Déploiement automatique : Lancement de l'app Gradio
- ✅ Mise à jour URL : Application accessible immédiatement
- ✅ Rolling update : Pas de downtime
- ✅ 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