oc-p07-sentiment-api/README.fr.md

71 lines
No EOL
3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Projet Air Paradis – Analyse de sentiments
📘 This project is also available in [English 🇬🇧](./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/openclassroom-ai/oc-p07-sentiment-api) (auto-hébergé).
```bash
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api.git
git clone https://git.gregoiremureau.com/openclassroom-ai/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**