Projet de formation, machine learning
CinéData
Application de recommandation de films construite de bout en bout, ingestion de plus de 50 millions de lignes IMDB, pipeline de nettoyage en dix étapes, moteur de recommandation par plus proches voisins, application déployée sur Streamlit.
Premier projet mené entièrement sur GitHub en équipe : branches par fonctionnalité, revues de code et fusion des contributions. L'ensemble du travail est versionné et reproductible.
Pipeline IMDB et TMDB en dix étapes
Point de départ, les jeux de données publics IMDB, dont certains fichiers dépassent 50 millions de lignes. Pour éviter de tout charger en mémoire, les données nécessaires sont pré-filtrées puis traitées par lots, filtrées et enrichies via la base TMDB. Chaque étape est un module Python indépendant, orchestré par un script unique, ce qui garantit la reproductibilité complète du traitement.
- Chargement et filtrage des titres, versions françaises isolées par expression régulière
- Nettoyage des notes selon un seuil minimal de votes
- Extraction des réalisateurs, enrichissement du casting et des producteurs par lots
- Consolidation du jeu de données IMDB final
- Nettoyage et normalisation des données TMDB
- Fusion multi-sources vers le jeu de données final, 10 000 films
Moteur de recommandation
Vectorisation TF-IDF des synopsis, encodage multi-labels des genres et des mots-clés, mise à l'échelle des variables numériques, puis calcul de similarité par plus proches voisins sur distance cosinus. Chaque recommandation est associée à un score de proximité.
Application interactive déployée
L'application expose le moteur dans une interface à trois pages. Les affiches sont récupérées via l'API OMDB, avec un repli sur les liens déjà présents dans le jeu de données. La page de recommandation affiche des badges de similarité calculés à partir des distances cosinus, pour différencier les niveaux de proximité entre films.
Les trois pages de l'application
- Accueil, présentation du projet et du contexte client, un cinéma indépendant
- Catalogue, exploration des 10 000 films avec filtres et fiches détaillées
- Recommandations, film de référence et résultats triés en trois niveaux de proximité
Valeurs sûres et découvertes
Distance cosinus très faible pour les films très proches, distance plus marquée mais similarité thématique conservée pour des découvertes moins évidentes.
Fiche détaillée
Chaque film dispose d'une fiche avec ses propres recommandations brutes affichées en dessous.
Bilan
Un pipeline reproductible en dix étapes modulaires, chacune produisant des artefacts intermédiaires versionnés. Un enrichissement de variables hybride, texte, catégoriel et numérique, combiné pour des recommandations nuancées. Application déployée en production avec appels API en temps réel.
- Python
- pandas
- scikit-learn
- Streamlit
- TF-IDF
- API REST