Developing Chatbots project

If you want your business to prosper, you'll have to stay on top of the latest trends. The creation of a chatbot is a lengthy procedure. However, if well planned, it can be a piece of cake. The emergence of chatbots is one of the most significant recent developments in the area of customer care. On that topic, chatbots are one of the most well-known marketing tools in use today, aiding in the development of effective communication between businesses and their customers. So, read on to learn about data science projects for final year students as well as data science projects for beginners.

When it comes to chatbot creation, the most important thing to remember is to break the process down into simple steps and follow them one by one. Chatbots are quite handy if you want to improve your customer's experience by answering their questions, reducing human workload, performing remote troubleshooting, and so on. Rather than adopting a bot development framework or another platform, why not build a basic, intelligent chatbot from the ground up using deep learning? Though bots have a wide range of applications, one of the most well-known is live chat platforms, where users ask queries and a chatbot responds appropriately. There are different types of recommendation systems of the data science projects ideas.

So, in order to make your life easier, we've provided step-by-step chatbot programming guidelines. The days of waiting (not so patiently) on hold for answers to your most pressing questions are quickly fading away. In this lesson, you'll learn how to use Keras to create an end-to-end domain-specific intelligent chatbot solution.

Overview:

A chatbot is a piece of software that can communicate and conduct tasks in the same way that a human can. Because we're going to build a deep learning model, we'll need data to train it. Chatbots are marketing and automation solutions that are supposed to assist people by interacting with them and performing human-like interactions. Chatbots are widely utilised in customer service, social media marketing, and client instant messaging.

However, because this is a rudimentary chatbot, we will neither collect nor download any significant datasets. To communicate, these bots may employ Natural Language Processing (NLP) or audio analysis techniques, making them sound more natural. Based on how they're developed, there are two primary sorts of chatbot models: retrieval-based and generation-based models. These intentions may differ from one

chatbot solution to the next depending on the domain in which you are implementing a chatbot solution. AI-Chatbots are widely recommended by entrepreneurs and organizations. Let's take this data science project step by step.

Import and load the data file

import nltk

from nltk.stem import WordNetLemmatizer

lemmatizer = WordNetLemmatizer()

import json

import pickle

import numpy as np

from keras.models import Sequential

from keras.layers import Dense, Activation, Dropout

from keras.optimizers import SGD

import random

words=[]

classes = []

documents = []

ignore_words = ['?', '!']

data_file = open('intents.json').read()

intents = json.loads(data_file)

Preprocess data 

for intent in intents['intents']:

    for pattern in intent['patterns']:

     #tokenize each word

     w = nltk.word_tokenize(pattern)

     words.extend(w)

     #add documents in the corpus

     documents.append((w, intent['tag']))

           if intent['tag'] not in classes:

         classes.append(intent['tag'])

Create training and testing data 

training = []

 

output_empty = [0] * len(classes)

 

for doc in documents:

  

    bag = []

Build the model

model = Sequential()

model.add(Dense(128, input_shape=(len(train_x[0]),), activation='relu'))

model.add(Dropout(0.5))

model.add(Dense(64, activation='relu'))

model.add(Dropout(0.5))

model.add(Dense(len(train_y[0]), activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)

model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])

hist = model.fit(np.array(train_x), np.array(train_y), epochs=200, batch_size=5, verbose=1)

model.save('chatbot_model.h5', hist)

print("model created"

 output_row = list(output_empty)

    output_row[classes.index(doc[1])] = 1

    training.append([bag, output_row])

random.shuffle(training)

training = np.array(training)

train_x = list(training[:,0])

train_y = list(training[:,1])

print("Training data created")

Predict the response (Graphical User Interface)

import nltk

from nltk.stem import WordNetLemmatizer

lemmatizer = WordNetLemmatizer()

import pickle

import numpy as np

from keras.models import load_model

model = load_model('chatbot_model.h5')

import json

import random

intents = json.loads(open('intents.json').read())

words = pickle.load(open('words.pkl','rb'))

def clean_up_sentence(sentence):

sentence_words = nltk.word_tokenize(sentence)

 return sentence_words

def bow(sentence, words, show_details=True):

 sentence_words = clean_up_sentence(sentence)

bag = [0]*len(words)

    for s in sentence_words:

     for i,w in enumerate(words):

         if w == s:

             bag[i] = 1

             if show_details:

                 print ("found in bag: %s" % w)

    return(np.array(bag))

def predict_class(sentence, model):

 p = bow(sentence, words,show_details=False)

    res = model.predict(np.array([p]))[0]

    ERROR_THRESHOLD = 0.25

     results.sort(key=lambda x: x[1], reverse=True)

    return_list = []

    for r in results:

        return_list.append({"intent": classes[r[0]], "probability": str(r[1])})

    return return_list

.def getResponse(ints, intents_json):

    tag = ints[0]['intent']

    list_of_intents = intents_json['intents']

    for i in list_of_intents:

     if(i['tag']== tag):

         result = random.choice(i['responses'])

         break

    return result

def chatbot_response(text):

    ints = predict_class(text, model)

    res = getResponse(ints, intents)

    return res

#Creating GUI with tkinter

import tkinter

from tkinter import *

def send():

    msg = EntryBox.get("1.0",'end-1c').strip()

    EntryBox.delete("0.0",END)

    if msg != '':

     ChatLog.config(state=NORMAL)

     ChatLog.insert(END, "You: " + msg + '\n\n')

     ChatLog.config(foreground="#442265", font=("Verdana", 12 ))

     res = chatbot_response(msg)

     ChatLog.insert(END, "Bot: " + res + '\n\n')

     ChatLog.config(state=DISABLED)

     ChatLog.yview(END)

base = Tk()

base.title("Hello")

base.geometry("400x500")

base.resizable(width=FALSE, height=FALSE)

#Create Chat window

ChatLog.config(state=DISABLED)

#Bind scrollbar to Chat window

scrollbar = Scrollbar(base, command=ChatLog.yview, cursor="heart")

ChatLog['yscrollcommand'] = scrollbar.set

#Create Button to send message

SendButton = Button(base, font=("Verdana",12,'bold'), text="Send", width="12", height=5,

                 bd=0, bg="#32de97", activebackground="#3c9d9b",fg='#ffffff',

                 command= send )

#Create the box to enter message

EntryBox = Text(base, bd=0, bg="white",width="29", height="5", font="Arial")

#EntryBox.bind("", send)

#Place all components on the screen

scrollbar.place(x=376,y=6, height=386)

ChatLog.place(x=6,y=6, height=386, width=370)

EntryBox.place(x=128, y=401, height=90, width=265)

SendButton.place(x=6, y=401, height=90)

base.mainloop()

If you want to learn more about how to do data science projects step by step, visit our website Learnbay: data science course in Chennai.

 

Keywords

Search Volume

Competition

data science project

17,480

25 (Low)

data science projects ideas

7,690

30 (Low)

data science project for final year

1,180

30(Low)

Data science project for beginners

7,500

26(Low)

data science projects step by step

2,240

31 (Low)

 

 


Comments

Popular posts from this blog

What is Data Quality and What Are Its Dimensions and Characteristics, How Can It Be Improved?

Complete Guide on Data Science Bootcamp

What is Data Blending in Tableau?