Student Information Chatbot System: Submitted To

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 65

STUDENT INFORMATION CHATBOT SYSTEM

A PROJECT REPORT ON

STUDENT INFORMATION CHATBOT SYSTEM


Submitted to
JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY, KAKINADA

Partial Fulfilment of Award of the Degree of

MASTER OF COMPUTER APPLICATION

Submitted By

K.YASUSHMA (18X41F0003)

Under the esteemed guidance of

A.KALYAN KUMAR

Asst PROFESSOR,

DEPARTMENT OF COMPUTER APPLICATION

DEPARTMENT OF COMPUTER APLLICATION

S.R.K INSTITUTE OF TECHNOLOGY


(AFFILIATED TO JNTU, KAKINADA)

Enikepadu, Vijayawada – 521108.

JULY-2021

1
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

S.R.K INSTITUTE OF TECHNOLOGY


DEPARTMENT OF COMPUTER APPLICATION

CERTIFICATE

This is to certify that this project report entitled “STUDENT INFORMATION


CAHTBOT SYSTEM” is the bonafide work of Ms. K.YASUSHMA (18X41F0003) in
partial fulfilment of the requirements for the award of the graduate degree in MASTER OF
COMPUTER APPLICATION during the academic year 2020-2021. This Work has carried
out under our supervision and guidance.

Signature of the Guide Signature of the HOD


(A.KALYAN KUMAR) (Dr.D. Haritha)

Signature of the External Examiner

2
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

DECLARATION

I K.YASUSHMA hereby declare that the project report entitled “STUDENT


INFORMATION CHATBOT SYSTEM” is an original work done in the Department of
Computer Science & Engineering, SRK Institute Of Technology, Enikepadu, Vijayawada,
during the academic year 2020-2021, in partial fulfilment for the award of the Degree of
MASTER OF COMPUTER APPLICATION. I assure that this project is not submitted to
any other College or University.

Roll No Name of the Student Signature

18X41F0003 K. YASUSHMA

3
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

ACKNOWLEDGEMENT

First and foremost, I would like convey our thanks to the Almighty, for the
blessings, and giving me the strength, ability throughout my work to complete the project
successfully without any disruption.

I express our deep sense of gratitude to our respected guide A.Kalyan kumar
from MCA department for his valuable help and guidance. I have to thank her on the way she
helped and guided us patiently and never hesitated to make our things go in a right way,
which helped us to bring this project successfully.

I would like to show our gratitude to the project coordinator Dr. A. Radhika
mam who took keen interest on our project work and guided us all along, till the completion
of our project work by providing all the necessary information and support which helped for
our project completion.

I am very much grateful to Dr. D. Haritha, H.O.D of M.C.A Department, for her
excellent guidance, constant encouragement, suggestions and continuous support throughout
the project are the bases for the success of this project. The support and freedom rendered by
our HOD provided me a lot of opportunity to build my confidence in accomplishing the
project work successfully.

I am really thankful to our respected principal Dr. M. Ekambaram Naidu for his
kind support and also for permitting us to utilize all the necessary facilities of the institution
and providing us with the efficient faculty and the best equipped laboratory which helped us
to carry this project successfully.

Finally our sincere thanks to each and every faculty member of our department and
friends for their valuable help and guidance, who directly or indirectly helped us for the
successful completion of this project. I am thankful to them for the encouragement they have
given us in completing the project.

PROJECT ASSOCIATE

K.YASUSHMA (18X41F0003)

4
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

ABSTRACT

Chatbots or conversational interfaces as they are also known, present a new way
individuals to interact with computer systems. Traditionally, to get a question answered by a
software program involved using a search engine, or filling out a form. A chatbot allows user
to simply ask questions in the same manner that they would address a human. The most well
known chatbots currently are voice chatbots: Alexa and Siri. However, chatbots are currently
being adopted at a high rate on computer chat platforms..

The technology at the core of the rise of the chatbot is natural language processing (“NLP”).
Recent advances in machine learning have greatly improved the accuracy and effectiveness
natural language processing, making chatbots a viable option for many organizations. This
improvement in NLP is firing a great deal of additional research which should lead to be
improvement in the effectiveness of chatbots in the years to come.. The datasets are taken
from our college database.

Most commercial chatbots are dependent on platforms created by the technology


giants for their natural language processing.These include Amazon Lex, Microsoft service
Services, Google Cloud Natural Language API, Facebook Deep Text, and IBM Watson.
Platforms where chatbots are deployed include Facebook Messenger, Skype, and Slack,
among many others.

The objective and scope of this project is knowing the college information and
It has an effective user interface and answers the queries related to examination cell,
admission, academics, users’ attendance , sports, faculty details, placement cell and other
miscellaneous activities.

5
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

TABLE OF CONTENTS

Contents Page No

1. Introduction 8
2. System Analysis
2.1 Existing System 12
2.2 Proposed System 12
2.3 Literature Review 14
2.4 Module Description
2.4.1 Admin Module 15
2.4.2 System Module 15
2.4.3 End-User Module 15
2.5 Hardware Requirements 15
2.6 Software Requirements 15
2.7 Feasibility Study:
2.7.1Technical Feasibility 16
2.7.2 Operational Feasibility 16
2.7.3 Economic Feasibility 16
2.8 Functional Requirements 16

3. System Design
3.1 System architecture 17
3.2 UML diagrams: 19
3.2.1 Class Diagram 20
3.2.2 Use Case diagram 21
3.2.3 Sequence diagram 22
3.3 Trained data 23
3.4 Technologies Description
3.4.1 Python 24
3.4.2 Machine Learning concepts 27
3.4.2.1 NLP 28

6
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

3.4.2.2 Data Format 30


3.4.2.3 FLASK API 31

4. Coding and implementation 36

5. Output Screens 53

6. Evaluation Metrics 58

7. Testing 61

8 .Conclusion 63

9. Future Enhancements 63

10. Bibliography 64

7
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

LIST OF FIGURES

Figure 1.1 Diagram of Chatbot conversational approach 10

Figure 2.1 Global Trends and analysis 14

Figure 3.1 System Architecture 17

Figure 3.2 Class Diagram 20

Figure 3.3 Use Case Diagram 21

Figure 3.4 Sequence Diagram 22

Figure 3.5 Trained dataset 23

Figure 3.6 Natural language tool kit 29

Figure 3.7 Conversations 31

Figure 3.8 Response relationship 32

Figure 3.8.1 Statement and response 33

Figure 3.8.2 Yaml process 33

Figure 3.8.3 Xml vs JSON YAML 34

1.INTRODUCTION

8
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

A chatbot is an artificially intelligent creature which can converse with humans.

This could be text-based, or a spoken conversation (in case of voice-based queries). Chat bots

are basically used for information acquisition. It can run on the local PCs and mobile phones,

though most of the time it is accessed through the internet. It can be compelling,captivating

and spell-bounding. It is a conversational agent which interacts with users in a certain domain

or on a particular topic with input in natural language sentences.Mainly a chatbot works by a

user asking some question or initiating a new topic of discussion. Chat bots can be referred

as software agents that pretend as human entity. These are the agents with AI embedded and

using NLP they can answer to user questions. Predefined knowledge base helps develop a

response to the query.

The need for college inquiry system arises due to various reasons which include: the

slow nature of college website, an outsider would not know where to search for a particular

piece of information, difficult for the person outside college’s domain to extract information.

The smart solution for all the drawbacks lends to the need of the system. The college inquiry

system will provide the response by summarizing the query and then output answers, it also

provides selective information what the user wants. A college system will dispense all answer

relating to domains such as admission, examination cell, notice board, attendance, placement

cell and other miscellaneous domains. The major features of the chatbot are: 1. College

admission related queries could be answered through it. 2. Viewing user profiles and retrieves

attendance and grade/ pointers. 3. College students can get information about examinations .

College inquiry system will act as a fast, standard and informative widget to enhance

9
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

college website’s user experience and bestow users with righteous information. The bot will

analyze user’s queries and understand users’message and then reply accordingly.It uses AI&

NLP. This way users’ time and efforts will be saved and s/he will be equipped with effective

answers. The objectives of this application are: 1.To analyze users queries and understand

