We aim to develop an advanced book recommendation system to address the challenge users face in finding personalized book suggestions amidst a vast array of options. Existing systems often fail to provide accurate recommendations, resulting in user dissatisfaction and reduced engagement. We propose a novel approach leveraging sophisticated algorithms and user-centric design to deliver tailored book suggestions that enhance user satisfaction and engagement.
- Project Overview
- Literature Review
- Data
- Demo
- Frontend Implementation
- Directory Structure
- Installation
- Contributors
- License
The Book Recommendation System is a comprehensive platform developed to address the challenge users encounter when seeking personalized book recommendations in a vast sea of options. Traditional recommendation systems often provide generic suggestions that fail to resonate with individual preferences, leading to user dissatisfaction and reduced engagement. To overcome these limitations, our project leverages sophisticated algorithms and user-centric design principles to deliver tailored book suggestions that enhance user satisfaction and engagement. By integrating elements from collaborative filtering, content-based filtering, and hybrid recommendation methods, we aim to provide accurate, diverse, and personalized recommendations that cater to the unique tastes and interests of each user. The system features a user-friendly web interface that allows users to explore books seamlessly, receive recommendations, and provide feedback, fostering a dynamic and engaging reading experience. With future enhancements focusing on advanced machine learning techniques, real-time updates, community engagement, and inclusivity, our project aims to revolutionize the way users discover and engage with books.
-
IEEE Xplore: Book Recommendation System Based on Machine Learning Techniques
- The authors explore machine learning methods, including K-nearest neighbors, Pearson’s R Correlation Coefficient, and Cosine Similarity, for collaborative filtering.
-
- This project utilizes data gathered from various sources and employs machine learning classifiers such as Naive Bayes and Maximum Entropy, along with collaborative filtering methods, for book recommendations.
-
Book Recommendation System using Association Rule Mining & Collaborative Filtering
- This research paper discusses collaborative filtering algorithms like Jaccard Distance and Pearson’s Coefficient, alongside a novel technique called Association Mining, for book recommendations.
The dataset used in this project is sourced from Kaggle and comprises three main tables:
- Users: Contains information about users, including unique User-IDs and demographic details.
- Ratings: Stores user ratings for various books, identified by their ISBN. Each rating is associated with a specific user and book combination.
- Books: Provides comprehensive details about each book, such as title, author, publication year, and genre. Additionally, it includes attributes like book cover images and URLs.
The dataset has been preprocessed to handle missing values, inconsistencies, and outliers, ensuring data quality for model training and evaluation. Data merging and transformation have been done to create unified representations to facilitate recommendation model development.
The front end of the Book Recommendation System consists of an interactive python streamlit
web application designed to provide users with a seamless recommendation experience. Key features include:
- User-Friendly Interface: An intuitive and user-friendly interface that allows users to navigate the system and access personalized recommendations easily.
- Book Selection: Enables users to search for books by title.
- Recommendation Display: Presents recommended books to users in a visually appealing format, including book covers, titles, authors, and additional details.
- Feedback Mechanism: Incorporates mechanisms for user feedback and ratings, allowing users to provide input on recommended books and improve future recommendations.
- Streamlit: A Python framework for building interactive web applications.
- HTML/CSS: Used with Streamlit markdown to customize the appearance and layout of the web application.
- 38_Baseline.zip: Contains the baseline version of the project.
- 38_BaselineReport_IR.pdf: Baseline report for the IR project.
- IR_Project_Baseline (2).ipynb: Jupyter Notebook for the baseline version of the IR project.
- Demo Images/
- Added Website Images: Images demonstrating the Book Recommendation System.
- main.py: Contains the code for the streamlit app for web application
- 38_Proposal_IR.pdf: Proposal for the IR project.
- 38_UpdatedBaselineReport_IR.pdf: Updated baseline report for the Information Retrieval project.
- Jupyter Notebook for the final version of the IR project.
- Final project report that includes Problem Statement, Motivation, Literature Review, Novelty, Methodology, Code, and Evaluation.
- Final Presentation for the project.
To get a local copy of this project up and running, follow these steps:
-
Clone this repository to your local machine using the following command:
git clone https://github.com/sarthak20574/Book_Recommendation_System.git
-
Navigate to the project directory:
cd .\Book_Recommendation_System\Frontend\
-
Install the required dependencies (streamlit, pandas and numpy, etc.):
pip install streamlit
-
Running the App:
streamlit run main.py
This will start the app in the local environment.
Note: Before running the app place
books.pkl
,similarity_scores.pkl
andpt.pkl
in the same folder. The files can be obtained directly by running the code inIR_Project_Final.ipynb
- Karan Prasad Gupta
- Sarthak Dixit
- Shivanshu Kumar
- D Likhith
- Rishav
- Harsh Kashyap
This project is licensed under the MIT License.
This project was developed for learning purposes as part of the CSE508-Information Retrieval, Winter 2024 semester, Project at IIITD under the supervision of Prof. Rajiv Ratn Shah.