Project Report
Project Report
Submitted by
NISHA C 111721103033
SUPRIYA S 111721103048
of
BACHELOR OF ENGINEERING
IN
NOVEMBER 2024
i
R.M.K. ENGINEERING COLLEGE
(An Autonomous Institution)
R.S.M. Nagar, Kavaraipettai-601 206
BONAFIDE CERTIFICATE
SIGNATURE SIGNATURE
ii
ACKNOWLEDGEMENT
iii
ABSTRACT
iv
TABLE OF CONTENTS
CHAPTER PAGE
TITLE
NO. NO.
ABSTRACT 4
LIST OF FIGURES 6
LIST OF TABLES 7
1 INTRODUCTION 9
3.2 VS CODE 18
4 TECHNOLOGIES 24
28
5 WORKING
5.1 POPULARITY f 30
7 CONCLUSION 30
REFERENCES 31
v
LIST OF FIGURES
FIGURE PAGE
FIGURE NAME
NO. NO.
1 BOOK RECOMMENDATION SYSTEM 11
5.1 POPULARITY 22
vi
LIST OF ABBREVIATIONS
UI - User Interface
CF - Collaborative Filtering
UX - User Experience
vii
CHAPTER 1
INTRODUCTION
1
relationships between books based on the reading patterns of different users. For
example, if a user inputs a book title that has a high similarity score with other
books read by a similar demographic, the system will recommend those books,
indicating they are likely to align with the user’s tastes. This feature helps users
delve into recommendations that are personalized based on community trends
and shared reading preferences.
Technically, this system is built on a Flask backend that handles the core
recommendation logic and serves the web application, and a frontend developed
using HTML, CSS, and Bootstrap for styling. The backend loads essential
precomputed data which store the popularity metrics, pivot tables, and similarity
scores necessary for rapid, efficient recommendation processing. Flask renders
templates and routes, including the main page displaying the top 50 books and
the recommendation page, where users can input a title to receive tailored
suggestions.
2
filtering, the system offers an enjoyable, flexible experience that caters to
different reading preferences.
3
recommendation quality, leveraging book metadata and user behaviour to
present more accurate suggestions. The limitation here is the "cold start" issue,
where recommendations suffer for new users or newly added books due to a
lack of historical data, impacting recommendation relevance.
4
CHAPTER 2
5
Sparsity in Collaborative Filtering: Insufficient data can make it hard to find
similarities between users, leading to inaccurate recommendations.
Limited Personalization: Content-based filtering may only recommend books
similar to the ones a user has rated, limiting discovery.
6
Issues Addressed by the Proposed System:
7
CHAPTER 3
8
equations (via LaTeX), and narrative in a single document makes it an effective
tool for sharing AI research and development work. For experiment tracking
and reproducibility, Jupyter notebooks can be easily rerun and modified,
ensuring that results can be replicated. Extensions like nbval and Papermill
support parameterized notebooks, which further promote reproducible research.
9
3.2 VISUAL STUDIO CODE:
One of the key features of VS Code is its support for a wide range of
programming languages, such as Python, JavaScript, C++, Java, and many
more, making it ideal for cross-language development. The editor offers
intelligent code completion (IntelliSense), syntax highlighting, and error
checking, which helps developers write and maintain code more efficiently.
Additionally, VS Code integrates seamlessly with version control systems like
Git, allowing developers to manage their codebase and collaborate more
effectively with team members.
10
issues without leaving the editor. This integration of tools improves productivity
by providing a unified environment for both writing and testing code.
11
Routing and Templating: Flask includes built-in support for routing, which
allows developers to define URL patterns that map to specific functions in their
application. It also comes with Jinja2, a powerful templating engine that helps
developers separate HTML from Python code.
Applications of Flask:
REST APIs: One of Flask's most popular use cases is for building RESTful
APIs. With its simple routing and extensibility, Flask provides an easy way to
expose data or services to other applications over HTTP. This makes it a great
choice for back-end services in mobile or single-page web applications.
12
databases like SQLite, MySQL, or PostgreSQL (via libraries like SQL
Alchemy) makes it easy to work with persistent data.
Forms and Inputs: HTML enables the creation of forms, allowing users to
submit data through input fields, checkboxes, radio buttons, and submit buttons.
13
CSS (Cascading Style Sheets)
CSS is used to style and layout web pages. It controls how HTML elements are
displayed on the screen. CSS defines rules for colors, fonts, margins, spacing,
positioning, and responsive design, making websites visually appealing.
Selectors: Used to target HTML elements for styling, such as class selectors, ID
selectors, and element selectors.
Box Model: Every element in CSS is treated as a box, with content, padding,
border, and margin.
Flexbox and Grid: CSS provides powerful layout techniques like Flexbox and
Grid, allowing for responsive and flexible designs.
Bootstrap:
14
Pre-built Components: Buttons, forms, navigation bars, modals, and other
components are ready to use, which speeds up development.
Jinja Syntax:
Control Structures: Jinja supports for loops, if conditions, and other control
structures to manipulate data in templates.
Variables and Expressions: You can inject dynamic content (variables, results
of expressions) directly into your HTML
15
CHAPTER 4
TECHNOLOGIES
4.1 POPULARITY:
A popularity-based recommendation system operates by suggesting
items that are broadly liked by a large number of people, relying primarily on
aggregate metrics like the number of ratings and the average rating score. This
approach assumes that items with a high number of positive reviews are more
likely to be of interest to a wider audience. The core idea is that popular items,
whether books, movies, or products, will appeal to a general user base and thus
are more likely to be recommended.
The process generally involves two key steps: first, identifying items
with the highest number of ratings and favorable average ratings, and then
ranking them for recommendation. A common technique is to filter out items
that have a low number of ratings, as these are considered less reliable in
predicting user preferences. Once this filtering is done, items with higher
ratings and a larger number of reviews are considered more popular and are
thus more likely to be suggested to users.
16
praised content, such as in music streaming services, e-commerce sites, or
even library catalogs. By highlighting items that many users have rated
positively, these systems make it easier for users to discover content they are
likely to enjoy based on general consensus rather than specific tastes.
However, they may not always be ideal for users seeking more tailored or
unique recommendations, as they rely heavily on collective approval rather
than individual preferences.
key specifications:
17
ranked in descending order of their popularity to provide the top
recommendations. The ranking can be influenced by either the number
of ratings or the average rating, depending on the system’s focus.
➢ Sorting and Recommendations: After filtering and ranking, items are
recommended to users based on their popularity. The system might
recommend the top N most popular items in a given category, ensuring
that users are exposed to content that is widely appreciated.
➢ Simplicity and Efficiency: One of the key advantages of a popularity-
based system is its simplicity. It does not require extensive user data or
complex algorithms like collaborative filtering. This makes it easy to
implement and scale on large platforms.
key specifications:
The system typically uses user-item interaction data, such as user ratings or
purchase history. In the context of books, this could include user ratings for
different books or the frequency of interactions with certain books (e.g., borrow,
19
CHAPTER 5
WORKING
5.1 POPULARITY - FILTERING
20
the books are sorted by their average rating in descending order, so that those
with the highest ratings appear at the top of the list. To provide the most
popular books, the system then selects the top 50 books, ensuring that these
books not only have a high average rating but also a significant number of
ratings, reflecting their popularity across a wide range of users.
Finally, the top books are merged with the original book data, presenting users
with book titles, authors, and images, along with the key popularity metrics.
This ensures that users receive recommendations for books that are both highly
rated and widely known, providing a reliable source of book suggestions.
In essence, this approach leverages collective user behaviour to recommend
books that are both well-liked and widely recognized, making it an effective
way to highlight popular content in a large catalogues.
21
By leveraging user-item interaction data, such as book ratings, the system
identifies patterns in the way users rate books and identifies similar books to
recommend to users. This approach is especially valuable when there is a large
volume of data but relatively sparse user interactions, which is common in
systems like online bookstores or streaming platforms. The core of this
technique relies on measuring similarities between items (books in this case)
through methods like cosine similarity, which quantifies the angle between
two vectors representing user ratings. This similarity score indicates how
closely related two books are in terms of user ratings, allowing the system to
recommend books that a user might enjoy based on the preferences of users
with similar tastes.
To enhance recommendation accuracy, the system filters out books with
insufficient ratings or users with too few interactions, ensuring that the
suggestions are based on reliable data. In this case, the system focuses on users
who have rated at least 200 books and books with over 50 ratings, helping to
exclude noisy or unreliable data points. This allows for a more precise
recommendation model, which can generate relevant suggestions for users,
such as in the example of recommending books similar to George Orwell's
1984. The system provides a list of recommended books with additional
metadata, such as authors and cover images, enhancing the user experience.
Collaborative filtering, while powerful, is also limited by challenges like the
cold start problem (where new users or items have insufficient data to make
accurate recommendations) and the risk of bias in recommendations if the data
isn't properly pre-processed. Therefore, combining collaborative filtering with
other methods like content-based filtering or hybrid approaches can help
mitigate some of these limitations and improve the overall quality of
recommendation.
22
CHAPTER 6
OUTPUT
23
FIG 6.3 RECOMMENDED BOOKS
24
CHAPTER 7
CONCLUSION
25
REFERENCES
26