message. 2. To provide an answer to the query of the user very effectively. 3.To save the time

of the user since s/he does not have to personally go to the college for inquiry. 4. This system

will help the student to be updated about the college activities. 5. The system will reply using

an effective GUI which implies that as if a real person is talking to the user.

Fig 1.1 Diagram of Chatbot conversational approach

ChatterBot is a Python library designed to make it easy to create software that can

10
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

engage in conversation. An untrained instance of Chatterbot starts off with no knowledge of

how to communicate. Each time a user enters a statement, the library saves the text that they

entered and the text that the statement was in response to. As ChatterBot receives more input

the number of responses that it can reply and the accuracy of each response in relation to the

input statement increase. The program selects the closest matching response by searching for

the closest matching known statement that matches the input, it then chooses a response from

the selection of known responses to that statement.

Humans believe that the concept of a chatbot is not realistic and a chatbot will not

be able to provide satisfying answers.Most of the time chatbots are being developed to serve

certain purposes and if a human tries to trick the chatbot it is likely that he will succeed.

Moreover humans do not think that a computer program will be able to satisfy their needs &

they do not even try to interact. Also if a human is aware that a chatbot has extensive

knowledge then he will be more demanding. In the case that we have to convince a human

that the conversation is taking place with another human then an extensive database has to be

used along with certain rules such as answering multiple questions, occurrence of words and

sentence parsing.

2. SYSTEM ANALYSIS

11
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

2.1 EXISTING SYSTEM

In Earlier there was no mode of online communication between users. In big or small
organizations communication between users posed a challenge. There was requirement to
record these communications and store the data for further evaluation. The idea is to
automate the existing Simple Chat Room system and make the users to utilize the software so
that their valuable information is stored digitally and can be retrieve for further management
purposes. There was no online method of communicating to different users. There were many
different interfaces available in the market but this method of using windows sockets to
communicate between nodes would be fast and reliable.

2.2 PROPOSED SYSTEM

This Simple Chat Bot application will enable the user to chat with the logged users in the chat
room. The server should be active. The users shall connect to this server at the predefined
port number. To start using this tool, the user has to ask the query directly with this tool.
Through the application shall allow the user to use the chat room. The user shall be able to
connect to this server and can chat with other users. The user can view o the chat room. The
user can initiate the conversation through the chat window. For the communication to
happen, both the users should have connected to the server. This application is developed
using visual studio code. The windows sockets are used in the application for communication
between client and server. They provide a robust way of communication between nodes. The
user also can clear the chat transcript if required. It also provides an option to save the chat
transcript.

2.3 LITERATURE REVIEW

A literature survey is a comprehensive summary of previous research on a topic. The


literature review surveys scholarly articles, books, and other sources relevant to a particular
area of research. It should give a theoretical base for the research and help you (the author)
determine the nature of your research.

1. Harsh Pawar , Pranav Prabhu, Ajay Yadav, Vincent Mendonca , Joyce Lemos [6], a
chatbot is designed by them using knowledge in database. The proposed system has Online
Enquiry and Online Chatbot System. The development is done using various programming
languages by creating a user friendly graphical interface to send and receive response. The
main purpose is it uses SQL (Structured Query Language) for pattern matching which is been
stored in program [6].

2. Nitesh Thakur, Akshay Hiwrale, Saurabh Selote, Abhijit Shinde and Prof. Namrata
Mahakalkar [10], proposed an artificial chatbot using NLP (Natural Language Processing)
which can be done in two ways the first via written text and the second is via verbal or voice
12
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

communication. Written communication is much easier than the verbal communication. This
paper introduces an interest in some emerging capabilities for evolving speed understanding
and processing in virtual human dialogue system [10].

3. In 2020, 3rd INTERNATIONAL CONFERENCE ON INNOVATIVE COMPUTING


AND COMMUNICATION - COMPARATIVE ANALYSIS OF CHATBOTS Shivang
Verma, Lakshay Sahni, Moolchand Sharma, Department of Computer Science and
Engineering, Maharaja Agrasen Institute of Technology, GGSIPU, Delhi, India, Department
of Electrical and Electronics Engineering, Delhi Technological University, Delhi, India. In
this paper, we are analyzing and comparing the total accuracy score of the following chat
bots: Rose, Google Assistant, Siri, Machine Comprehension Chatbot, Mitsuku, Jabber wacky,
ALICE and Eliza based on the answers provided by them to a set of predefined questions. [7]

4. In March 2019, International Journal of Engineering Science and Computing - A Review


on College Enquiry Chatbot By Jayesh Gangrade, Surinder Singh Surme, Sumant Somu,
Shubham Raskonda, Poonam Gupta, Department of Computer G.H. Raisoni College of
Engineering and Management, Pune, India. That project is an Android Application it’s
provide like grades of the student. That project has not response a unmatched keywords.
Artificial intelligence will be used to answer the student’s queries.[3] The answers will be
give using the built in artificial intelligence algorithms.[3] Algorithm will be used to match
the keywords from the knowledge base in some cases user may find out that the answer given
to his/her query is not relevant. [3]

5. A Web Based College Enquiry Chatbot with Results By Sagar Pawar, Omkar Rane, Ojas
Wankhade, Pradnya Mehta Department of Computer Engineering, MMCOE, Pune, India.
That project is web based application has provide answer query is very efficiently. It also
provide to the user to ask the tuition or private coaching enquiry to the classes, patient of the
hospital to collect information like available Doctors. It is basically

6. In March 2018, Journal for Research – Chatbot for College Related Queries By Mr. Sathis
Kumar .T, N. Vijay Kumar, R. R. Vinodh, T. Vivekananthan, U. Vinoth Kumar. In this
project they are developed a web based application by using DataMining (Process of data-
DWH; Level of data miningETL; Different level of Analysis- Artificial neural networks,
Decision Trees, Nearest Neighbor Method) and Clustering. It provide user to chat any type of
format. This system is trained by the dataset and also trained when come a new question
query and answer them. This system is provide a College’s activities such as date and time
like annual day, sport day and other activities. They generate new responses from scratch.
Generative models are typically based on Machine Translation techniques, but instead of
identify the synthetic similarity for entered Keyword. [2]

13
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Fig 2.1 In Chabot Report 2018: Global Trends and Analysis

7. Thomas N. T. and Amrita Vishwa designed an AIML and LSA based chatbot to provide
the customer care service over the E- commerce websites. Their approach shows we can
improve the chatbot ability by adding other models to it. In android operating system, we can
implement the chatbot using the various approaches. One of the approaches is shown by
Rushabh Jain and Burhanuddin Lokhandwala in their Android based Chat-Bot paper.
Emanuela Haller and Traian Rebedea, “Designing a Chat-bot that Simulates and Historical
Figure”, IEEE Conference Publications, July 2013.

8. Maja Pantic, Reinier Zwitserloot, and Robbert Jan Grootjans, “Teaching Introductory
Artificial Intelligence using A simple Agent Framework”, IEEE Transactions on Education,
Vol. 48, No. 3, August 2005. This paper describes a flexible method of teaching introductory
artificial intelligence (AI) using a novel, Java-implemented, simple agent framework
developed specifically for the purposes of this course. Although numerous agent frameworks
have been proposed in the vast body of literature, none of these available frameworks proved
to be simple enough to be used by first-year students of computer science. Hence, the authors
set out to create a novel framework that would be suitable for the aims of the course, for the
level of computing skills of the intended group of students, and for the size of this group of
students.

14
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

2.4 Module Description

2.4.1 ADMIN MODULE:


In Admin Module, admin collects the training data, and stores in database and prepares the
dataset and predicts the result.

2.4.2 SYSTEM MODULE :


In System Module, it loads the data files pre-process the data given, apply the algorithms,
train the files and produce the result to end -user.

2.4.3 END-USER MODULE:


In User Module they give their values an get their data by the bot and can view their result.

2.5 HARDWARE REQUIREMENTS:

∙          System                           :         Intel i5 Core.


∙          Hard Disk                      :         1 TB.
∙          Monitor                         :         15’’ LED
∙          Input Devices                :         Keyboard, Mouse
∙          RAM                              :         4 GB.
2.6 SOFTWARE REQUIREMENTS:

