0% found this document useful (0 votes)
10 views4 pages

NLP Chatbot

Uploaded by

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

NLP Chatbot

Uploaded by

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

Lab Assignment 6

Code:
pip install nltk

pip install newspaper3k

#import library

from newspaper import Article

import random

import string

import nltk

from sklearn.feature_extraction.text import CountVectorizer

from sklearn.metrics.pairwise import cosine_similarity

import numpy as np

import warnings

warnings.filterwarnings('ignore')

#download punkt package

nltk.download('punkt',quiet=True)

#input Article

article = Article('https://www.mayoclinic.org/diseases-conditions/chronic-kidney-disease/symptoms-
causes/syc-20354521')

article.download()

article.parse()

article.nlp()

corpus = article.text

#print article

print(corpus)

#giving token
text = corpus

sentence_list = nltk.sent_tokenize(text) #a list of sentences

#print the list of sentences

print(sentence_list)

#create a function to return random response to users greeting

def greeting_response(text):

text = text.lower()

#Bots greeting response

bot_greetings = ["hii","hey",'hello','hola']

#user greetings

user_greeting = ['hi','hey','hello','hola','greetings']

for word in text.split():

if word in user_greeting:

return random.choice(bot_greetings)

def index_sort(list_var):

length = len(list_var)

list_index = list(range(0, length))

x = list_var

for i in range(length):

for j in range(length):

if x[list_index[i]]> x[list_index[j]]:

#swap

temp = list_index[i]

list_index[i]=list_index[j]

list_index[j]= temp

return list_index
#create bot response

def bot_response(user_input):

user_input = user_input.lower()

sentence_list.append(user_input)

bot_response = ''

cm = CountVectorizer().fit_transform(sentence_list)

similarity_scores = cosine_similarity(cm[-1],cm)

similarity_scores_lists = similarity_scores.flatten()

index = index_sort(similarity_scores_lists)

index = index[1:]

response_flag = 0

j=0

for i in range (len(index)):

if similarity_scores_lists[index[i]] > 0.0:

bot_response = bot_response +' '+sentence_list[index[i]]

response_flag = 1

j=j+1

if j > 2:

break

if response_flag == 0 :

bot_response = bot_response+' '+"I apologize , I dont understand ."

sentence_list.remove(user_input)

return bot_response

#start chatbot

print("Doc Bot : I am doc bot for your services for short time i will answer ypur questions")
exit_list = ['exit','see you later','bye','quit','break']

while(True):

user_input = input()

if user_input.lower() in exit_list:

print("Doc Bot : Chat with you later !")

break

else:

if greeting_response(user_input) != None:

print('Doc Bot: '+greeting_response(user_input))

else:

print('Doc Bot'+bot_response(user_input))

You might also like