Я использую пакет Python Болтун .Используя это, я пытаюсь создать чат-бота.Вот следующий код, который я использую для обучения своего бота: -
chatbot_train.py: -
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
import os
def train_bot():
chatbot = ChatBot('Bot',
storage_adapter='chatterbot.storage.SQLStorageAdapter',
trainer='chatterbot.trainers.ListTrainer')
for file in os.listdir('G:/Django Chatbot/SRC/chat_bot/data/'):
convData = open(r'G:/Django Chatbot/SRC/chat_bot/data/' + file, encoding='UTF-8').readlines()
chatbot.set_trainer(ListTrainer)
chatbot.train(convData)
print("Training completed")
train_bot()
И в следующем коде я пытаюсь получить ответ на вопросы: -chatbot.py
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
def get_response(usrText):
bot = ChatBot('Bot',
storage_adapter='chatterbot.storage.SQLStorageAdapter',
logic_adapters=[
{
'import_path': 'chatterbot.logic.BestMatch'
},
{
'import_path': 'chatterbot.logic.LowConfidenceAdapter',
'threshold': 0.70,
'default_response': 'I am sorry, but I do not understand.'
}
],
trainer='chatterbot.trainers.ListTrainer')
bot.set_trainer(ListTrainer)
while True:
if usrText.strip()!= 'Bye':
result = bot.get_response(usrText)
reply = str(result)
return(reply)
if usrText.strip() == 'Bye':
return('Bye')
break
Теперь, если мой файл greetings.txt содержит следующие данные: -
do you drink
my brain does not require any beverages.
electricity
electricity is nutrition for robots.
are you experiencing an energy shortage?
my processor requires very little power.
why can not you eat
actually i eat only electricity.
Это пример разговора, который происходит: -
Me:- do you drink
Bot:- my brain does not require any beverages.
Me:- electricity
Bot:- electricity is nutrition for robots.
/*** If I post an answer it gives me the question next in the series ***\
Me:- electricity is nutrition for robots.
Bot:- are you experiencing an energy shortage?
/*** But this is what I expect if i give an answer it should not respond ***\
Me:- electricity is nutrition for robots.
Bot:- 'I am sorry, but I do not understand.'
Ссылаясь на документацию здесь Я обнаружил, что он устанавливает каждый элемент в списке в качестве возможного ответа своему предшественнику в списке.Как мне изменить это так, чтобы я просто получил пару вопросов и ответов и выставил все позиции в списке на следующие возможные ответы.