📚 AI-powered Book Recommender using Sentence Embeddings (all-MiniLM-L6-v2) and Cosine Similarity. Features a clean Streamlit interface. Built for Morocco Data & IA Impact Days @ ENSAO.
# 📚 Book Recommendation System
### *L'IA au service de la lecture : Ne cherchez plus votre prochain livre, laissez-le vous trouver.*
Ce projet a été conçu et présenté lors des **"Morocco Data and IA Impact Days"** à l'**ENSAO** (Avril 2026), un événement organisé par le club de la filière **Data Science & Cloud Computing**.
---
## 🌟 Aperçu du Projet
Dans un monde saturé d'informations, choisir un livre peut devenir complexe (le "Paradoxe du Choix"). Notre système agit comme un **libraire numérique intelligent** qui utilise le traitement du langage naturel (NLP) pour transformer une simple base de données de livres en un parcours de découverte personnalisé.
## 🧠 Architecture Technique & Embeddings
Le système repose sur une approche de **Recherche Sémantique** avancée :
* **Analyse Textuelle (NLP) :** Utilisation du modèle de Deep Learning `all-MiniLM-L6-v2` (Sentence-BERT) pour transformer les descriptions, titres et auteurs en vecteurs denses (**Embeddings**).
* **Calcul de Similarité :** Utilisation de la **Similarité Cosinus** pour mesurer la proximité sémantique entre la requête de l'utilisateur et notre base de données vectorielle.
* **Optimisation :** Les embeddings sont pré-calculés pour garantir une recommandation instantanée.
## 🛠️ Structure du Dépôt
* `interface.py` : Logique de l'interface utilisateur Streamlit et styles CSS.
* `fct_recom.py` : Cœur algorithmique (calculs de similarité et logique de recommandation).
* `variables.py` : Gestion du chargement des données, initialisation du modèle et gestion des **Embeddings**.
* `Book_recommandation_system.ipynb` : Notebook de recherche (nettoyage, test des modèles et génération des vecteurs).
* `books_clean.csv` : Base de données nettoyée.
* `book_embeddings.npy` : *(Fichier local)* Contient la matrice des vecteurs denses (non inclus sur GitHub car volumineux).
## 📁 Gestion du fichier d'Embeddings
Le fichier **`book_embeddings.npy`** est essentiel pour le fonctionnement de l'interface. En raison de s …