使用 chatterbot 来构建聊天机器人 | python优质外文翻译 | python 技术论坛-金年会app官方网

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

chatterbot 的工作方式

image source: 

在本文中,我们将介绍如何仅在5分钟内使用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
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 cc 协议,如果我们的工作有侵犯到您的权益,请及时联系金年会app官方网。

原文地址:

译文地址:https://learnku.com/python/t/38806

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
讨论数量: 2

好看不火系列啊

4年前

温馨提示:要做微信机器人还需要配合一下itchat

4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
网站地图