0% found this document useful (0 votes)
48 views44 pages

Book Summarization Documentation

The project report details the development of a Book Summarization and Recommendation System using Natural Language Processing and Machine Learning, aimed at efficiently generating concise summaries and personalized book recommendations. The system analyzes text data to extract key information and employs a hybrid recommender system that combines collaborative and content-based filtering techniques. The report includes an overview of the project's objectives, system analysis, design, and implementation, along with acknowledgments and specifications.

Uploaded by

2232j36
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views44 pages

Book Summarization Documentation

The project report details the development of a Book Summarization and Recommendation System using Natural Language Processing and Machine Learning, aimed at efficiently generating concise summaries and personalized book recommendations. The system analyzes text data to extract key information and employs a hybrid recommender system that combines collaborative and content-based filtering techniques. The report includes an overview of the project's objectives, system analysis, design, and implementation, along with acknowledgments and specifications.

Uploaded by

2232j36
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 44

Project Report

BOOK SUMMARIZATION AND RECOMMENDATION

Submitted to Bharathiar University in partial fulfillment of the requirements for the award of the
degree of

Master of Software Systems

Submitted by

N. JUNAIDH AHAMED

(2032J09)

Under the Supervision and Guidance of

Mr. N. Sriram, M.Sc., M.Phil., NET.


Assistant Professor
Department of Software Systems(PG)

March 2025
Declaration

I declare that the work which is being presented in this project report
entitled Book summarization and recommendation, submitted to the
Department of Software Systems and Computer Science (PG), KG College of Arts
and Science, Saravanampatti, Coimbatore for the award of the degree of Masters
of software systems of the Bharathiar University, is an authentic record of my
work carried out under the supervision and guidance of Mr. N. Sriram, M.Sc.,
M.Phil., NET .I have not plagiarized or submitted the same work for the award of
any other degree.

March 2025
Coimbatore

(N. Junaidh Ahamed)


Certificate

This is to certify that the project entitled Book summarization and


recommendation submitted to Bharathiar University in partial fulfillment for the
award of the degree of Master of Software Systems is a record of original work done
by N. Junaidh Ahamed (2032J09) during the period of study in KG College of
Arts and Science under the supervision of Mr. N. Sriram, M.Sc., M.Phil., NET.,
Assistant Professor, Department of Software Systems and Computer Science(PG).

Place: Coimbatore
Date:

Signature of the Guide Signature of the HoD

(College Seal)

Submitted for the Viva-Voce Examination held on

Internal Examiner External Examiner


Acknowledgement
I express my sincere thanks to Dr.Ashok Bakthavathsalam, Managing Trustee for
allowing me to do this course of study and to undertake this project work.

It is my pleasure to express my sincere thanks to Dr. B. Vanitha, Secretary, KG College


of Arts and Science for her valuable thoughts.

I take this opportunity to convey my sincere thanks to Dr.J.Rathinamala, Principal,


KG College of Arts and Science for her ethical encouragement throughout the course.

I would like to express my heartfelt gratitude to Dr.S.Vidhya, Vice Principal,


KG College of Arts and Science, for her unwavering moral support throughout the course.

I would like to express my gratefulness to Dr.P.Ajitha,Dean-Curriculum Development


Cell, KG College of Arts and Science, for her untiring support throughout the course.

I take this opportunity to convey my sincere thanks to Dr.M.Usha, Dean-School of


Computational Science, KG College of Arts and Science for her moral support throughout the
course.

I have great pleasure in acknowledging my thanks to Dr. R. Sarala, Head of the


Department, Software Systems, KG College of Arts and Science for her encouragement and
help throughout the course.

I express my sincere thanks to Mr. N. Sriram, M.Sc., M.Phil., NET Assistant


Professor, Department of Software systems for his/her constant encouragement and motivation
throughout the project. I thank for his/her endless support and encouragement towards the work.

- N Junaidh Ahamed
CONTENTS

TITLE PAGE NO

DECLARATION -

CERTIFICATE -

ACKNOWLEDGEMENT -

SYNOPSIS -

CHAPTER 1 INTRODUCTION 1

1.1 OVERVIEW OF THE PROJECT 1

1.2 OBJECTIVES OF THE PROJECT 1

1.3 ORGANIZATION PROFILE 2

1.4 INTRODUCTION 3

CHAPTER 2 SYSTEM ANALYSIS 4

2.1 EXISTING SYSTEM 4

2.2 PROPOSED SYSTEM 5

2.2.1 DEVELOPING SOLUTIONS STRATEGIES 5

2.3 SYSTEM SPECIFICATION 7

2.3.1 HARDWARE SPECIFICATION 7

2.3.2 SOFTWARE SPECIFICATION 7

2.4 SOFTWARE DESCRIPTION 8

CHAPTER 3 SYSTEM DESIGN AND DEVELOPMENT 15

3.1 FUNDAMENTAL DESIGN CONCEPT 15

3.2 DESIGN PROCESS 15

3.2.1 INPUT DESIGN 15

3.2.2 DATA FLOW DIAGRAM 16

3.2.3 OUTPUT DESIGN 18

3.2.4 CODE DESIGN 19


3.2.5 DATABASE DESIGN 19

3.3 DEVELOPMENT APPROACH 20

CHAPTER 4 TESTING AND IMPLEMENTATION 21

4.1 SYSTEM TESTING 21

4.2 TESTING METHODOLOGIES 21

4.3 SYSTEM IMPLEMENTATION 24

4.3.1 IMPLEMENTATION PROCEDURES 24

4.4 SYSTEM MAINTENANCE 25

CHAPTER 5 CONCLUSION 26

CHAPTER 6 SCOPE FOR FURTHER ENHANCEMENT 27

BIBLIOGRAPHY & REFERENCES 28

ANNEXURES -

A. SAMPLE CODE -

B. SAMPLE PAGES -
SYNOPSIS
The Book Summarization System is an innovative solution that automatically generates
concise summaries of lengthy book paragraphs using Natural Language Processing (NLP) and
Machine Learning. With the growing volume of text data, this system provides an efficient way
to extract key information, bridging the gap between overwhelming content and users seeking
quick knowledge acquisition.

