📜  如何使用 Chatterbot 模块在Python中制作聊天机器人?

📅  最后修改于: 2022-05-13 01:55:46.731000             🧑  作者: Mango

如何使用 Chatterbot 模块在Python中制作聊天机器人?

ChatBot基本上是一个计算机程序,它通过听觉或文本方法在用户和计算机之间进行对话。它可以作为现实世界的对话伙伴。

ChatterBot是Python中的一个库,它生成对用户输入的响应。它使用了许多机器学习算法来生成各种响应。它使用户可以更轻松地使用 chatterbot 库制作聊天机器人以获得更准确的响应。聊天机器人的设计允许机器人以多种语言进行交互,包括西班牙语、德语、英语和许多区域语言。机器学习算法还使机器人更容易根据用户输入自行改进。

如何使用Python分五步制作聊天机器人?

我们将采取循序渐进的方法,最终制作我们自己的聊天机器人。

让我们以最短的方式开始我们自己的聊天机器人之旅:-

步骤 1. 安装 Chatterbot 和 chatterbot_corpus 模块:

第一步也是最重要的一步是安装 chatterbot 库。您还需要安装 chatterbot_corpus 库。基本上,语料库意味着一堆单词。 Chatterbot 语料库包含一组包含在 chatterbot 模块中的数据。机器人使用语料库来训练自己。

在终端上运行以下pip命令进行安装:

pip install chatterbot
pip install chatterbot_corpus

步骤 2. 导入模块

我们必须导入两个类:来自 chatterbot 的 ChatBot 和来自 chatterbot.trainers 的 ListTrainer。

ListTrainer:允许使用字符串列表训练聊天机器人,其中列表表示对话。

Python3
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer


Python3
bot = ChatBot('Bot')


Python3
chatbot = ChatBot(
    'JARVIS',  
    logic_adapters=[
        'chatterbot.logic.BestMatch',
        'chatterbot.logic.TimeLogicAdapter'],
)


Python3
from chatterbot.trainers import ListTrainer
  
trainer = ListTrainer(bot)
  
trainer.train([
    'Hi',
    'Hello',
    'I need roadmap for Competitive Programming',
    'Just create an account on GFG and start',
    'I have a query.',
    'Please elaborate, your concern',
    'How long it will take to become expert in Coding ?',
    'It usually depends on the amount of practice.',
    'Ok Thanks',
    'No Problem! Have a Good Day!'
])


Python3
response = bot.get_response("Good morning!")
  
print(response)


Python3
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
from chatterbot.trainers import ListTrainer
  
bot = ChatBot('Bot')
  
trainer = ListTrainer(bot)
  
trainer.train([
    'Hi',
    'Hello',
    'I need roadmap for Competitive Programming',
    'Just create an account on GFG and start',
    'I have a query.',
    'Please elaborate, your concern',
    'How long it will take to become expert in Coding ?',
    'It usually depends on the amount of practice.',
    'Ok Thanks',
    'No Problem! Have a Good Day!'
])
  
while True:
    request=input('you :')
    if request == 'OK' or request == 'ok':
        print('Bot: bye')
        break
    else:
        response=bot.get_response(request)
        print('Bot:', response)


第 3 步。为我们的聊天机器人命名:

现在,我们将为我们选择的聊天机器人命名。只需创建一个 Chatbot 对象。在这里,聊天机器人被称为“机器人”,只是为了使其易于理解。

蟒蛇3

bot = ChatBot('Bot')

步骤 4. 逻辑适配器的使用:

逻辑适配器调节聊天机器人背后的逻辑,也就是说,它为提供给它的任何输入选择响应。此参数包含所有逻辑运算符的列表。当使用多个逻辑适配器时,聊天机器人将计算置信度,计算出的置信度最高的响应将作为输出返回。

这里我们使用了两个逻辑适配器:

  1. BestMatch: BestMatchAdapter 帮助它从已经提供的响应列表中选择最佳匹配。
  2. TimeLogicAdapter: TimeLogicAdapter 标识在其中询问有关当前时间的问题的语句。如果检测到匹配的问题,则返回包含当前时间的响应。

蟒蛇3

chatbot = ChatBot(
    'JARVIS',  
    logic_adapters=[
        'chatterbot.logic.BestMatch',
        'chatterbot.logic.TimeLogicAdapter'],
)  

步骤 5. 培训、沟通和测试:

对于训练过程,您需要传入一个语句列表,其中每个语句的顺序基于其在给定对话中的位置。我们必须训练机器人以提高其性能,为此我们需要通过传递句子列表来调用train()方法。培训确保机器人有足够的知识来开始对特定输入的特定响应。训练后,让我们检查一下它的沟通技巧。最后一步是做测试

您现在必须执行以下命令:

蟒蛇3

from chatterbot.trainers import ListTrainer
  
trainer = ListTrainer(bot)
  
trainer.train([
    'Hi',
    'Hello',
    'I need roadmap for Competitive Programming',
    'Just create an account on GFG and start',
    'I have a query.',
    'Please elaborate, your concern',
    'How long it will take to become expert in Coding ?',
    'It usually depends on the amount of practice.',
    'Ok Thanks',
    'No Problem! Have a Good Day!'
])

现在让我们测试聊天机器人:

蟒蛇3

response = bot.get_response("Good morning!")
  
print(response)

输出:

Hello

下面是完整的实现:

蟒蛇3

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
from chatterbot.trainers import ListTrainer
  
bot = ChatBot('Bot')
  
trainer = ListTrainer(bot)
  
trainer.train([
    'Hi',
    'Hello',
    'I need roadmap for Competitive Programming',
    'Just create an account on GFG and start',
    'I have a query.',
    'Please elaborate, your concern',
    'How long it will take to become expert in Coding ?',
    'It usually depends on the amount of practice.',
    'Ok Thanks',
    'No Problem! Have a Good Day!'
])
  
while True:
    request=input('you :')
    if request == 'OK' or request == 'ok':
        print('Bot: bye')
        break
    else:
        response=bot.get_response(request)
        print('Bot:', response)

输出: