A semantic book recommendation system that uses natural language processing and machine learning to provide personalized book recommendations based on user preferences and book descriptions.
- Semantic search for books using vector embeddings
- Emotion-based book categorization
- Interactive Gradio dashboard for easy book discovery
- Data exploration and analysis tools
- Text classification for book categorization
gradio-dashboard.py: Interactive web interface for book recommendationstext-classification.ipynb: Notebook for training and evaluating text classification modelsvector-search.ipynb: Implementation of semantic search using vector embeddingsdata-exploration.ipynb: Data analysis and visualization toolsbooks_with_emotions.csv: Dataset with emotion-based book categorizationsbooks_with_categories.csv: Dataset with category-based book classificationsbooks_cleaned.csv: Cleaned and processed book dataset
- Clone the repository:
git clone https://github.com/yourusername/book-recommender.git
cd book-recommender- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install required dependencies:
pip install -r requirements.txt- Set up environment variables:
- Copy
.env.exampleto.env - Fill in the required environment variables
- Copy
To start the interactive book recommendation dashboard:
python gradio-dashboard.pyOpen the Jupyter notebooks to explore the data and models:
data-exploration.ipynbfor data analysistext-classification.ipynbfor model trainingvector-search.ipynbfor semantic search implementation
The project uses several datasets sourced from Kaggle:
- Original dataset: Kaggle Book Dataset
Note: The original dataset needs to be downloaded from Kaggle and processed using the provided notebooks to generate the cleaned and categorized versions.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.