P7 Air Paradis sentiment analysis (OpenClassrooms)
Find a file
Grégoire Mureau c8943cf7e2
All checks were successful
CD / build-and-push (push) Successful in 18s
CI / test-preprocessing (push) Successful in 15s
docs: clone HTTPS only, language banner at the top
Public READMEs now expose a single git.gregoiremureau.com clone URL.
The Tailscale SSH form only works on the homelab network and leaked the
NAS address. The language switcher sits right under the title so an
English speaker landing on the French page can leave without reading French.
2026-09-10 14:42:38 +02:00
.github/workflows docs: clone HTTPS only, language banner at the top 2026-09-10 14:42:38 +02:00
deployment Bandeau README : phrase dans la langue cible, pas celle de la page. 2026-09-10 14:38:07 +02:00
docs docs: clone HTTPS only, language banner at the top 2026-09-10 14:42:38 +02:00
notebooks docs: clone HTTPS only, language banner at the top 2026-09-10 14:42:38 +02:00
presentation minor changes 2025-11-11 08:39:23 +01:00
.env.example Recâbler les URLs MLflow/MinIO vers gregoiremureau.com dans les exemples. 2026-09-09 15:30:19 +02:00
.gitignore Recâbler les URLs MLflow/MinIO vers gregoiremureau.com dans les exemples. 2026-09-09 15:30:19 +02:00
fetch-data.sh Documenter le chemin Nextcloud data/ (pas de partage public). 2026-09-09 21:31:39 +02:00
functions.py minor changes 2025-11-11 08:39:23 +01:00
LICENSE Ajout licence AGPL-3.0 (identique au monorepo) 2026-09-09 23:27:44 +00:00
README.fr.md docs: clone HTTPS only, language banner at the top 2026-09-10 14:42:28 +02:00
README.md docs: clone HTTPS only, language banner at the top 2026-09-10 14:42:28 +02:00

Air Paradis Project – Sentiment Analysis

📘 Ce projet est également disponible en français 🇫🇷

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/openclassroom-ai/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.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).
  • Training data: run ./fetch-data.sh (Sentiment140 is not stored in git).

Project completed as part of OpenClassrooms "Data Scientist – Project 7" program