آموزش زبان پایتون (ربات پزشک!)

به آموزش زبان پایتون (ربات پزشک!) خوش اومدید.

در این بخش می خوایم یک ربات پزشک طراحی کنیم که برای تشخیص و درمان بیماری های مزمن کلیوی مناسبه!

در زیر کد کامل این پروژه رو میتونید ببینید:

#Smart Doctor Bot
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')
#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_index
#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))

توضیحات کد:

خط ۱: توضیحات مربوط به کد (این خط توسط کامپایلر اجرا نمی شود به خاطر وجود علامت # در ابتدای آن)

خط ۲: نصب افزونه nltk : جهت آشنایی با این افزونه به بخش تعاریف و اصطلاحات مراجعه کنید.

خط ۳: نصب افزونه newspaper3k : جهت آشنایی با این افزونه به بخش تعاریف و اصطلاحات مراجعه کنید.

خط ۴: شروع بخش اضافه کردن کتابخانه ها

خط ۵: اضافه کردن کتابخانه Article از کتابخانه مرجع newspaper برای خواندن مقالات از سایتهای دیگه

خط۶: اضافه کردن کتابخانه random برای ساخت اعداد تصادفی

خط۷: اضافه کردن کتابخانه string برای ساخت رشته ها

خط۸: اضافه کردن کتابخانه nltk برای پردازش کلمات

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

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

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