readme updates

This commit is contained in:
Grégoire Mureau 2025-10-03 15:15:11 +02:00
parent 76e8a4f48f
commit d99871993c
2 changed files with 43 additions and 42 deletions

View file

@ -2,61 +2,61 @@
📘 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"**.
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"**.
---
## 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.
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 :
Le projet vise à développer un système complet d'analyse de sentiments, comprenant :
- Une analyse exploratoire des données textuelles,
- Une comparaison de plusieurs modèles de classification (classiques, avancés et à l’état de l’art),
- Le déploiement d’une API REST exposant un modèle avancé (embeddings + LSTM),
- La mise en place d’un pipeline CI/CD pour automatiser les tests et le déploiement,
- Un hébergement local sur un serveur NAS pour garantir la souveraineté des données.
- 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 et de modélisation,
- `deployment/` : code de l’API, tests, Dockerfile et fichiers liés au déploiement,
- `docs/` : documentation et ressources associées,
- `../.github/workflows/` : pipelines CI/CD.
- `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/` : pipelines CI/CD (tests automatisés, build Docker, push DockerHub).
---
## 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.
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`.
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://sentiment-api.greg-madman-nas.duckdns.org
---
## 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.
- Le fichier `.env`, exclu du dépôt, contient les variables d'environnement nécessaires (configuration MLFlow, MinIO, alerting).
---
Ce README sera mis à jour progressivement au fur et à mesure de l’avancement du projet.
Certains commentaires de code peuvent rester en français (ainsi que les cellules Markdown des notebooks). Tout sera traduit en anglais ultérieurement.
---
**Projet réalisé dans le cadre du parcours "Data Scientist – Projet 7" d’OpenClassrooms**
**Projet réalisé dans le cadre du parcours "Data Scientist – Projet 7" d'OpenClassrooms**

View file

@ -2,13 +2,13 @@
📘 This project is also available in [French 🇫🇷](./README.fr.md)
This repository contains the notebooks and source code for the sentiment analysis project on tweets, carried out as part of the OpenClassrooms "Air Paradis" program.
This repository contains the notebooks and source code for the sentiment analysis project on tweets, conducted as part of the OpenClassrooms **"Air Paradis"** program.
---
## Business Context
The goal is to predict whether a tweet, or a short written expression, is perceived as **positive or negative**, in the context of an airline company.
The objective is to predict whether a tweet (or short written expression) is perceived as **positive or negative**, in the context of an airline company.
The project is based on the public **Sentiment140** dataset.
---
@ -17,45 +17,46 @@ The project is based on the public **Sentiment140** dataset.
The project aims to develop a complete sentiment analysis system, including:
- Exploratory data analysis of text data,
- Comparison of several classification models (classical, advanced, and state-of-the-art),
- Deployment of a REST API exposing an advanced model (based on embeddings and LSTM),
- Implementation of a CI/CD pipeline to automate testing and deployment,
- Local hosting on a NAS server to ensure data sovereignty.
- Exploratory analysis of textual data,
- Rigorous comparison of 10+ classification models (classical ML, LSTM + word embeddings, DistilBERT),
- Deployment of a FastAPI REST API exposing the best advanced model (LSTM + Word2Vec),
- Implementation of a complete MLOps pipeline: MLFlow, CI/CD (GitHub Actions), monitoring,
- Local hosting on NAS server to ensure data sovereignty.
📖 **For detailed information on experiments conducted and results obtained, see [docs/blog.md](./docs/blog.md).**
---
## Repository Structure
- `notebooks/`: analysis and modeling notebooks,
- `deployment/`: API code, tests, Dockerfile and deployment-related files,
- `docs/`: documentation and related materials,
- `../.github/workflows/`: CI/CD pipelines.
- `notebooks/`: exploratory analysis and modeling notebooks,
- `deployment/`: FastAPI API code, unit tests, Dockerfile and deployment configuration,
- `docs/`: detailed documentation (blog.md), diagrams, screenshots,
- `presentation/`: project presentation slides (PDF),
- `../.github/workflows/`: CI/CD pipelines (automated tests, Docker build, DockerHub push).
---
## Model Training
Training phases were mainly conducted on Google Colab to leverage GPU resources required for deep learning models.
Training phases were primarily conducted on **Google Colab** to leverage GPU resources required for deep learning models.
---
## Usage
The notebooks detail the analysis and training steps. The API is available in `deployment/api`.
Notebooks detail the analysis and training steps.
The API is available in the `deployment/api` folder with Streamlit testing interface.
To test the production API: https://sentiment-api.greg-madman-nas.duckdns.org
---
## Notes
- The `requirements.txt` files in `notebooks/` come from Google Colab environments and may contain dependencies that are not optimal for local use.
- The `.env` file, excluded from the repository, contains the necessary environment variables.
- The `requirements.txt` files in `notebooks/` come from Google Colab environments and may contain dependencies not optimized for local use.
- The `.env` file, excluded from the repository, contains necessary environment variables (MLFlow, MinIO, alerting configuration).
---
This README will be updated progressively as the project advances.
Some code comments can remain in French (as well as notebook markdowns). All will be translated into English later.
---
**Project completed as part of the OpenClassrooms "Data Scientist – Project 7" program**
**Project completed as part of OpenClassrooms "Data Scientist – Project 7" program**