Skip to content

karanprasadgupta/Book-Recommendation-System

Repository files navigation

Book Recommendation System

Problem Statement

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.

Table of Contents

Project Overview

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.

Literature Review

  1. 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.
  2. Carleton College: Book Recommendation System Using Machine Learning Classifiers and 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.
  3. 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.

Data

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.

Demo

Youtube Demo Video

Recommendation System in Action

  1. Users exploring personalized book recommendations. Demo Image 1

  2. User Providing feedback on different books recommended Demo Image 2

  3. Updated Recommendations being shown to the user based on feedback Demo Image 3

Frontend Implementation

The front end of the Book Recommendation System consists of an interactive python streamlitweb 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.

Tools Used:

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

Directory Structure

Baseline Directory

Frontend Directory

  • Demo Images/
    • Added Website Images: Images demonstrating the Book Recommendation System.
  • main.py: Contains the code for the streamlit app for web application

Proposal Directory

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

Installation

To get a local copy of this project up and running, follow these steps:

  1. Clone this repository to your local machine using the following command:

    git clone https://github.com/sarthak20574/Book_Recommendation_System.git
  2. Navigate to the project directory:

    cd .\Book_Recommendation_System\Frontend\
  3. Install the required dependencies (streamlit, pandas and numpy, etc.):

    pip install streamlit
  4. 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 and pt.pkl in the same folder. The files can be obtained directly by running the code in IR_Project_Final.ipynb

Contributors

License

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages