Les secrets restent dans Vaultwarden ; la prod k3s utilise déjà les SVC in-cluster. |
||
|---|---|---|
| .github/workflows | ||
| deployment | ||
| docs | ||
| notebooks | ||
| presentation | ||
| .env.example | ||
| .gitignore | ||
| fetch-data.sh | ||
| functions.py | ||
| README.fr.md | ||
| README.md | ||
Air Paradis Project – Sentiment Analysis
📘 This project is also available in French 🇫🇷
This repository contains the notebooks and source code for the sentiment analysis project on tweets, conducted as part of the OpenClassrooms "Air Paradis" program.
Source of truth : Forgejo (self-hosted). GitHub, when mirrored, is the public shop window.
git clone https://git.gregoiremureau.com/grgmro/oc-p07-sentiment-api.git
# HTTPS (Cloudflare, fine for clone) :
git clone https://git.gregoiremureau.com/grgmro/oc-p07-sentiment-api.git
Business Context
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.
Project Description
The project aims to develop a complete sentiment analysis system, including:
- 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.
Repository Structure
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 (Forgejo Actions on the homelab runner; same YAML on GitHub),fetch-data.sh: where to get Sentiment140 (dataset not in git).
Model Training
Training phases were primarily conducted on Google Colab to leverage GPU resources required for deep learning models.
Usage
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://api.gregoiremureau.com/ml/sentiment/
Notes
- The
requirements.txtfiles innotebooks/come from Google Colab environments and may contain dependencies not optimized for local use. - The
.envfile, excluded from the repository, contains necessary environment variables (MLFlow, MinIO, alerting configuration). - Training data: run
./fetch-data.sh(Sentiment140 is not stored in git).
Project completed as part of OpenClassrooms "Data Scientist – Project 7" program