The system employs a Python-based text summarizer that analyzes word frequency and
assigns scores to sentences based on their importance. High-scoring sentences are selected to
form a coherent summary, reducing manual effort while enhancing the accuracy and relevance of
extracted information. Users can customize summary length and prioritize specific details,
making it adaptable for various text types, including academic books, novels, and research
papers.

A comparative analysis between the proposed algorithm and random segment selection
highlights its effectiveness. Random selection often results in incomplete, incoherent summaries,
whereas the structured approach of the system ensures key information is captured.
Mathematical analysis confirms its superiority in accuracy, coherence, and user satisfaction,
making it a valuable tool for improving learning outcomes.

This technology has significant applications in education, research, and digital libraries,
enabling faster and smarter information retrieval. The integration of Machine Learning
continuously enhances the system’s performance, increasing its adaptability for diverse users. By
automating the summarization process, the system not only saves time but also improves
comprehension, marking a major advancement in text summarization.
CHAPTER – I

INTRODUCTION

1.1 OVERVIEW OF THE PROJECT


Managing large volumes of text data is a growing challenge in today's information-rich
world. The Book Summarization System uses Natural Language Processing (NLP) and Machine
Learning to generate concise summaries from book paragraphs, helping users quickly grasp key
ideas without reading the entire content.

The system analyzes word frequency and sentence importance to select the most
informative sentences. Users can customize the summary length and prioritize specific
information, making it adaptable for education, research, and literature reviews.

Comparative analysis shows that this system outperforms random segment selection by
delivering coherent, accurate, and comprehensive summaries. With Machine Learning
integration, the system improves over time based on text patterns and user feedback.

This automated approach enhances information retrieval, reduces reading time, and
improves learning outcomes, benefiting students, researchers, and professionals.

1.2 OBJECTIVE OF THE PROJECT

In the digital age, book enthusiasts often seek quick summaries and personalized
recommendations to help them choose their next read. This project focuses on developing a
Book Summarization and Recommendation System using Python. The system extracts key
insights from books and suggests related books based on user preferences.

Now-a-days, online rating and reviews are playing an important role in books sales.
Readers were buying books depend on the reviews and ratings by the others. Recommender
system focuses on the reviews and ratings by the others and filters books.

In this paper, Hybrid recommender system is used to boost our


recommendations. The technique used by recommender systems is Collaborative
filtering. This technique filters information by collecting data from other users.
Collaborative filtering systems apply the similarity index-based technique. The ratings of those
items by the users who have rated both items determine the similarity of the items. The similarity
of users is determined by the similarity of the ratings given by the users to an item. Content-
based filtering uses the description of the items and gives recommendations which are similar to

1
the description of the items. With these two filtering systems, books are recommended not only
based on the user’s behaviour but also with the content of the books.

So, our recommendation system recommends books to the new users also. In this
recommender system, books are recommended based on collaborative filtering technique and
similar books are shown using content based filtering.
The required dataset for the training and testing of our model is downloaded from Good-Reads
website.

Matrix Factorization technique such as Truncated-SVD which takes sparse matrix of


dataset is used for reduction of features. The reduced
dataset is used for clustering to build a recommendation system. Clustering is a
collaborative filtering technique that is used to build our recommendation system in which data
points are grouped into clusters. . In this paper, we used two methods i.e., K-means and Gaussian
mixture for clustering the users. The better model is selected based on the silhouette score and
used for clustering. Silhouette score or silhouette coefficient is used to calculate how good the
clustering is done. Negative value shows that clustering is imperfect whereas positive value
shows that clustering was done perfectly.

Difference between the mean rating before clustering and after clustering is calculated.
Root Mean square Error is used to measure the error between the absolute values and obtained
values. That RMSE value is used to find the fundamental accuracy.

1.3 ORGANIZATION PROFILE

Synovers is a registered Web Design and Development Company in Coimbatore


established in the year of 2015. We delivered our promising services to our esteemed clients
within two years of short span. Synovers emerged with an intention of making even small
business to boom with website facility. Website platform is a gift of modern technology for
promoting business from the chairs. We are proud to be a core part of supporting our client’s
business and revenue generation

We have a mixed team of experienced and young tech buddies. The team's out of the box
thinking by understanding the exact need of every customer resulted to reckon the number of
clients. We believe in teamwork to reach clients' satisfaction. Our qualitative services attracted
most of the business people to tie up with us for their business promotions through internet
medium. Comparing others our work cost is quite affordable and we strictly stick onto timely
delivery criterion, the qualities aid us to grow to touch pinnacles in the web design industry

Our nimble and professional client-centric approach in Synovers entitled us with many
success stories. Our tedious scrutiny on clients’ requirement paved a brilliant and bright path to

2
serve them at the best. We toil to give them back with fruitful results which in turn boom up in a
win-win situation. Young and experienced talented pool are being the backbone of Synovers
from the inception, to get, carry and succeed with every project.

1.4 INTRODUCTION

Book summarization is basically summarizing of the given book paragraph using natural
language processing and machine learning. There has been an explosion in the amount of text
data from a variety of sources. This proposed system introduces a Python-based text summarizer
that mines a text document for key information using natural language processing (NLP)
methods. Our proposed algorithm sections are based on analysis of word frequency in Book
texts. After that the summary is made by selecting the parts with the highest scores depending on
the length of time and these are illustrated. Comparisons are made using our proposed algorithm
and a random segment selection scheme based on mathematical analysis of user learning
outcomes. Finally, we can see the summarized context of the book we want to know about.
Summarization of the book is done by the Python and NLP (Natural Language Processing).

3
CHAPTER – II

SYSTEM ANALYSIS

2.1 EXISTING SYSTEM

Books are recommended by the clustering model and we are going to train
and build using various features such as user’s rating, book description, book titles etc. The
system groups users into clusters so that each data point within cluster is similar and dissimilar to
the data point in the other cluster.

The system we would like to develop will also be able to find an average rating for each
cluster and it is going to find top rated books of users from each cluster. All these books
shortlisted by our system will be used for training our model in future. The prediction model
needs to be trained so as to produce better results. Book Summarization and Recommending
books using Machine learning algorithm is the main goal of this project.

DISADVANTAGES

• Data Dependency: The system heavily relies on user ratings, book descriptions, and
titles. If the data is insufficient or inaccurate, the model's predictions and
recommendations may not be reliable.
• Cold Start Problem: New users or books without prior ratings may not receive accurate
recommendations, as the system lacks enough data to group them into appropriate
clusters.
• Overfitting Risk: The prediction model may produce biased recommendations if trained
only on a small set of highly rated books, limiting diversity in book suggestions.

