oc-p07-sentiment-api/README.md

2.3 KiB
Raw Blame History

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.


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/CD pipelines (automated tests, Docker build, DockerHub push).

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://sentiment-api.greg-madman-nas.duckdns.org


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).

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