آموزش زبان پایتون : ربات گفتگو و چت

به آموزش زبان پایتون (ربات گفتگو و چت) خوش اومدید.

در این بخش می خوایم یک ربات گفتگو (شبیه Google Speech ) با استفاده از پایتون بسازیم. به این صورت که یه متنی رو بهش میدیم و وقتی یه سوال ازش می پرسیم به اون متن نگاه میکنه و جواب میده. برای راحتی کار کدمونو در محیط Google Clab می نویسیم:

مرحله اول:نصب افزونه ها

pip install nltk

pip install newspaper3k

مرحله دوم: نصب کتابخانه ها

#libraries
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’)

مرحله سوم: دانلود پکیج punk

#download punk package
nltk.download(‘punkt’, quiet=True

مرحله چهارم: دانلود و فراخوانی مقاله یا متن ربات

#get the artcile
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)

مرحله ششم: توکن سازی و ساخت لیست جملات

#Tokenization
text = corpus
sentence_list = nltk.sent_tokenize(text) # A list of sentence
#Print the list
print(sentence_list)

مرحله هفتم: تابع پاسخ رندوم به حرفهای یک کلمه ای کاربر به ربات

# A function to return a random greeting response to a users greeting
def greeting_response(text):
text = text.lower()

#Bots greeting response
bot_greetings = [‘howdy’, ‘hi’, ‘hey’, ‘hello’, ‘hola’]
#Users greeting
user_greetings = [‘hi’, ‘hey’, ‘hello’, ‘hola’, ‘greetings’, ‘wassup’]

for word in text.split():
if word in user_greetings:
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_inde:x

مرحله نهم: تابع پاسخ ربات

#Create the bots 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_list = similarity_scores.flatten()
index = index_sort(similarity_scores_list)
index = index[1:]
response_flag = 0

j = 0
for i in range(len(index)):
if similarity_scores_list[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 don’t understand.”

sentence_list.remove(user_input)

return bot_response

مرحله دهم: شروع چت و گفتگو

#Start the chat
print(‘Doc Bot: I am Doctor Bot or Doc Bot for short. I will answer your queries about Chronic Kidney Disease. If you want exit, type bye.’)

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))

پایان آموزش زبان پایتون (ربات گفتگو و چت)

در صورت داشتن هرگونه سوال در بخش آموزش زبان پایتون (ربات گفتگو و چت) با ما در تماس باشید.

همچنین برای هرگونه سوال در زمینه آموزش ها فقط کافیه روی لینک واتساپ یا تلگرام (در زیر همین پست) کلیک کنید. یا با شماره تماس بالای صفحه سایت تماس بگیرید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...