4
2.2 PROPOSED SYSTEM

The proposed system is developed an automated summarization system to generate


concise book summaries. Implementation is done by a recommendation engine based on user
interests and book similarities. Proposed system provides an interactive user interface for
seamless access to summaries and recommendations.

Recommender system works on this principle only i.e. it recommends products based on
the interest of the users. Our idea is to create recommender system that recommends books based
on the user’s interest i.e. we recommends books which are similar to the books that user already
liked. It can also recommend books which are liked by similar users. Similar users are those who
liked the books which are liked by the current user.

We also add another feature i.e. we recommends books which are independent of
the users interest. With this feature, we can recommend books to the new users also. Book
recommendation sites that was available online. Nowadays shows the books which are
recommended by the system. Here, we are also recommending books based on the description of
the book. We will get books which are similar to the book we selected in this system. For that
purpose only, we built Hybrid recommender system. Hybrid recommender system is a
combination of Collaborative Filtering system and Content Based Filtering system

2.2.1 DEVELOPING SOLUTION STRATEGIES

Data Acquisition

Dataset was collected from Google books Website. Datasets were pre-processed to make
suitable for developing the Recommendation system.

Data Preprocessing:

Dataset is pre processed using Tokenization, stopword removal,stemming/lemmatization.

Summarization Techniques

Book Summarization methodology like Extractive summarization is done on dataset


using Text Rank summarizer module. Abstractive summarization using pre-trained transformer
models. Book category Prediction Probability will be shown to user.

5
Book Recommendation System

Book Recommendation methodology like Content-Based Filtering is done on dataset


using Extract book features (genre, keywords, description) using TF-IDF and cosine similarity.

Search Book by name

In this module user can search the book by its name. The book detail will be sent to
googleapis and details like Book Title, Book description, Book Image, Google book link will be
shown to user.

Daily Reading Remainder

In this module user can get the daily reading remainder by every day afternoon.

Random Book Recommendation

In this module user can get random book recommendation by clicking on Surprise Me
button to get a random book recommendation. Random book title, author will be shown to user.

Trending Books

In this module user can view the trending book fetched from google books api. Trending
book details like Book Title, Book description, Book Image, Google book link will be shown to
user.

6
2.3 SYSTEM SPECIFICATION

2.3.1 HARDWARE SPECIFICATION:

PROCESSOR : Intel i3 Processor 2.5GHZ

HARD DISK CAPACITY : 400 GB

MONITOR : 15 “SAMTRON MONITOR

INTERNAL MEMORY CA : 4 GB

KEYBOARD : LOGITECH OF 104 KEYS

CPU CLOCK : 1.08 GHz

MOUSE : LOGITECH MOUSE

2.3.2 SOFTWARE SPECIFICATION:

OPERATING SYSTEM : WINDOWS 7

FRONT END : Python

TOOLS USED : Anaconda

IDE : Sypder

7
2.4 SOFTWARE AND TOOLS DESCRIPTION:
PYTHON
Python is an easy to learn, powerful programming language. It has efficient high-level
data structures and a simple but effective approach to object-oriented programming. Python’s
elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language
for scripting and rapid application development in many areas on most platforms.
The Python interpreter and the extensive standard library are freely available in source or
binary form for all major platforms. Python is a high-level, interpreted, interactive and object-
oriented scripting language. Python is designed to be highly readable. It uses English keywords
frequently where as other languages use punctuation, and it has fewer syntactical constructions
than other languages. Python can be used on a server to create web applications. Python works
on different platforms (Windows, Mac, Linux, Raspberry Pi, etc). Python can connect to
database systems. It can also read and modify files.
Python is Interpreted − Python is processed at runtime by the interpreter. You do not need to
compile your program before executing it. This is similar to PERL and PHP.
Python is Interactive − You can actually sit at a Python prompt and interact with the interpreter
directly to write your programs.
Python is Object-Oriented − Python supports Object-Oriented style or technique of
programming that encapsulates code within objects.
Python is a Beginner's Language − Python is a great language for the beginner-level
programmers and supports the development of a wide range of applications from simple text
processing to WWW browsers to games.
Often, programmers fall in love with Python because of the increased productivity it
provides. Since there is no compilation step, the edit-test-debug cycle is incredibly fast.
Debugging Python programs is easy: a bug or bad input will never cause a segmentation fault.
Instead, when the interpreter discovers an error, it raises an exception. When the program doesn't
catch the exception, the interpreter prints a stack trace. A source level debugger allows
inspection of local and global variables, evaluation of arbitrary expressions, setting breakpoints,
stepping through the code a line at a time, and so on. The debugger is written in Python itself,
testifying to Python's introspective power. On the other hand, often the quickest way to debug a
program is to add a few print statements to the source: the fast edit-test-debug cycle makes this
simple approach very effective.
Python was conceived in the late 1980s by Guido van Rossum at Centrum Wiskunde &
Informatica (CWI) in the Netherlands as a successor to the ABC language (itself inspired by
SETL), capable of exception handling and interfacing with the Amoeba operating system. Its
implementation began in December 1989. Van Rossum shouldered sole responsibility for the
project, as the lead developer, until 12 July 2018, when he announced his "permanent vacation"
from his responsibilities as Python's Benevolent Dictator For Life, a title the Python community
bestowed upon him to reflect his long-term commitment as the project's chief decision-
maker.[37] He now shares his leadership as a member of a five-person steering council. In

8
January 2019, active Python core developers elected Brett Cannon, Nick Coghlan, Barry
Warsaw, Carol Willing and Van Rossum to a five-member "Steering Council" to lead the
project.

MYSQL
MySQL Server is a powerful database management system and the user can create
application that requires little or no programming. It supports GUI features and an entire
programming language, Phpmyadmin which can be used to develop richer and more developed
application. There are quite a few reasons, the first being that MySQL is a feature rich program
that can handle any database related task you have. You can create places to store your data build
tools that make it easy to read and modify your database contents, and ask questions of your data.
MySQL is a relational database, a database that stores information about related objects. In
MySQL that database means a collection of tables that hold data. It collectively stores all the
other related objects such as queries, forms and reports that are used to implement function
effectively.

