From d99871993cbd55c5e6be4c7cc6a0ed74057d7d61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Mureau?= Date: Fri, 3 Oct 2025 15:15:11 +0200 Subject: [PATCH] readme updates --- README.fr.md | 42 +++++++++++++++++++++--------------------- README.md | 43 ++++++++++++++++++++++--------------------- 2 files changed, 43 insertions(+), 42 deletions(-) diff --git a/README.fr.md b/README.fr.md index 86ea4c9..3cb13ee 100644 --- a/README.fr.md +++ b/README.fr.md @@ -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** \ No newline at end of file +**Projet réalisé dans le cadre du parcours "Data Scientist – Projet 7" d'OpenClassrooms** \ No newline at end of file diff --git a/README.md b/README.md index 1accfaa..fc89214 100644 --- a/README.md +++ b/README.md @@ -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** \ No newline at end of file