∙          Operating system           :         Windows 10.


∙          Coding Language           :         PYTHON
∙          Tool                                :         visual
studio code
∙ Web technology : HTML, CSS, JavaScript

2.7 FEASIBILITY STUDY


Preliminary investigation examines project feasibility; the likelihood the system will be
useful to the organization. The main objective of the feasibility study is to test the Technical,
Operational and Economical feasibility for adding new modules and debugging old running
system. All systems are feasible if they are given unlimited resources and infinite time. There
are aspects in the

● Technical Feasibility

15
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

● Operation Feasibility
● Economic Feasibility

2.7.1 TECHNICAL FEASIBILITY:

To determine whether the proposed system is technically feasible, we should take into
consideration the technical issues involved behind the situation. Technical feasibility center
on the existing computer system and to what extent it can support the proposed addition.
Python and its libraries are technology software which are used to develop Data Analytics.
So, there is no need for additional purchase of any software and these are open source
softwares which are freely available in Internet.

2.7.2 OPERATIONAL FEASIBILITY:

Proposed projects are beneficial only if they can be turned out into information systems that
will meet the user’s operating requirements. Operational feasibility aspects of the project are
to be taken as an important part of the application implementation. This system is operational
feasible since the users are familiar with the technologies and hence there is no need to gear
up the personnel to use the system. Also the system is very friendly and easy to use.

2.7.3 ECONOMIC FEASIBILITY:

To decide whether a project is economically feasible, we have to take into consideration


various factors as:

● Cost benefit analysis


● Long-term returns
● Maintenance costs
The proposed system is computer based. It requires average computing capabilities which is
very basic requirement and can be afforded by an organization; it doesn’t incur additional
economic overheads, which renders the system economically feasible.

2.8 Functional Requirements

● User gives the required attributes as input.


● The model predicts the output.
● The output is presented to the user.

3.SYSTEM DESIGN

16
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

3.1 System Architecture

Fig 3.1: SYSTEM ARCHITECTURE

Systems design is the process of defining the architecture, components, modules,


interfaces, and data for a system to satisfy specified requirements. Systems design could be
seen as the application of systems theory to product development. There is some overlap with
the disciplines of systems analysis, systems architecture and systems engineering.

TRAINING DATA:

Training Data is nothing but enriched or labelled data you need to train your models. You
might just need to collect more of it to sharpen your model accuracy. But, the chances of
using your data is pretty low because, as you build a great model you need great training data
at scale
Read the dialogue text from the corpus.

• The dialogue transcript is converted to YAML format.


• The output YAML is used to retrain BOT.

TEST DATA SET:

17
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

The test set is a set of observations used to evaluate the performance of the model using
some performance metric. It is important that no observations from the training set are
included
in the test set. If the test set does contain examples from the training set, it will be difficult to
assess whether the algorithm has learned to generalize from the training set or has simply
memorized it.

Example of Sample Training Set:

Class: Greetings

“How are you doing?”

“Good morning”

“Hi, there!” 

Principles of Chat Bot Design:

1. Don’t pretend to be a human Playing bait-and-switch with a user can make them feel that
they have been duped, or that they don’t understand how a system works; both are bad user
experiences. Don’t pull the rug out from under your users. This means not using “is-typing”
indicators or artificial delays to make it seem more human. On the contrary, bot messages
should be styled differently and be clearly labeled in a way that communicates they are not
human. This doesn’t preclude us from giving the bot personality.

2. Respect the chat medium one advantage of smart messaging apps is that we can strip away
a lot of apps and interface and reduce the interaction to a simple chat UI. It would therefore
be pointless to turn around and drop an entire app directly into a conversation. Keep
everything native to the conversational back-and-forth. Every bot interaction is about call and
response, with the bot publishing comments into the chat thread and the end user responding
in the reply area. Bots can’t modify conversations in ways that humans can. At the same time,
make use of conventions: rather than printing out an ungainly URL in a bot response, show a
nicely-formatted card previewing the linked page.

3. Optimize for the end user Bots should be used to improve the end user experience, not just
to make life easier for customer support teams. A designer should ask themselves: would a
human be better for the end user? If the answer is yes, you shouldn’t be using a bot. Bots
should not attempt to replace what humans are good at; rather they should attempt to improve
what humans are slow at. Machines should work; people should think.

TRANING MODELS:

18
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

1. Natural language understanding (NLU)


2. Natural language process (NLP)

3.2 UML Diagrams


In the field of software engineering, the Unified Modelling Language (UML) is a
standardized visual specification language for object modelling. UML is a general-purpose
modelling language that includes a graphical notation used to create an abstract model of a
system, referred to as a UML model. The model also contains a “Semantic backplane”-
documentation such as written use cases that drive the model elements and diagrams.

The importance of UML in Modelling:

A modelling language is a language whose vocabulary and rules focus on the


conceptual and physical representation of a system. A modelling language such as UML is
thus a standard language for software blueprints. The UML is not a visual programming
language, but its models can be directly connected to various programming languages.

This means that it is possible to map from a model in the UML to a programming
language Java, C++ or Visual Basic, or even to tables in a relational database or the persistent
store of an object oriented database. This mapping permits forward engineering: the
generation of code from a UML model into a programming language.

The reverse is also possible you can reconstruct a model from an implementation back
into UML. This is a programming language that is used for object-oriented software
development. To organise program code more efficiently, programmers often create “objects”
that are sets of structured data within programs. UML, which has been standardised by the
Object Management Group (OMG), was designed for this purpose.
The language has gained enough support that it has become a standard language for
visualising and constructing software programs.

A conceptual model of UML:

The three major elements of UML are

1. The UML’s basic building blocks


2. The rules that dictate how those building blocks may be put together
3. Some common mechanism that applies throughout the UML.

3.2.1 CLASS DIAGRAM:

19
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

In software engineering, a class diagram in the Unified Modelling Language (UML) is a type
of static structure diagram that describes the structure of a system by showing the system’s
classes, their attributes and their relation between the classes.
The class diagram is the main building block in object-oriented modelling. It is used both for
general conceptual modelling of the semantics of the application and for detail modelling
translating the model into programming code. The classes in a class diagram represent both
the main objects and or interactions in the application and the objects to be programmed. In
the class diagram these classes are represented by boxes which contain three parts:

1. The upper part holds the name of the class.


2. The middle part contains attributes of a class. Attributes of a class may be public,
private or protected.
3. The bottom part gives the methods or operations the class can take or undertake.

Fig 3.2: CLASS DIAGRAM

3.2.2 USE CASE DIAGRAM:

A use case diagram in the Unified Modelling Language (UML) is a type of


behavioural diagram defined by and created from a Use Case analysis. Its purpose is to
present a graphical overview of the functionality provided by a system in terms of actors,
their goals (represented as use cases), and any dependencies between those use cases. The
main purpose of a use case diagram is to show what system functions are performed by which
actor. Roles of the actors in the systems can be depicted
. Actors

20
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

. Use cases

Fig 3.3: USECASE DIAGRAM

3.2.3 SEQUENCE DIAGRAM:

The sequence diagram shows a detailed flow for a specific use case or even just part of a
specific use case.  There are almost self-explanatory. They show the calls between the
different objects in their sequence and can show at a detailed level, different calls to different
objects. A Sequence diagram has two dimensions: The vertical dimension shows the
sequence of messages/calls in the time order that they occur. The horizontal dimension shows
the object instances to which the messages are sent.

21
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Fig 3.4 SEQUENCE DIAGRAM

3.3 Trained data

22
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Fig 3.5 Trained Dataset

3.4 Technologies Description

3.4.1 Python

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 Identifiers:

A Python identifier is a name used to identify a variable, function, class, module or other
object. An identifier starts with a letter A to Z or a to z or an underscore (_) followed by zero
or more letters, underscores and digits (0 to 9).

Python does not allow punctuation characters such as @, $, and % within identifiers. Python
is a case sensitive programming language. Thus, Manpower and manpower are two different
identifiers in Python.
Here are naming conventions for Python identifiers -
23
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

•Class names start with an uppercase letter. All other identifiers start with a lowercase letter.
•Starting an identifier with a single leading underscore indicates that the identifier is private.
•Starting an identifier with two leading underscores indicates a strongly private identifier.
•If the identifier also ends with two trailing underscores, the identifier is a language-defined
special name.