The MySQL database can act as a back end database for PHP as a front end, MySQL
supports the user with its powerful database management functions. A beginner can create
his/her own database very simply by some mouse clicks. Another good reason to use MySQL as
backend tool is that it is a component of the overwhelmingly popular Open source software.

MySQL is a freely available open source Relational Database Management System


(RDBMS) that uses Structured Query Language (SQL). SQL is the most popular language for
adding, accessing and managing content in a database. It is most noted for its quick processing,
proven reliability, ease and flexibility of use. MySQL is an essential part of almost every open
source PHP application. One of the most important things about using MySQL is to have a
MySQL specialized host. Its name is a combination of "My", the name of co-founder Michael
Widenius's daughter and "SQL", the abbreviation for Structured Query Language.

MySQL is free and open-source software under the terms of the GNU General Public
License, and is also available under a variety of proprietary licenses. MySQL was owned and
sponsored by the Swedish company MySQL AB, which was bought by Sun Microsystems (now
Oracle Corporation). In 2010, when Oracle acquired Sun, Widenius forked the open-source
MySQL project to create MariaDB.

MySQL is written in C and C++. Its SQL parser is written in yacc, but it uses a home-
brewed lexical analyzer.[15] MySQL works on many system platforms, including AIX, BSDi,
FreeBSD, HP-UX, eComStation, i5/OS, IRIX, Linux, macOS, Microsoft Windows, NetBSD,
Novell NetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Oracle Solaris, Symbian, SunOS,
SCO OpenServer, SCO UnixWare, Sanos and Tru64. A port of MySQL to OpenVMS also
exists.

9
HYPER TEXT MARKUP LANGUAGE (HTML)
HTML is an applic ation of the Standard Generalized Markup Language (SGML),
which was approved as an international standard in the year 1986. SGML provides a way to
encode hyper documents so they can be interchanged.

SGML is also a Meta language for formally describing document markup system. Infact
HTML uses SGML to define a language that describes a WWW hyper document’s structure and
inter connectivity.

Following the rigors of SGML, TBL bore HTML to the world in 1990. Since then, many
of us have it to be easy to use but sometimes quite limiting. These limiting factors are being
addressed but the World Wide Web Consortium (aka W3c) at MIT. But HTML had to start
somewhere, and its success argues that it didn’t start out too badly.

Hypertext Markup Language (HTML) is the standard markup language for documents
designed to be displayed in a web browser. It can be assisted by technologies such as Cascading
Style Sheets (CSS) and scripting languages such as JavaScript. HTML is a computer language
devised to allow website creation. These websites can then be viewed by anyone else connected
to the Internet. It is relatively easy to learn, with the basics being accessible to most people in
one sitting; and quite powerful in what it allows you to create. It is constantly undergoing
revision and evolution to meet the demands and requirements of the growing Internet audience
under the direction of the W3C, the organisation charged with designing and maintaining the
language.

HyperText is the method by which you move around on the web — by clicking on
special text called hyperlinks which bring you to the next page. The fact that it is hyper just
means it is not linear — i.e. you can go to any place on the Internet whenever you want by
clicking on links — there is no set order to do things in. Markup is what HTML tags do to the
text inside them. They mark it as a certain type of text (italicised text, for example). HTML is a
Language, as it has code-words and syntax like any other language.

HTML consists of a series of short codes typed into a text-file by the site author — these
are the tags. The text is then saved as a html file, and viewed through a browser, like Internet
Explorer or Netscape Navigator. This browser reads the file and translates the text into a visible
form, hopefully rendering the page as the author had intended. Writing your own HTML entails
using tags correctly to create your vision. You can use anything from a rudimentary text-editor to
a powerful graphical editor to create HTML pages.

The tags are what separate normal text from HTML code. You might know them as the
words between the <angle-brackets>. They allow all the cool stuff like images and tables and
stuff, just by telling your browser what to render on the page. Different tags will perform
different functions. The tags themselves don’t appear when you view your page through a

10
browser, but their effects do. The simplest tags do nothing more than apply formatting to some
text

Web browsers receive HTML documents from a web server or from local storage and
render the documents into multimedia web pages. HTML describes the structure of a web page
semantically and originally included cues for the appearance of the document.

HTML elements are the building blocks of HTML pages. With HTML constructs, images
and other objects such as interactive forms may be embedded into the rendered page. HTML
provides a means to create structured documents by denoting structural semantics for text such as
headings, paragraphs, lists, links, quotes and other items. HTML elements are delineated by tags,
written using angle brackets. Tags such as <img /> and <input /> directly introduce content into
the page. Other tags such as <p> surround and provide information about document text and may
include other tags as sub-elements. Browsers do not display the HTML tags, but use them to
interpret the content of the page.

CSS

Cascading Style Sheets (CSS) is a style sheet language used for describing the
presentation of a document written in a markup language like HTML. CSS is a cornerstone
technology of the World Wide Web, alongside HTML and JavaScript. CSS is designed to enable
the separation of presentation and content, including layout, colors, and fonts. This separation
can improve content accessibility, provide more flexibility and control in the specification of
presentation characteristics, enable multiple web pages to share formatting by specifying the
relevant CSS in a separate .css file, and reduce complexity and repetition in the structural
content.

Separation of formatting and content also makes it feasible to present the same markup
page in different styles for different rendering methods, such as on-screen, in print, by voice (via
speech-based browser or screen reader), and on Braille-based tactile devices. CSS also has rules
for alternate formatting if the content is accessed on a mobile device. The name cascading comes
from the specified priority scheme to determine which style rule applies if more than one rule
matches a particular element. This cascading priority scheme is predictable.

The CSS specifications are maintained by the World Wide Web Consortium (W3C).
Internet media type (MIME type) text/css is registered for use with CSS by RFC 2318 (March
1998). The W3C operates a free CSS validation service for CSS documents. In addition to
HTML, other markup languages support the use of CSS including XHTML, plain XML, SVG,
and XUL.

11
JAVASCRIPT

JavaScript is a dynamic computer programming language. It is lightweight and most


commonly used as a part of web pages, whose implementations allow client-side script to
interact with the user and make dynamic pages. It is an interpreted programming language with
object-oriented capabilities. JavaScript was first known as LiveScript, but Netscape changed its
name to JavaScript, possibly because of the excitement being generated by Java. JavaScript
made its first appearance in Netscape 2.0 in 1995 with the name LiveScript. The general-purpose
core of the language has been embedded in Netscape, Internet Explorer, and other web browsers

