# Air Paradis Project – Sentiment Analysis 📘 Ce projet est également disponible en [français 🇫🇷](./README.fr.md) 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](https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api) (self-hosted). GitHub, when mirrored, is the public shop window. ```bash git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p07-sentiment-api.git # HTTPS (Cloudflare, fine for clone) : 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](./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**