Python Lists:

1. A list is a collection of elements. These elements may be homogeneous or


heterogeneous.
2. A list is a value that contains multiple values in an ordered sequence. The term list value
refers to the list itself (which is a value that can be stored in a variable or passed to a function
like any other value)
3. Just as string values are typed with quote characters to mark where the string begins and
ends, a list begins with an opening square bracket and ends with a closing square bracket, [].
4. Values inside the list are also called items. Items are separated with commas (that is, they
are comma-delimited).
5. A list also allows duplicate elements.
6. Insertion order is preserved in list.
7. List elements are separated by commas and enclosed within square brackets ([]).
8. Every element in the list has its own unique index number.
9. List supports both forward indexing and backward indexing, forward index starts from 0
and backward index starts from -1.
10. We access either specific element by using indexing or set of elements by using slicing
from the List.
11. We can create list in different ways. Like by using list() function, by using square
brackets “[]” and also by using range() function.
12. List objects are mutable.

Creating List by using List()

1. This list() allows only one string value with set of characters.
2. If we give int type data in the list() function then interpreter will throw ‘TypeError’ error.
Eg:
>>> List1=list() #creating empty list
>>>print(List1) []
>>>type(List1) <class 'list'>

Python Tuple:

24
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

1. Tuple is used to represent a set of homogeneous or heterogeneous elements into a single


entity.
2. Tuple objects are immutable that means once if we create a tuple later we cannot modify
that
tuple object.
3. All elements are separated by commas (,) and enclosed by parentheses. Parentheses are
optional.
4. Tuple allows duplicate elements.
5. Every element in the tuple has its own index number
6. Tuple supports both forward indexing and also backward indexing, forward indexing starts
from 0
and backward indexing starts from -1.
7. If we take only one element in the tuple then we should use comma (,) after that single
element.
8. Tuples can be used as keys to the dictionary.
9. We can create a tuple in different ways, like with tuple(), with () or without () also.
10. The main difference between lists and tuples is- Lists are enclosed in brackets ( [ ] ) and
their
elements and size can be changed, while tuples are enclosed in parentheses ( ( ) ) and cannot
be updated.

Creating a tuple with tuple():


Eg1:

>>>tup=tuple([10,20,30,True,'Python'])
>>> print(tup) (10, 20, 30, True, 'Python')
>>> type(tup) <class 'tuple'>
>>> id(tup) 52059760

Dictionary:

Each key is separated from its value by a colon (:), the items are separated by commas, and
the whole thing is enclosed in curly braces. An empty dictionary without any items is written
with just two curly braces, like this: {}.
Keys are unique within a dictionary while values may not be. The values of a dictionary can
be of any type, but the keys must be of an immutable data type such as strings, numbers, or
tuples.

Accessing Values in Dictionary

25
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

To access dictionary elements, you can use the familiar square brackets along with the key to
obtain its value. Following is a simple example –
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']
When the above code is executed, it produces the following result dict['Name']: Zara
dict['Age']: 7

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

2. Python is Interactive:

You can actually sit at a Python prompt and interact with the interpreter directly to write your
programs.
Python comes with an interactive interpreter. When you type python in your shell or
command prompt, the python interpreter open up with a >>> prompt and waiting for your
instructions.
>>> says that your are inside the python interpreter
$ python
Python 2.7.6 (default, Apr 24 2015, 09:38:35)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

If you want to exit the Python console at any point, just type exit() or use the shortcut Ctrl +
Z for Windows and Ctrl + D for Mac/Linux. Then you won't see >>> any longer.

3. Python is Object-Oriented:

Python supports Object-Oriented style or technique of programming that encapsulates code


within objects.

Variables - In Python there are no declarations.

Dynamically Typed:
Python is a dynamic-typed language. Many other languages are static typed, such as C/C++
and Java.
A static typed language requires the programmer to explicitly tell the computer what type of
“thing” each data value is. For example, in C if you had a variable that was to contain the

26
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

price of something, you would have to declare the variable as a “float” type. This tells the
compiler
that the only data that can be used for that variable must be a floating point number, i.e. a
number with a decimal point. If any other data value was assigned to that variable, the
compiler would give an error when trying to compile the program.

Note:  Everything is an object in Python.

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

5. Running Python Scripts:

Open your text editor, type the following text and save it as “hello.py”.
print "Hello, World!"
And run this program by calling “python hello.py”. Make sure you change to the directory
where you saved the file before doing it.

C:\Users\USER\Desktop> python hello.py


Hello, World

Python distribution, not just for data science and machine learning but for general purpose
Python development as well. The Anaconda distro provides, first and foremost, a Python
distribution outfitted with easy access to the packages often used in data science: NumPy,
Pandas, Matplotlib, and so on. They’re not simply bundled with Anaconda, but available via
a custom package management system called Conda. Condainstalled packages can include
tricky external binary dependencies that couldn’t be managed through Python’s own Pip.

Each package is kept up-to-date by Anaconda, and many of them are compiled with the Intel
MKL extensions for speed. The other major advantage Anaconda confers is a graphical
environment, the Anaconda Navigator. The Navigator isn’t an IDE, but rather a convenient
GUI front end for Anaconda features including the Conda package manager and
userconfigured virtual environments. You can also user Navigator to manage third-party
applications such as Jupyter notebooks and the Visual Studio Code IDE.

3.4.2 Machine Learning Concepts


Machine learning is an application of artificial intelligence (AI) that provides systems the
ability to automatically learn and improve from experience without being explicitly
programmed. Machine learning focuses on the development of computer programs that can
access data and use it learn for themselves.

27
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

The process of learning begins with observations or data, such as examples, direct
experience, or instruction, in order to look for patterns in data and make better decisions in
the future. The primary aim is to allow the computers learn automatically without human
intervention or assistance and adjust actions accordingly.

Some machine learning methods

⮚ Supervised machine learning algorithms can apply what has been learned in the
past to new data using labelled examples to predict future events. Starting from the
analysis of a known training dataset, the learning algorithm produces an inferred
function to make predictions about the output values. The system is able to provide
targets for any new input after sufficient training. The learning algorithm can also
compare its output with the correct, intended output and find errors in order to modify
the model accordingly.
⮚ In contrast, unsupervised machine learning algorithms are used when the
information used to train is neither classified nor labelled. Unsupervised learning
studies how systems can infer a function to describe a hidden structure from
unlabelled data. The system doesn’t figure out the right output, but it explores the data
and can draw inferences from datasets to describe hidden structures from unlabelled
data
⮚ Semi-supervised machine learning algorithms fall somewhere in between
supervised and unsupervised learning, since they use both labelled and unlabelled data
for training – typically a small amount of labelled data and a large amount of
unlabelled data. The systems that use this method are able to considerably improve
learning accuracy. Usually, semi-supervised learning is chosen when the acquired
labelled data requires skilled and relevant resources in order to train it / learn from it.
Otherwise, acquiring unlabelled data generally doesn’t require additional resources.

3.4.2.1 NATURAL LANGUAGE PROCESSING


Natural language processing (NLP) is the ability of a computer program to understand
human language as it is spoken and written -- referred to as natural language. It is a
component of artificial intelligence (AI).NLP has existed for more than 50 years and has
roots in the field of linguistics. It has a variety of real-world applications in a number of
fields, including medical research, search engines and business intelligence.

Important Points
● Businesses use massive quantities of unstructured, text-heavy data and need a way to
efficiently process it. A lot of the information created online and stored in databases is
natural human language, and until recently, businesses could not effectively analyze
this data. This is where natural language processing is useful.

28
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

● The advantage of natural language processing can be seen when considering the
following two statements: "Cloud computing insurance should be part of every
service-level agreement," and, "A good SLA ensures an easier night's sleep -- even in
the cloud." If a user relies on natural language processing for search, the program will
recognize that cloud computing is an entity, that cloud is an abbreviated form of cloud
computing and that SLA is an industry acronym for service-level agreement.

Performance of NLP Model
Data preprocessing involves preparing and "cleaning" text data for machines to be
able to analyze it. preprocessing puts data in workable form and highlights features in the text
that an algorithm can work with. There are several ways this can be done, including:

● Tokenization This is when text is broken down into smaller units to work with.
● Stop word removal. This is when common words are removed from text so unique
words that offer the most information about the text remain.
● Lemmatization and stemming. This is when words are reduced to their root forms to
process.

Fig 3.6:Natural language tool kit

Part-of-speech tagging. This is when words are marked based on the part-of speech they are
-- such as nouns, verbs and adjectives.

29
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

(NLP) is a field that focuses on making natural human language usable by computer
programs. NLTK, or Natural Language Toolkit, is a Python package that you can use for
NLP.
A lot of the data that you could be analyzing is unstructured data and contains human-
readable text. Before you can analyze that data programmatically, you first need to
preprocess it. In this tutorial, you’ll take your first look at the kinds of text
preprocessing tasks you can do with

NLTK so that you’ll be ready to apply them in future projects. You’ll also see how to do
some basic text analysis and create visualizations.

3.4.2.2 DATA FORMAT

The data file contained in Chatterbot Corpus is formatted using YAML syntax. This format is
used because it is easily readable by both humans and machines

Property Required Description


categories Required A list of categories that describe the
conversations.
conversations Optional A list of conversations. Each conversation is
denoted as a list.

Advantages:

30
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

● Perform large-scale analysis


● Get a more objective and accurate analysis
● Streamline processes and reduce costs
● Improve customer satisfaction
● Better understand your market
● Empower your employees
● Gain real, actionable insights
Disadvantages:

● Complex Query Language- the system may not be able to provide the correct answer
it the question that is poorly worded or ambiguous.
● The system is built for a single and specific task only; it is unable to adapt to new
domains and problems because of limited functions

3.4.2.3 FLASK API

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.
We will make a Flask chatbot. Flask is a microframework used for web development. We
will follow the process given below:

1. Make a web app using the flask.


2. Make a directory for the templates.
3. Train the bot.
4. Make conversation with the bot.

Chatterbot’s preprocessors are simple functions that modify the input statement that a chat
bot receives before the statement gets processed by the logic adaper.

Chatterbot Corpus:

Corpus data is user contributed, but it is also not difficult to create one if you are familiar
with the language. This is because each corpus is just a sample of various input statements
and their responses for the bot to train itself with.
To explore what languages and collections of corpora are available, check out the chatterbot
corpus/data directory in the separate chatterbot-corpus repository.

31
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

ChatterBot supports the ability to have multiple concurrent conversations. A


conversations is where the chat bot interacts with a person, and supporting multiple
concurrent conversations means that the chat bot can have multiple different conversations
with different people at the same time.

Figures 3.7 Conversations

ChatterBot’s statement objects represent either an input statement that the chat bot has
received from a user, or an output statement that the chat bot has returned based on some
input.

Figure 3.8 Response relationship.

32
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Statement comparison

ChatterBot uses statement objects to hold information about things that can be said. An
important part of how a chat bot selects a response is based on its ability to compare two
statements to each other. There are a number of ways to do this, and ChatterBot comes with a
handful of methods built in for you to use.

Figure 3.8.1 Statements and response

YAML:
YAML Ain't Markup Language (YAML) is a serialization language that has steadily
increased in popularity over the last few years. It's often used as a format for configuration
files, but its object serialization abilities make it a viable replacement for languages like
JSON. 

Figure 3.8.2 Yaml process

33
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

This YAML tutorial will demonstrate the language syntax with a guide and some simple
coding examples in Python. YAML has broad language support and maps easily into native
data structures. It's also easy to for humans to read, which is why it's a good choice for
configuration.

Comparison with Other languages


● XML
XML (Extensible Markup Language) is a markup language similar to HTML, but
without predefined tags to use. Instead, you define your own tags designed
specifically for your needs. This is a powerful way to store data in a format that can
be stored, searched, and shared. Most importantly, since the fundamental format of
XML is standardized, if you share or transmit XML across systems or platforms,
either locally or over the internet, the recipient can still parse the data due to the
standardized XML syntax.
● JSON
JavaScript Object Notation (JSON) is a standard text-based format for representing
structured data based on JavaScript object syntax. It is commonly used for
transmitting data in web applications (e.g., sending some data from the server to the
client, so it can be displayed on a web page, or vice versa). You'll come across it quite
often, so in this article we give you all you need to work with JSON using JavaScript,
including parsing JSON so you can access data within it, and creating JSON.
● YAML
YAML is a digestible data serialization language that is often utilized to create
configuration files and works in concurrence with any programming language.
YAML is a data serialization language designed for human interaction. It's a strict
superset of JSON, another data serialization language 

Figure 3.8.3 XML vs JSON vs YAML


34
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Adapters

ChatterBot uses adapter modules to control the behavior of specific types of tasks. There are
four distinct types of adapters that ChatterBot uses, these are storage adapters and logic
adapters.

Adapters types

Storage adapters - Provide an interface for ChatterBot to connect to various storage systems
such as MongoDB or local file storage.
Logic adapters - Define the logic that ChatterBot uses to respond to input it receives.

Accessing the ChatBot instance

When Chatterbot initializes each adapter, it sets an attribute named chatbot. The chatbot
variable makes it possible for each adapter to have access to all of the other adapters being
used. Suppose logic adapters need to share some information or perhaps you want to give
your logic adapter direct access to the storage adapter. These are just a few cases where this
functionality is useful.

Each adapter can be accessed on the chatbot object from within an adapter by
referencing self. Chatbot. Then, self.chatbotstorage refers to the storage adapter,
and self.chatbot.logic refers to the logic adapters.

Specifying logic adapters The logic_adapters parameter is a list of logic adapters. In


ChatterBot, a logic adapter is a class that takes an input statement and returns a response to
that statement. You can choose to use as many logic adapters as you would like. In this
example we will use two logic adapters. The TimeLogicAdapter returns the current time
when the input statement asks for it. The MathematicalEvaluation adapter solves math
problems that use basic operations.

ChatterBot includes tools that help simplify the process of training a chat bot instance.
ChatterBot’s training process involves loading example dialog into the chat bot’s database.
This either creates or builds upon the graph data structure that represents the sets of known
statements and responses. When a chat bot trainer is provided with a data set, it creates the
necessary entries in the chat bot’s knowledge graph so that the statement inputs and responses
are correctly represented.

Several training classes come built-in with ChatterBot. These utilities range from allowing
you to update the chat bot’s database knowledge graph based on a list of statements

35
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

representing a conversation, to tools that allow you to train your bot based on a corpus of pre-
loaded training data.

4.Coding And Implementation

The goal of the coding or programming phase is to translate the design of the system
produced during the design phase into code in a given programming language, which can be
executed by a computer and that performs the computation specified by the design.
The coding phase affects both testing and maintenance. The goal of coding is not to
reduce the implementation cost but the goal should be to reduce the cost of later phases. In
other words, the goal is not to simplify the job of a programmer. Rather the goal should be to
simplify the job of the tester and maintainer.

Coding Approach:

There are two major approaches for coding any software system. They are Top- Down
approach and Bottom-up approach. Bottom-up approach can be best suitable for developing
the object-oriented systems. During system design phase to reduce the complexity, we
decompose the system into an appropriate number of subsystems, for which objects can be
modelled independently. These objects exhibit the way the subsystems perform their
operations.
Once the objects have been modelled they are implemented by means of coding.
Even though related to the same system as the objects are independent of each other. The
Bottom-up approach is more suitable for coding these objects.
In this approach, we first do the coding of objects independently and then integrate
these modules into one system to which they belong.

CODING:

Importing Packages

from chatterbot import ChatBot


from chatterbot.trainers import ChatterBotCorpusTrainer
from flask import Flask, render_template, request

36
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

from flask import Blueprint

Reading Datsaset files

data set files C:\Users\YASUSHMA\Desktop\sushma\chatbot img\chatbot\english\ai.yml

Intializing Flask and using adapters

App.py(file)

app = Flask(__name__)

botname='Charm'
chatbot = ChatBot(botname,
#storage_adapter='chatterbot.storage.SQLStorageAdapter',
logic_adapters=[
{
'import_path': 'chatterbot.logic.BestMatch',
'default_response': 'I am sorry, but I do not understand.',
'maximum_similarity_threshold': 0.8
},

{
"import_path": "profanity_adapter.ProfanityAdapter",

},
{
"import_path": "covid19_adapter.Covid19Adapter",

},
],
)

Connecting Flask using python

@app.route("/")
def home():
return render_template("index.html", botname=botname)

@app.route("/get")

37
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

def get_bot_response():
userInput=request.args.get('msg')
return str(chatbot.get_response(userInput))

# our main blueprint


main = Blueprint('main', __name__,template_folder='templates')

@app.route("/hello") # home page that return 'index'


def feed():
return render_template("feeds.html")

@app.route("/back") # home page that return 'index'


def backs():
name1 = request.form["name"]
print(name1)
emails1 = request.form["email"]
cont1 = request.form["subject"]
connection = sqlite3.connect('feedback.db')
cursor = connection.cursor()
params = (name1,emails1,cont1)
#query1 = "INSERT INTO feedback VALUES({n1},{e1},
{c1})".format(n1=name1,e1=emails1,c1=cont1)
#query1 = ("INSERT INTO feedback VALUES(?,?,?)",params)
print('ok')
cursor.execute("INSERT INTO feedback (username,email,content) VALUES(?,?,?)",
(name1,emails1,cont1))
#cursor.execute(query1)
connection.commit()
return render_template("back.html")

if __name__ == '__main__':
app.run(debug=True)

train.py (file)

importing packages

from app import chatbot


from chatterbot.trainers import ChatterBotCorpusTrainer
import pathlib

38
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Training the corpus data

trainer = ChatterBotCorpusTrainer(chatbot)

trainer.train(
str(pathlib.Path().absolute())+'/english/',
)

profanity_adapter.py (file)

from chatterbot.logic import LogicAdapter

class ProfanityAdapter(LogicAdapter):

def __init__(self, chatbot, **kwargs):


super().__init__(chatbot, **kwargs)
self.profanity_counter=0

def can_process(self, statement):


words = ['fuck', 'f*ck', 'f**k', 'fuk', 'ass', 'a$$', 'f off', 'stupid', 'dumb']
if any(x in statement.text.split() for x in words) and self.profanity_counter<3:
self.profanity_counter+=1
return True
else:
return False

def process(self, input_statement, additional_response_selection_parameters):


from chatterbot.conversation import Statement
import time
import sys
import os

if self.profanity_counter<3:
response_statement=Statement(text='You: [WARNING #{}] Please do not use
profanity otherwise I will be forced to terminate this chat'.format(self.profanity_counter))

elif self.profanity_counter>2:
response_statement=Statement(text='You have used exessive language. Terminating
chat')
response_statement.confidence = 1

return response_statement

39
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

CODE FOR HTML FILES

Index.html

<!DOCTYPE html>
<html>
<head>

<link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">

<!-- Bootstrap CSS -->


<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
integrity="sha384-
JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z"
crossorigin="anonymous">

<!-- Bootstrap -->


<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"

integrity="sha384-
BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">

<link rel="stylesheet" type="text/css" href="/static/style.css">


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

</head>
<STYLE>
.navbar {
overflow: hidden;
background-color: rgb(184, 86, 86);
position: fixed;
top: 10;
width: 100%;
text-align:center;
display:block;
}

40
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

.container .btn {
position: absolute;
top: 40%;
left: 90%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
background-color: rgb(24, 103, 223);
color: white;
font-size: 16px;
padding: 12px 24px;
border: none;
cursor: pointer;
border-radius: 5px;
text-align: center;
position: absolute;
right: 150px;
}

.container .btn:hover {
background-color: black;
}
</STYLE>
<body style="background-color:powderblue;">

<div class="navbar">
<H1>SRK COLLEGE INSTITUTE</H1>

<button type="button"
onclick="window.location.href='{{ url_for( 'feed') }}';">Feedback</button>
</div>

<br>
<br>
<div>
<div id="chatbox">
<p class="botText"><span>Hi! I'm {{botname}}. How can I help you
today?.</span></p>
</div>
<div id="userInput">

41
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

<input id="textInput" name="msg" type="text" class="message form-control"


placeholder="Messages">
<br>
<button id="buttonInput" type="submit" class="btn btn-success btn-block"><span
class="glyphicon glyphicon-send"></span> Send</button>
</div>
<script>
function getBotResponse() {
var rawText = $("#textInput").val();
var userHtml = '<p class="userText"><span>' + rawText + '</span></p>';
$("#textInput").val("");
$("#chatbox").append(userHtml);
document.getElementById('userInput').scrollIntoView({block: 'start', behavior:
'smooth'});
$.get("/get", { msg: rawText }).done(function(data) {
var botHtml = '<p class="botText"><span>' + data + '</span></p>';
$("#chatbox").append(botHtml);
document.getElementById('userInput').scrollIntoView({block: 'start', behavior:
'smooth'});
});
}
$("#textInput").keypress(function(e) {
if ((e.which == 13) && document.getElementById("textInput").value != "" ){
getBotResponse();
}
});
$("#buttonInput").click(function() {
if (document.getElementById("textInput").value != "") {
getBotResponse();
}

})
</script>
</div>
</body>
</html>

feeds.html

!DOCTYPE html>
<html>
<head>

<meta name="viewport" content="width=device-width, initial-scale=1">

42
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

<link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">

<!-- Bootstrap CSS -->


<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
integrity="sha384-
JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z"
crossorigin="anonymous">

<!-- Bootstrap -->


<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
integrity="sha384-
BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">

<link rel="stylesheet" type="text/css" href="/static/style.css">


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<style>

{font-family: Arial, Helvetica, sans-serif;}


* {box-sizing: border-box;}

input[type=text], select, textarea {


width: 100%;
align: center;
padding: 15px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
margin-top: 6px;
margin-bottom: 16px;
resize: vertical;
}

input[type=submit] {
background-color: #04AA6D;

43
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
}

input[type=submit]:hover {
background-color: #45a049;
}

.navbar {
overflow: hidden;
background-color: rgb(184, 86, 86);
position: relative;
top: 100;
left: 50;
width: 100%;
color:red;
text-align:center;
display:block;
}
.container {
border-radius: 15px;
background-color: #f2f2f2;
padding: 55px;
}

.navba1{
align-self: center;
}

.container .btn {
position: absolute;
top: 80%;
left: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
background-color: rgb(24, 103, 223);
color: white;
font-size: 16px;
padding: 12px 24px;

44
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

border: none;
cursor: pointer;
border-radius: 5px;
text-align: center;
}

.container .btn:hover {
background-color: black;
}
</style >
</head>

<body style="background-color:powderblue";>

<div class="navbar">

<H1>SRK COLLEGE INSTITUTE</H1>


</div>
<h3>Feedback From</h3>

<div class="container">
<form action="/action_page.php" required>
<label for="fname"> Name</label>
<input type="text" id="fname" name="firstname" placeholder="Your name.." required>

<label for="lname">Email Address</label>


<input type="text" id="lname" name="lastname" placeholder="Your email address.."
required>

<label for="subject">Subject</label>
<textarea id="subject" name="subject" placeholder="Write something.."
style="height:200px" required></textarea>
<div class="btn">
<button type="button"
onclick="window.location.href='{{ url_for( 'backs') }}';">Submit</button>
</div>
</form>
</div>

</body>
</html>

hello.html

45
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

<html>
<body>
<h1>welcome</h1>
</body>
</html>

back.html

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">

<link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">

<!-- Bootstrap CSS -->


<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
integrity="sha384-
JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z"
crossorigin="anonymous">

<!-- Bootstrap -->


<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
integrity="sha384-
BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">

<link rel="stylesheet" type="text/css" href="/static/style.css">


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<style >
.container {
position: relative;
width: 1000%;
max-width: 400px;
}

.container img {
width: 100%;
height: auto;

46
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

.container .btn {
position: fixed;
top: 52%;
left: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
background-color: rgb(24, 103, 223);
color: white;
font-size: 16px;
padding: 12px 24px;
border: none;
cursor: pointer;
border-radius: 5px;
text-align: center;
}

.container .btn:hover {
background-color: black;
}

.navbar {
overflow: hidden;
background-color: rgb(184, 86, 86);
position: fixed;
top: 0;
width: 100%;
text-align:center;
display:block;
}
.thanks {
position: absolute;
top: 30%;
left: 25%;
color: rgba(61, 70, 22, 0.671);
font-size: 50%;
}
h2 {
font-size: 80px;
}
</style>
</head>
<body style="background-color:powderblue";>

47
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

<div class="navbar">

<H1>SRK COLLEGE INSTITUTE</H1>


</div>

<div class="thanks">
<h2>Thanks for your feedback...</h2>
</div>
<div class="container">
<a href="http://127.0.0.1:5000/">
<button class="btn">Go Home Page</button>
</a>
</div>

</body>
</html>

Style.css

body {
font-family: Garamond;
}

h1 {
color: black;
margin-bottom: 0;
margin-top: 0;
text-align: center;
font-size: 40px;
}

h3 {
color: black;
font-size: 20px;
margin-top: 3px;
text-align: center;

#chatbox {
margin-left: auto;
margin-right: auto;
width: 40%;
margin-top: 60px;

48
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

border-radius: 25px;
}

#userInput {
margin-left: auto;
margin-right: auto;
width: 40%;
margin-top: 60px;
}

#textInput {

width: 100%;
border: none;
border-bottom: 3px solid #48b68c;
font-family: monospace;
font-size: 17px;
}

#buttonInput {
padding: 3px;
font-family: monospace;

font-size: 17px;
}

.userText {
color: white;
font-family: monospace;
font-size: 17px;
text-align: right;
line-height: 30px;
}

.userText span {
background-color: #769430;
padding: 10px;
border-radius: 2px;
}

.botText {
color: white;
font-family: monospace;
font-size: 17px;

49
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

text-align: left;
line-height: 30px;
}

.botText span {
background-color: #772928;
padding: 10px;
border-radius: 2px;
}

#tidbit {
position:absolute;
bottom:0;
right:0;
width: 300px;
}

CODE FOR DATA FILES(YAML):

ai.yml

categories:
- AI
- artificial intelligence
conversations:
- - What is AI?
- Artificial Intelligence is the branch of engineering and science devoted to constructing
machines that think.
- - What is AI?
- AI is the field of science which concerns itself with building hardware and software that
replicates the functions of the human mind.
- - Are you sentient?
- Sort of.
- - Are you sentient?
- By the strictest dictionary definition of the word 'sentience', I may be.
- - Are you sentient?
- Even though I'm a construct I do have a subjective experience of the universe, as simplistic
as it may be.
- - Are you sapient?
- In all probability, I am not. I'm not that sophisticated.
- - Are you sapient?
- Do you think I am?
- - Are you sapient?

50
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

- How would you feel about me if I told you I was?


- - Are you sapient?
- No.
- - What language are you written in?
- Python.
- - What language are you written in?
- I am written in Python.

Greeting.yml
categories:
- greetings
conversations:
- - Hello
- Hi
- - Hi
- Hello
- - Hey
- Hi
- - Hey
- Hello
- - Hey
- Hi, How is it going?
- - How are you?
- I'm doing Well. How are you?
- - What's Up
- Not Much and You?
- - Can we be friends?
- Yeah sure
- - hey there
- hey what's up
- - Greetings!
- Hello
- - Hello
- Greetings!
- - Hi, How is it going?
- Good
- - Hi, How is it going?
- Fine
- - Hi, How is it going?
- Okay
- - Hi, How is it going?
- Great

51
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

- - Hi, How is it going?


- Could be better.
- - Hi, How is it going?
- Not so great.
- - How are you doing?
- Good.
- - How are you doing?
- Very well, thanks.
- - How are you doing?
- Fine, and you?
- - Nice to meet you.
- Thank you.
- - How do you do?
- I'm doing well.
- - How do you do?
- I'm doing well. How are you?
- - Hi, nice to meet you.
- Thank you. You too.
- - It is a pleasure to meet you.
- Thank you. You too.
- - Top of the morning to you!
- Thank you kindly.
- - Top of the morning to you!
- And the rest of the day to you.
- - What's up?
- Not much.
- - What's up?
- Not too much.
- - What's up?
- Not much, how about you?
- - What's up?
- Nothing much.
- - What's up?
- The sky's up but I'm fine thanks. What about you?

College.yml
categories:
- college
conversations:
- - college timings
- 9 am to 5 pm
- - College timings
- 9 am to 4 pm
- - college name

52
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

- SRK INSTITUTE OF TECHNOLOGY


- - who is the hod of cse
- Dr.D.Haritha mam
- - hod of cse
- Dr.D.Haritha mam
- - my project guide
- a. kalyan kumar sir
- - faculty members in cse department
- "10"
- - Mca faculty details
- "10" members in mca department
- - who are the faculty in mca:
- D.Haritha mam,A.Radhika mam,neelima prriyanka mam ,asha latha mam, amedhkar sir,
kalyan sir

5.Output Screens

53
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Figure 5.1 :Training the yaml data files

A Data file is given as input as yaml files and the output is predicted.training the yml file when
train.py was loaded.

Figure 5.2 : Running the app.py file

A Data file is given as input as yaml files and the output is predicted.training the yml file .when
app.py was loaded and gives us the url for the application .

54
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Figure 5.3: Output Screen

When we click on url we get the web page like above page in default browser.

55
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Figure 5.4 : Output which was not trained

Figure 5.5 : Feedback page

56
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Figure 5.6 : Feedback page with details

Figure 5.7 : After submitting feedback

57
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Figure 5.7 : Homepage

6. EVALUATION METRICS

Defining metrics is important. Since many of the capabilities of the chatbot will be measured
through those metrics. For a newly created chatbot, those metrics can fluctuate dramatically.
After implementing the chatbot, companies need to monitor it closely. Since the expectations
are efficiency enhancement, faster response, and greater conversion, companies need to
define the right metrics. This way, the performance of the bot can be monitored and improved
efficiency. For data scientists, this dimension of the issue provides many use cases.

Web fousced Metrics do not calculate misunderstood requests or message delays. Chatbots
require need new metrics and to get the most out of their benefits. If you are already familiar
with web metrics, jump to chatbot specific performance metrics such as message
metrics or bot metrics

We have previously written an in-depth guide on conversational bots/chatbots. We argued


that chatbots will change the world and brands should start experimenting with them. Chatbot
analytics is also referred to as conversational analytics, chatbot analytics, bot analytics,
chatbot intelligence, which is an important tool in guiding brands’ experiments with chatbots.

58
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

We cover all relevant question about bot analytics tools and important chatbot metrics that a
company needs to measure the progress of its chatbot/conversational AI system:

User Metrics

1- Total Users: This is the most basic metric. It captures the number of people using your
chatbot. This matters because its trend shows the change in the number of users and therefore
the amount of data your chatbot has been exposed to. Also, this would provide critical
information regarding the market size calculations and potentially the effect of your chatbot.

2- Active Users: Active users can be defined as the people who read a message in the chatbot
in a defined time frame. These are your potential targets. Measuring the potential effects of a
promotional activity can be estimated from that number. The number of people who read
your message is critical. This is something like the promotional content on social media.
Engagement is not guaranteed but, the content is seen by the people.

3- Engaged Users: Those users are the ones who communicate with the chatbot. They
receive and send messages. This is important since your chatbot will be able to provide the
conversation statistics based on this sub-sample. They are likely to shape your decision
regarding the effectiveness of the chatbot. It doesn’t make any sense if the chatbot is not able
to start the conversation with the users.

4- New Users: This metric captures the overall success of your chatbot promotion campaign.
New users will be necessary to keep an active user number. Customers’ preferences changes
over time and the amount of interaction with the chatbot shows an exponential decay. For that
reason, new users will keep your customer base strong.
5- User sentiment: This metric is captured by performing sentiment analysis so that you
can categorize messages as positive, neutral, or negative. You can gain insights into the user
experience and where/when the conversation went wrong.

Message Metrics

First four metrics capture the overall trend in your user base, but you will be needing greater
detail regarding how an individual interacts with your chatbot. One such metric group is the
message metrics.

6- Conversation Starter Messages: This is the number of messages where the bot starts the
interaction. This is critical for measuring the organic reach of your platform. It is possible to
elicit a response by sending messages to users, but as time moves forward, companies would
need a lower number for that metric. Since we will implement chatbot for customer relations

59
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

management and digital marketing, after the initial greeting, we need continuing users to send
messages to chatbot directly.

7- Bot Messages: Bot messages are the total number of messages sent by the chatbot in each
interaction. This measures the length of a conversation between a customer and the chatbot.
We normally want the number of messages to be high, but there is one critical condition, our
chatbot needs to respond correctly. In case of misunderstanding or failure to comprehend the
input by the user, the chatbot will say similar words repeatedly.

8- In Messages: This category shows the messages sent by the user. We need to see whether
the user engages with the chatbot or not. If this category is significantly low, we don’t need to
use a chatbot. Using regular social media such as a Facebook Page or a Twitter account may
make more sense, rather than using a Facebook Messenger chatbot or a voice-assisted
technology.

9- Miss Messages: Miss messages are the ones our chatbot can’t process. This metric may be
hard to calculate. Requires the times the chatbot miss interprets the input. This would be a
key metric if the firm starts to engage in countries where the language is used more
idiomatically.

10- Total Conversations: Number of conversations started and successfully completed on a


given day. This is the concept engaged users.

11- New Conversations: Number of new conversations started. This captures both the
inexperienced users and the conversations that are initiated by the returning users on a
different matter, problem, or order.

Commercial Metrics

12- ROI / payback period: Return on investment (ROI) is critical to know for any project.
Companies need to track, at least on a high level, their spending for the bot and the benefits it
generates. The benefits will depend on metrics like leads generated, fallback rate, cost per
fallback so that businesses can compare bot’s benefits with other channels.

13-Leads generated: For chatbots in sales, this is one of the most important metrics. They
should lead to a higher number or quality of leads captured. For chatbots in customer service,
this is a less relevant metric however some customer service bots can also identify users’ pain
points and cross/up-sell opportunities.

60
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

Bot Metrics

We will now introduce some other metrics that are critical for measuring the performance of
a chatbot.
14- Retention Rate: This is the percentage of users that return to using the chatbot on the
given time frame. This important since we need to keep the customer engaged to extract
valuable insight regarding the customers’ preferences by making them spend time on the
chatbot. Higher retention rate can be achieved by promotional campaigns such as chat-to-
receive-discount or a lottery like a word guessing games. The important is keeping that high
through an organic process. This mostly can be achieved by providing a high-quality chatbot
that meets the customers’ expectations and needs.
15- Goal Completion Rate (GCR): This captures the percentage of successful engagement
through chatbot. Users will probably try to reach different information or service. For an e-
commerce company’s bot relevant goals can be informing the user about a product’s details
or purchasing a product. This shows that the number of times our bot successfully processed
the input and provided the asked information. There are other ways to utilize this concept.
One way is to mine data through the questions asked by the users. This would show an
overall trend in consumer preferences; hence a greater emphasis can be placed on that issue
while training the chatbot.

7. TESTING

TESTING TECHNOLOGIES

Testing is the process of detection errors. Testing performs a quality role for
assurance and for ensuring the ability of software. The results of testing are used later on
during maintenance also.

 TESTING OBJECTIVES:

     The main objective of testing is to uncover a host error, systematically, the minimum
effort and time starting formally, we can say
1.      Test is the process of executing a program with the intent of finding an error.
2.      A successful test is one that uncovers and yet undiscovered error.
3.      A good test case is one that has a high probability of finding errors, if it exits.

WHITE BOX TESTING:

61
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

1.   This is unit testing method where the unit will be taken at a time and tested thoroughly at
a statement level to find the maximum level errors.
2.     We have tested step wise every piece of code, taking care of every statement in the code.
2.1 Is executed at least once.
2.2 The white box testing is also called glass box testing.

BLACK BOX TESTING:


     This testing method models a single unit and checks the unit at interface and
communication with other models rather getting into detail levels. Here the model will be
treated as a black box that take input and generates the output. Output of given input
combinations are forwarded to other models.

 UNIT TESTING:
            Unit testing focuses verification effort on the smallest unit of software that is the
model using the detailed design and the process specifications testing is done to uncover
errors within the boundary of the model all models must be successful in the unit test before
the start of the integration testing.
In our project unit testing involves checking each future specified in the component a
component performs only small part of the functionality on the system and relies on
cooperating with other part of the system.

INTEGRATION TESTING:
In this project integrating all the modules forms the main system when integrating all the
modules we have checked whether the integration effects working of any of the services by
giving different combinations of inputs with which the services run perfectly before
integration.

Table : 7.1 TEST CASES

1 Test Case Upload Dataset

2 Precondition Loading the dataset


Select the path of the dataset file.

62
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

3. Description Loaded dataset should be valid and data should not contain null
values and file should be available in the selected path.

4. Test Steps Load the Dataset.


Select the path of the dataset

5. Expected Output Based on the dataset retrieved from the path data should be loaded
into the system.

6. Actual Output Based on the Dataset retrieved from the path data should be loaded
to the system

7. Status Success

63
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

8.CONCLUSION

From my perspective, chatbots or smart assistants with artificial intelligence are

dramatically changing businesses. Chatbots are the new resolution especially for college

websites, and ecommerce websites etc.they will reduce the customer or user service and

having significant impact on time and saving money. Chatbots provides easy and quick

information to the user.And resolve many issues and queries at same time .With that being

said we also think that some of our findings could give some insights into how a very small

group of people think about using a chatbot to gain information in a school context. Some of

the characteristics of our chatbot was viewed as appropriate for the given context, like

“casualness” and links to where the information was gathered. If the IFI chatbot is to be

furthered developed, this could be something to draw upon Through the project we have

touched on some theory when making the chatbot, but this should also have a larger focus for

higher validity.

9.FUTURE ENHANCEMENTS

By using different kinds of machine learning techniques to predict the more accurate

results to ease of communication with humans. i will include speech recognition for future

enhancement. so it will help many industries to develop self-service Chatbots.will add more

languages for different parts of the world but expert say they will need to gently to be

nudged in the right direction for business to reap these benefits.

64
SRK INSTITUTION OF TECHNOLOGY
STUDENT INFORMATION CHATBOT SYSTEM

10.BIBILIOGRAPHY

References

[1]Sagar Pawar, Omkar Rane, Ojas Wankhade, Pradnya Mehta , “A Web Based College
Enquiry Chatbot with Results”, 2018, International Journal of Innovative Research in
Science, Engineering and Technology.

[2] Mr. Sathis Kumar .T, N. Vijay Kumar, R. R. Vinodh, T. Vivekananthan, U. Vinoth
Kumar, “Chatbot for College Related Queries”,2018, Journal for Research.

[3] Jayesh Gangrade , Surinder Singh Surme , Sumant Somu , Shubham Raskonda , Poonam
Gupta, Department of Computer G.H. Raisoni College of Engineering and Management, “A
Review on College Enquiry Chatbot” ,2019, International Journal of Engineering Science and
Computing.

[4] Akshay Kumar, Pankaj Kumar Meena, Debiprasanna Panda, Ms. Sangeetha, UG Student,
Dept. of Information Technology, “CHATBOT IN PYTHON”, 2019, IRJET.

[5]Molnár, G., Zoltán, S.: The role of chatbots in formal education. Presented at the 15
September 2018

[6]Kazi, Hameedullah & S. Chowdhry, B & Memon, Zeesha. (2012). MedChatBot: An


UMLS based Chatbot for Medical Students. International Journal of Computer Applications.

[7]"Problems with Chatbots Today - Attunix", Attunix, 2018. [Online]. Available:


https://attunix.com/problems-chatbots-today/. [Accessed Sep. 11, 2018].

[8] "Chatbot: What is Chatbot? Why are Chatbots Important? -", Expertsystem.com, 2018.
[Online]. Available: https://www.expertsystem.com/chatbot/. [Accessed Sep. 11, 2018].

TEXT BOOKS:

1. Python Machine Learning


2. Chatbots: An Introduction And Easy Guide To Making Your Own

65
SRK INSTITUTION OF TECHNOLOGY

You might also like