Client-side JavaScript is the most common form of the language. The script should be
included in or referenced by an HTML document for the code to be interpreted by the browser. It
means that a web page need not be a static HTML, but can include programs that interact with
the user, control the browser, and dynamically create HTML content. The JavaScript client-side
mechanism provides many advantages over traditional CGI server-side scripts. For example, you
might use JavaScript to check if the user has entered a valid e-mail address in a form field. The
JavaScript code is executed when the user submits the form, and only if all the entries are valid,
they would be submitted to the Web Server. JavaScript can be used to trap user-initiated events
such as button clicks, link navigation, and other actions that the user initiates explicitly or
implicitly.

Streamlit

Streamlit is a free and open-source framework to rapidly build and share beautiful
machine learning and data science web apps. It is a Python-based library specifically designed
for machine learning engineers. Data scientists or machine learning engineers are not web
developers and they're not interested in spending weeks learning to use these frameworks to
build web apps. Streamlit is the easiest way especially for people with no front-end knowledge to
put their code into a web application. Streamlit is an open-source app framework in python
language. It helps us create beautiful web apps for data science and machine learning in a little
time. It is compatible with major python libraries such as scikit-learn, keras, PyTorch, latex,
numpy, pandas, matplotlib, etc. Anaconda Navigator is Streamlit’s officially-supported
environment manager on Windows, hence we need to download that. Ideal for supporting data
science and machine learning projects. Designed for newbies, front-end skills are not expressly
required. Streamlit allows you to write an app the same way you write a python code. Streamlit
makes it seamless to work on the interactive loop of coding and viewing results in the web app.
he streamlit has a distinctive data flow, any time something changes in your code or anything
needs to be updated on the screen, streamlit reruns your python script entirely from the top to the
bottom. This happens when the user interacts with the widgets like a select box or drop-down
box or when the source code is changed. Streamlit provides you with many methods to display
various types of data like arrays, tables, and data frames. There are several widgets available in
streamlit, like st.selectbox, st.checkbox, st.slider, and etc.
12
Flask
Flask is a web application framework written in Python. Armin Ronacher, who leads an
international group of Python enthusiasts named Pocco, develops it. Flask is based on Werkzeug
WSGI toolkit and Jinja2 template engine. Both are Pocco projects. Flask is a micro web
framework written in Python. It is classified as a microframework because it does not require
particular tools or libraries. It has no database abstraction layer, form validation, or any other
components where pre-existing third-party libraries provide common functions. However, Flask
supports extensions that can add application features as if they were implemented in Flask itself.
Extensions exist for object-relational mappers, form validation, upload handling, various open
authentication technologies and several common framework related tools. Extensions are
updated far more frequently than the core Flask program.

Web Application Framework or simply Web Framework represents a collection of


libraries and modules that enables a web application developer to write applications without
having to bother about low-level details such as protocols, thread management etc. Flask is a
web application framework written in Python. It is developed by Armin Ronacher, who leads an
international group of Python enthusiasts named Pocco. Flask is based on the Werkzeug WSGI
toolkit and Jinja2 template engine. Both are Pocco projects. Web Server Gateway Interface
(WSGI) has been adopted as a standard for Python web application development. WSGI is a
specification for a universal interface between the web server and the web applications.

Python 2.6 or higher is usually required for installation of Flask. Although Flask and its
dependencies work well with Python 3 (Python 3.3 onwards), many Flask extensions do not
support it properly. Hence, it is recommended that Flask should be installed on Python 2.7.
virtualenv is a virtual Python environment builder. It helps a user to create multiple Python
environments side-by-side. Thereby, it can avoid compatibility issues between the different
versions of the libraries. This command needs administrator privileges. Add sudo before pip on
Linux/Mac OS. If you are on Windows, log in as Administrator. On Ubuntu virtualenv may be
installed using its package manager. The route() function of the Flask class is a decorator, which
tells the application which URL should call the associated function. Importing flask module in
the project is mandatory. An object of Flask class is our WSGI application. Flask constructor
takes the name of current module (__name__) as argument. The rule parameter represents URL
binding with the function. The options is a list of parameters to be forwarded to the underlying
Rule object. Finally the run() method of Flask class runs the application on the local
development server.

13
Werkzeug
Werkzeug is a utility library for the Python programming language, in other words a
toolkit for Web Server Gateway Interface (WSGI) applications, and is licensed under a BSD
License. Werkzeug can realize software objects for request, response, and utility functions. It can
be used to build a custom software framework on top of it and supports Python 2.6, 2.7 and 3.3

Jinja

Jinja (template engine)


Jinja, also by Ronacher, is a template engine for the Python programming language and is
licensed under a BSD License. Similar to the Django web framework, it provides that templates
are evaluated in a sandbox.

A framework "is a code library that makes a developer's life easier when building
reliable, scalable, and maintainable web applications" by providing reusable code or extensions
for common operations. There are a number of frameworks for Python, including Flask,
Tornado, Pyramid, and Django. Flask is an API of Python that allows to build up web-
applications. It was developed by Armin Ronacher. Flask’s framework is more explicit than
Django’s framework and is also easier to learn because it have less base code to implement a
simple web-Application. A Web-Application Framework or Web Framework is the collection of
modules and libraries that helps the developer to write applications without writing the low-level
codes such as protocols, thread management, etc. Flask is based on WSGI(Web Server Gateway
Interface) toolkit and Jinja2 template engine

Why Flask?
• easy to use.
• built in development server and debugger
• integrated unit testing support
• RESTful request dispatching
• uses Jinja2 templating

14
CHAPTER-III

SYSTEM DESIGN AND DEVELOPMENT

3.1 FUNDAMENTAL DESIGN CONCEPTS


System design is a “how to” approach to creation of a new system. System design goes
through 2 phases. They are

- Logical design

- Physical design

Logical design reviews the present physical system, prepares input and output
specifications, makes edit security and control specifications

Physical design maps out the details of the physical system, plans, system
implementation, device a test and implementation plan.

3.2 DESIGN PROCESS

3.2.1 INPUT DESIGN


Input design is the process of converting the user-oriented. Input to a computer based
format. The goal of the input design is to make the data entry easier , logical and free error.
Errors in the input data are controlled by the input design. The quality of the input determines the
quality of the system output.

All the data entry screen are interactive in nature, so that the user can directly enter into
data according to the prompted messages. The user are also can directly enter into data according
to the prompted messages. The users are also provided with option of selecting an appropriate
input from a list of values. This will reduce the number of error, which are otherwise likely to
arise if they were to be entered by the user itself.

Input design is one of the most important phase of the system design. Input design is the
process where the input received in the system are planned and designed, so as to get necessary
information from the user, eliminating the information that is not required. The aim of the input
design is to ensure the maximum possible levels of accuracy and also ensures that the input is
accessible that understood by the user. The input design is the part of overall system design,
which requires very careful attention. If the data going into the system is incorrect then the
processing and output will magnify the errors.

The objectives considered during input design are:


• Nature of input processing.

15
•Flexibility and thoroughness of validation rules.
•Handling of properties within the input documents.
•Screen design to ensure accuracy and efficiency of the input relationship with files.
•Careful design of the input also involves attention to error handling, controls, batching
and validation procedures.
Input design features can ensure the reliability of the system and produce result from accurate
data or they can result in the production of erroneous information.

3.2.2 Data Flow Diagram (DFD)


The first step is to draw a data flow diagram (DFD). The DFD was first developed by
Larry Constantine as a way of expressing system requirements in graphical form.

A DFD also known as a “bubble chart” has the purpose of clarifying system requirements
and identifying major transformations that will become programs in system design. So, it is the
starting point of the design phase that functionally decomposes the requirements specifications
down to the lowest level of detail. A DFD consists of series of bubbles join by the data flows in
the system.

The purpose of data flow diagrams is to provide a semantic bridge between users and
systems developers. The diagrams are:

• Graphical, eliminating thousands of words;

• Logical representations, modeling WHAT a system does, rather than physical models
showing HOW it does it;

• Hierarchical, showing systems at any level of detail; and

• jargon less, allowing user understanding and reviewing.

The goal of data flow diagramming is to have a commonly understood model of a system.
The diagrams are the basis of structured systems analysis. Data flow diagrams are supported by
other techniques of structured systems analysis such as data structure diagrams, data dictionaries,
and procedure-representing techniques such as decision tables, decision trees, and structured
English.

Level 0:

Book Data Pre-processing


Admin
summarization

16
Level 1:

Book
User View Predictions
summarization

User Data Collection Dataset.csv

Data Pre- Dataset.csv


processing

Book
Dataset.csv
Summarization

Daily Reading
Remainder

Book Google books api


recommendation

Search Book Google books api

Random Book Google books api


recommendation

Trending Book Google books api

17
External Entity
An external entity is a source or destination of a data flow, which is outside the area of
study. Only those entities, which originate or receive data, are represented on a business process
diagram. The symbol used is an oval containing a meaningful and unique identifier.

Process
A process shows a transformation or manipulation of data flows within the system. The
symbol used is a rectangular box, which contains 3 descriptive elements: Firstly an identification
number appears in the upper left hand corner. This is allocated arbitrarily at the top level and
serves as a unique reference. Secondly, a location appears to the right of the identifier and
describes where in the system the process takes place.

Data Flow
A data flow shows the flow of information from its source to its destination. A data flow
is represented by a line, with arrowheads showing the direction of flow. Information always
flows to or from a process and may be written, verbal or electronic. Each data flow may be
referenced by the processes or data stores at its head and tail, or by a description of its contents.

Data Store
A data store is a holding place for information within the system: It is represented by an
open ended narrow rectangle. Data stores may be long-term files such as sales ledgers, or may be
short-term accumulations: for example batches of documents that are waiting to be processed.
Each data store should be given a reference followed by an arbitrary number.

Resource Flow
A resource flow shows the flow of any physical material from its source to its destination.
For this reason they are sometimes referred to as physical flows. The physical material in
question should be given a meaningful name. Resource flows are usually restricted to early,
high-level diagrams and are used when a description of the physical flow of materials is
considered to be important to help the analysis.

3.2.3 OUTPUT DESIGN


The output form of the system is either by screen or by hard copies. Output design aims
at communicating the results of the processing of the users. The reports are generated to suit the
needs of the users .The reports have to be generated with appropriate levels. In our project
outputs are generated by asp as html pages. As its web application output is designed in a very
user-friendly this will be through screen most of the time.

18
3.2.4 CODE DESIGN
The main purpose of code design is to simplify the coding and to achieve better
performance and quality with free of errors. The coding is prepared in such a way that the
internal procedures are more meaningful validation manager is displayed for each column. The
coding of the variables is done in such a way that one other than person who developed the
packages can understand its purpose.

To reduce the server load, the project is designed in a way that most of the Validation of
fields is done as client side validation, which will be more effective.

3.2.5 DATABASE DESIGN


The database design involves creation of tables that are represented in physical database
as stored files. They have their own existence. Each table constitute of rows and columns where
each row can be viewed as record that consists of related information and column can be viewed
as field of data of same type. The table is also designed with some position can have a null value.

The database design of project is designed in such a way values are kept without
redundancy and with normalized format.

19
3.3 DEVELOPMENT APPROACH

TOP DOWN APPROACH


The importance of new system is that it is user friendly and a better interface with user’s
working on it. It can overcome the problems of manual system and the security problem.

Top down approach of software development is the incremental approach to the


construction of program structure. Modules are integrated by moving through the control
hierarchy, beginning with the main control module. Module subordinate to the main control
modules is incorporate into the structure in either a depth first or breadth first manner.

The top down approach is performed in a serious of five steps

1. The main module that is overall software is divided into five modules that are under the
control of the main control module.
2. Depending on the top down approach selected subordinate stubs is replaced one at a time
with actual components.
3. Tests are conducted as each component is integrated
4. On completion of each test another stub is replaced with real time component.
5. Regression testing may be conducted to ensure the new errors have not been introduced.

20
CHAPTER – IV

SYSTEM TESTING AND IMPLEMENTATION

4.1 SYSTEM TESTING


It is the process of exercising software with the intent of finding and ultimately correcting
errors. This fundamental philosophy does not change for web applications, because web based
system and applications reside on network and inter-operate with many different operating
systems, browsers, hardware platforms and communication protocols. Thus searching for errors
is significant challenge for web applications.

Testing issues:
1. Client GUI should be considered.
2. Target environment and platform considerations
3. Distributed database considerations
4. Distributed processing consideration

4.2 TESTING AND METHODLOGIES


System testing is the state of implementation, which is aimed at ensuring that the system
works accurately and efficiently as expect before live operation, commences. It certifies that the
whole set of programs hang together System testing requires a test plan that consists of several
key activities and steps for run program, string, system and user acceptance testing. The
implementation of newly design package is important in adopting a successful new system

Testing is important stage in software development. System test is implementation should


be a confirmation that all is correct and an opportunity to show the users that the system works as
they expected It accounts the largest percentage of technical effort in software development
process.

Testing phase is the development phase that validates the code against the functional
specifications. Testing is a vital to the achievement of the system goals. The objective of testing
is to discover errors. To fulfill this objective a series of test step such as the unit test, integration
test, validation and system test where planned and executed.

Unit testing
Here each program is tested individually so any error apply unit is debugged. The sample
data are given for the unit testing. The unit test results are recorded for further references. During
unit testing the functions of the program unit validation and the limitations are tested.

21
Unit testing is testing changes made in a existing or new program this test is carried out
during the programming and each module is found to be working satisfactorily. For example in
the registration form after entering all the fields we click the submit button. When submit button
is clicked, all the data in form are validated. Only after validation entries will be added to the
database.

Unit testing comprises the set of tests performed by an individual prior to integration of
the unit into large system. The situation is illustrated in as follows

Coding-> Debugging ->Unit testing -> Integration testing

The four categories of test that a programmer will typically perform on a program unit

1. Functional test
2. Performance test
3. Stress Test
4. Structure test
Functional test involve exercising the code with nominal input values for which the
expected results are known as well as boundary values and special values.

Performance testing determines the amount of execution time spent in various parts of unit
program through put and response time and device utilization by the program.

A variation of stress testing called sensitivity testing in same situations a very small range
of data contained in a bound of valid data may cause extreme and even erroneous processing or
profound performance degradation.

Structured testing is concerned with a exercising the internal logic of a program and
traversing paths. Functional testing, stress testing performance testing are referred as “black box”
testing and structure testing is referred as “white box” testing

VALIDATION TESTING
Software validation is achieved through a serious of testes that demonstrate conformity
with requirements. Thus the proposed system under consideration has been tested by validation
& found to be working satisfactory.

OUTPUT TESTING
Asking the user about the format required by them tests the output generated by the
system under consideration .It can be done in two ways, One on screen and other on printer
format. The output format on the screen is found to be correct as the format designed n system
test.

22
SYSTEM TESTING
In the system testing the whole system is tested for interface between each
module and program units are tested and recorded. This testing is done with
sample data. The securities, communication between interfaces are tested

System testing is actually a series of different tests whose primary purpose


is to fully exercise the computer based system although each test has a
different purpose all work to verify that all system elements properly integrated and
perform allocate function.

It involves two kinds of activities namely

1. Integrated testing

2. Acceptance testing

Integrated testing

Integrated testing is a systematic technique for constructing tests to uncover errors


associated with interface.

Objective is to take unit tested modules and build a program structure that has been
dictated by design

Acceptance testing

Acceptance testing involves planning an execution of a functional test, performance test


and stress test to verify that the implemented system satisfies the requirement.

The acceptance testing is the final stage of the user the various possibilities of the data are
entered and the results are tested.

Validation testing

Software validation is achieved through a series of test that demonstrates the conformity
and requirements. Thus the proposed system under consideration has to be tested by validation
and found to be working satisfactorily. For example in customer enters phone number field
should contain number otherwise it produces an error message similarly in all the forms the
fields are validated

Testing results

All the tests should be traceable to customer requirements the focus of testing will shift
progressively from programs Exhaustive testing is not possible To be more effective testing
should be which has probability of finding errors

23
The following are the attributes of good test

1. A good test has a probability of finding a errors

2. A good test should be “best of breeds”

3. A good test to neither simple nor too complex

4.3 SYSTEM IMPLEMENTATION


Implementation is the stage in the project where the theoretical design is turned into a working
system. The most crucial stage is achieving a successful new system and giving a user
confidence in that the new system will work efficiently and effectively in the implementation
stage. The stage consist of

• Testing a developed program with sample data


• Detection and correction of error
• Creating whether the system meets a user requirement.
• Making necessary changes as desired by users.
• Training user personal

4.3.1 IMPLEMENTATION PROCEDURES


The implementation phase is less creative than system design. A system design may be
dropped at any time prior to implementation, although it becomes more difficult when it goes to
the design phase. The final report of the implementation phase includes procedural flowcharts,
record layouts, and a workable plan for implementing the candidate system design into a
operational design.

USER TRAINING

It is designed to prepare the users for testing & converting the system. There is several
ways to trail the users they are:
1) User manual

2) Help screens

3) Training demonstrations.

1) User manual:
The summary of important functions about the system & software can be provided as a
document to the user. User training is designed to prepare the user for testing and convening a
system

24
The summary of important functions about the system and the software can be provided
as a document to the user

1. Open http page


2. Type the file name with URL index .php in the address bar
3. Index. php is opened existing user the type the username and password
4. Click the submit button
2) Help screens:
This features now available in every software package, especially when it is used
with a menu. The user selects the “Help” option from the menu. The System success the
necessary description or information for user reference.

3) Training demonstration:
Another user training element is a training demonstration. Live demonstration with
personal contact is extremely effective for training users.

4.4 SYSTEM MAINTENANCE


Maintenance is actually implementation of the review plan as important as it is
programmers and analyst is to perform or identify with him or herself with the maintenance. There
are psychologically personality, and professional reasons for this. Analyst and programmers spend
fair more time maintaining programmer then they do writing them Maintenances account for 50-
80% of total system development. Maintenance is expensive .One way to reduce the maintenance
costs are through maintenance mgt and software modification audits Types of maintenance are

1. Perfective maintenance
2. Preventive maintenance
Perfective maintenance:

Changes made to the system to add features or to improve the performance.

Preventive maintenance:

Changes made to the system to avoid future problems. Any changes can be made in the
future and our project can adopt the changes.

