The system is built based on Collaborative filtering. Collaborative filtering is a technique that can filter out items that a user might like on the basis of reactions by similar users. The following steps have been followed in bringing up the project
- The dataset is obtained from Kaggle which has 3 files - Books, Users, Ratings.
- Data preprocessing - The unwanted columns are removed and duplicates are dropped from the dataframe.
- Criterias - Users who have rated more than or equal to 200 books and books that have more than or equal to 50 ratings are considered.
- A pivot table is formed with Book-Title as index, User as Column and values as Book-Rating.
- Similarity scores are calculated using cosine_similairty from sklearn.
- From the result, we can filter the most popular books and also recommend books based on the title given by the user.
- A simple website for easy access to the user has been created using Django.
Home page has the top 50 books based on the user ratings.
Recommend page has one input column for user. User can key in the title and get the top 7 recommended books.
1984 is a dystopian novel written by George Orwell. Similar dystopian novels like Animal Farm, The Handmaid's tale, Fahrenheit 451 have been recommended.
Animal Farm is also a dystopian novel written by George Orwell. It has been recommended when 1984 is given as the input in the above example and here, 1984 is recommended when Animal Farm is keyed in.
The Prisoner of Azkaban is a fantasy themed novel written by JK Rowling and is part of Harry Potter series. Hence other books in the series and Lord of the Rings which is also a part of the fantasy series have been recommended.
- Python
- Django
- Pandas
- Jupyter Notebook
- Scikit-Learn
- HTML
- CSS