广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用ChatterBot来构建聊天机器人
  • 15
分享到

使用ChatterBot来构建聊天机器人

机器人 2022-06-09 00:06:05 15人浏览 佚名

Python 官方文档:入门教程 => 点击学习

摘要

当你在搜索引擎中输入“如何建立聊天机器人?” 时,你可能会发现 ChatterBot 这款基于机器学习(Machine learning)、对话引擎(conversational dialog engine)来创建聊天的机器人(chat b

当你在搜索引擎中输入“如何建立聊天机器人?” 时,你可能会发现 ChatterBot 这款基于机器学习Machine learning)、对话引擎(conversational dialog engine)来创建聊天的机器人(chat bots)。

ChatterBot 的工作方式

processdiagram

Image source: ChatterBot

在本文中,我们将介绍如何仅在5分钟内使用ChatterBot构建聊天机器人。

准备

首先下载 ChatterBot

pip install ChatterBot

创建文件并命名为 chat.py

#import ChatBot
from chatterbot import ChatBot

传经一个新的聊天机器人并为其赋予一个名字(我使用的名字是 “Candice”):

bot = ChatBot('Candice')

您的机器人已创建,但此时您的机器人尚不了解,因为您必须对它进行基于一定数据的训练。

PS:默认情况下,ChatterBot 库将创建一个 Sqlite 数据库来建立一些聊天语句。

对机器人进行数据训练

#import ListTrainer
from chatterbot.trainers import ListTrainer

bot.set_trainer(ListTrainer)
# Training 
bot.train(['What is your name?', 'My name is Candice'])
bot.train(['Who are you?', 'I am a bot, created by you' ])

您的机器人现已接受 2 条陈述的训练。当您问您的机器人 What is your name? 时,它会以“我的名字叫 My name is Candice 答复。

您还可以对多个语句进行训练,例如:

bot.train(['Do you know me?', 'Yes, you created me', 'No', 'Sahil?', 'No idea'])

如您所见,很难在每个语句上训练机器人。因此,我们将使用 ChatterBotCorpusTrainer 在大型数据集上训练我们的机器人:

from chatterbot.trainers import ChatterBotCorpusTrainer
# Create a new trainer for the chatbot
trainer = ChatterBotCorpusTrainer(bot)

# Train the chatbot based on the english corpus
trainer.train("chatterbot.corpus.english")

# Get a response to an input statement
chatbot.get_response("Hello, how are you today?")

或者您可以下载不同语言的数据集。并通过您选择的语言对其进行训练。

假设我们加载完成英语模式的训练集后,我们可以像这样训练我们的机器人:

for files in os.listdir('./english/'):
    data=open('./english/'+files,'r').readlines()
    bot.train(data)

注意:确保数据集和程序文件在同一文件夹中,否则请编辑路径。

聊天特征

# To exit say "Bye"
while True:
        # Input from user
    message=input('\t\t\tYou:')
        #if message is not "Bye"
    if message.strip()!='Bye':
        reply=bot.get_response(message)
        print('Candice:',reply)
        # if message is "Bye"
    if message.strip()=='Bye':
        print('Candice: Bye')
        break

让我们尝试在终端跑一下代码:

python chat.py

他会先对机器人进行训练,然后您可以和其进行聊天。

源码

#import libraries
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
import os

#Create a chatbot
bot=ChatBot('Candice')
bot.set_trainer(ListTrainer)

#training on english dataset
for files in os.listdir('./english/'):
    data=open('./english/'+files,'r').readlines()
    bot.train(data)

#chat feature
while True:
    message=input('\t\t\tYou:')
    if message.strip()!='Bye':
        reply=bot.get_response(message)
        print('Candice:',reply)
    if message.strip()=='Bye':
        print('Candice: Bye')
        break

--结束END--

本文标题: 使用ChatterBot来构建聊天机器人

本文链接: https://www.lsjlt.com/news/30827.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作