25
CHAPTER – V

CONCLUSION

The Book Summarization and Recommendation System provide an efficient way to


generate book summaries and personalized recommendations. Even with the adaptation of a
fitting algorithm for recommendation, the RS faces an obstacle because of large quantity of data
that needs to be handled. According to the experimental results, the proposed algorithm with
compact dataset was more accurate than existing algorithms with full datasets. In addition, JS
uses the number of common users as a basis for measuring similarity, rather than the absolute
ratings, as used by most existing algorithms, which gives a more accurate result.

26
CHAPTER – VI

SCOPE FOR FURTHER ENHANCEMENT

The recommendation system proposed here takes the number of users who have rated the
books into account, without factoring in the absolute rating. Due to this, a recommendation
might arise from a book that a user has given low rating to, in which case a book might be
recommended from a genre that the user dislikes. This recommendation system relies on the
ratings given by users. So, trust is a major issue, like whether the feedback and rating given by
the user is genuine or not. This recommendation system does not solve the trust issue. Therefore
future research should focus on resolving both these issues. Enhancing summarization with GPT-
based models. Implementing a real-time user feedback loop. Expanding the dataset for better
recommendation diversity. Integrate with voice assistants for audio book summaries. Develop a
mobile app for on-the-go book discovery. Implement multilingual support for non-English
books.

27
BIBLIOGRAPHY

BOOK REFERENCE
1) Head-First Python, 2nd edition Paul Barry (O’Reilly, 2016)

2) Think Python: How to Think Like a Computer Scientist, 2nd edition Allen B. Downey
(O’Reilly, 2015)

3) Learn Python 3 the Hard Way Zed A. Shaw (Addison-Wesley, 2016)

4) Real Python Course, Part 1 Real Python Team (Real Python, 2017)

5) Learning Python: Learn to code like a professional with Python by Fabrizio Romano
(Recommended and reviewed by Jay LaCroix)

WEBSITES
1) https://www.w3schools.com/python/python_reference.asp

2) http://webreference.com/programming/python/index-2.html

3) https://www.python.org/doc/

4) https://www.pythonforbeginners.com/basics/python-websites-tutorials

5) https://realpython.com/tutorials/web-dev/

6) https://www.tutorialspoint.com/python_web_development_libraries/index.htm

7) https://pythonprogramming.net/web-development-tutorials/

8) https://www.fullstackpython.com/web-development.html

9) https://pythonspot.com/web-dev/

28
RESEARCH PAPERS:

• Saeed Piri, Dursun Delen, Tieming Liu and William Paiva, “Development of a New
Metric to Identify Rare Patterns in Association Analysis: The Case of Analyzing Diabetes
Complications, in Expert Systems with Applications, September 2017.
• F. Padil o, J.M. Luna and S. Ventura, “An evolutionary algorithm for mining rare
association rules: a Big Data approach”, 978-1-5090-4601- 0/17, IEEE 2017.
• Xiaoyu Sean Lu, MengChu Zhou and Keyuan Wu, “A Novel Fuzzy Logic-Based Text
Classification Method for Transactions on Systems, Man and Cybernetics: Systems,
2019.
• Siddique Ibrahim S P and Dr. Sivabalakrishnan, “An Enhanced Weighted Associative
Classification Algorithm Without Pre assigned weight based on Ranking Hubs”,
International Journal of Advanced Computer Science and Applications, Vol. 10, No. 10,
2019.
• Khairan D. Rajab, “New Associative Classification Method Based on Rule pruning for
Classification of Datasets”, Volume 7, IEEE access, 010.1109/ACCESS.2019.2950374,
October 2019.
• Kavita Mittal, Gaurav Aggarwal and Prerna Mahajan, “CBA_Optimized: An Optimized
Association based Classification Model with Enhanced Classification Accuracy Rate”,
International Conference on Advancements in Computing & Management (ICACM),
2019.
• Tomas Kliegr, “QCBA: Post optimization of Quantitative Attributes in Classifiers based
on Association Rules”, arXiv Labs, arXiv: 1711.10166, October 2019.

29
ANNEXURES

Code
App.py

import streamlit as st

import altair as alt

import plotly.express as px

import pandas as pd

import numpy as np

from datetime import datetime

import joblib

from track_utils import create_page_visited_table, add_page_visited_details,


view_all_page_visited_details, add_prediction_details, view_all_prediction_details,
create_emotionclf_table, IST # Import IST from track_utils

from urllib.request import urlopen

import json

import urllib.request

import requests

from plyer import notification

import schedule

import time

import random

import nltk

from nltk.corpus import stopwords

from nltk.tokenize import word_tokenize, sent_tokenize


from collections import Counter

# Download necessary NLTK resources

nltk.download('punkt')

nltk.download('stopwords')

# Load Model

pipe_lr = joblib.load(open("book.pkl", "rb"))

def send_notification():

notification.notify(

title="Daily Reading Reminder ",

message="Take a moment to read today! \n\nA book is a dream you hold in your
hands.",

timeout=10 # Notification stays for 10 seconds

print("Desktop notification sent.")

# Schedule the Notification (Daily at 9:00 AM)

schedule.every().day.at("12:38").do(send_notification)

print("Daily Reading Reminder is running...")

def summarize_text(text, num_sentences=3):


# Tokenize the text into sentences

sentences = sent_tokenize(text)

# Tokenize the text into words and remove stopwords

stop_words = set(stopwords.words("english"))

words = word_tokenize(text.lower())

filtered_words = [word for word in words if word.isalnum() and word not in stop_words]

# Calculate word frequencies

word_frequencies = Counter(filtered_words)

# Score sentences based on word frequencies

sentence_scores = {}

for sentence in sentences:

for word in word_tokenize(sentence.lower()):

if word in word_frequencies:

if sentence not in sentence_scores:

sentence_scores[sentence] = word_frequencies[word]

else:

sentence_scores[sentence] += word_frequencies[word]

# Sort sentences by score and pick the top ones

summarized_sentences = sorted(sentence_scores, key=sentence_scores.get,


reverse=True)[:num_sentences]

summary = " ".join(summarized_sentences)


return summary

Output Screenshot
Home page

Book summary with sentiment prediction and book recommendation from google books with
title and author name

Page metrics
Search Metrics
Search graph
Search book
Trending books

You might also like