# Projet Air Paradis – Analyse de sentiments 📘 Ce projet est également disponible en [anglais 🇬🇧](./README.md) Ce dépôt contient les notebooks et le code source du projet d'analyse de sentiments sur des tweets, réalisé dans le cadre du programme OpenClassrooms **"Air Paradis"**. **Source de vérité** : [Forgejo](https://git.gregoiremureau.com/grgmro/oc-p07-sentiment-api) (auto-hébergé). ```bash git clone https://git.gregoiremureau.com/grgmro/oc-p07-sentiment-api.git git clone https://git.gregoiremureau.com/grgmro/oc-p07-sentiment-api.git ``` --- ## Contexte métier L'objectif est de prédire si un tweet (ou une courte expression écrite) est perçu comme **positif ou négatif**, dans le contexte d'une compagnie aérienne. Le projet repose sur le jeu de données public **Sentiment140**. --- ## Description du projet Le projet vise à développer un système complet d'analyse de sentiments, comprenant : - Une analyse exploratoire des données textuelles, - Une comparaison rigoureuse de 10+ modèles de classification (classiques ML, LSTM + word embeddings, DistilBERT), - Le déploiement d'une API REST FastAPI exposant le meilleur modèle avancé (LSTM + Word2Vec), - La mise en place d'un pipeline MLOps complet : MLFlow, CI/CD (GitHub Actions), monitoring, - Un hébergement local sur serveur NAS pour garantir la souveraineté des données. 📖 **Pour des informations détaillées sur les expérimentations menées et les résultats obtenus, consultez [docs/blog.fr.md](./docs/blog.fr.md).** --- ## Structure du dépôt - `notebooks/` : notebooks d'analyse exploratoire et de modélisation, - `deployment/` : code de l'API FastAPI, tests unitaires, Dockerfile et configuration déploiement, - `docs/` : documentation détaillée (blog.fr.md), diagrammes, captures d'écran, - `presentation/` : support de présentation du projet (PDF), - `.github/workflows/` : CI (Forgejo Actions sur le runner homelab ; même YAML côté GitHub), - `fetch-data.sh` : où récupérer Sentiment140 (dataset **hors** git). --- ## Entraînement des modèles Les phases d'entraînement ont principalement été réalisées sur **Google Colab**, afin de bénéficier de ressources GPU nécessaires aux modèles de deep learning. --- ## Utilisation Les notebooks détaillent les étapes d'analyse et d'entraînement. L'API est disponible dans le dossier `deployment/api` avec interface Streamlit de test. Pour tester l'API en production : https://api.gregoiremureau.com/ml/sentiment/ --- ## Remarques - Les fichiers `requirements.txt` dans `notebooks/` proviennent des environnements Google Colab et peuvent contenir des dépendances peu optimisées pour un usage local. - Le fichier `.env`, exclu du dépôt, contient les variables d'environnement nécessaires (configuration MLFlow, MinIO, alerting). - Données d'entraînement : `./fetch-data.sh` (Sentiment140 n'est **pas** dans git). --- **Projet réalisé dans le cadre du parcours "Data Scientist – Projet 7" d'OpenClassrooms**