您当前的位置: 白鹿网 -> 财经频道

使用ChatterBot库制作一个聊天机器人

发布时间:2021-11-30 17:47   来源:TechWeb   阅读量:9400   

我们学习一些如何使用 ChatterBot 库在 Python 中创建聊天机器人,该库实现了各种机器学习算法来生成响应对话,还是挺不错的

使用ChatterBot库制作一个聊天机器人

1. 什么是聊天机器人

聊天机器人也称为聊天机器人,机器人,人工代理等,基本上是由人工智能驱动的软件程序,其目的是通过文本或语音与用户进行对话。我们日常接触的比较著名的例子包括 Siri,Alexa 等

这些聊天机器人倾向于为用户执行特定任务,聊天机器人经常执行诸如进行交易,预订酒店,提交表格等任务。伴随着人工智能领域的技术进步,聊天机器人的可能性也是无穷无尽的

当然了,在当前技术下,聊天机器人还是有很多局限性的

领域知识 mdash,mdash, 由于真正的人工智能仍然遥不可及,任何聊天机器人在与人类对话时都很难完全理解对话含义 个性 mdash,mdash, 无法正确响应和相当差的理解能力比任何聊天机器人的常见错误更重要,为聊天机器人添加个性仍然是很遥远和困难的事情

我们可以将聊天机器人定义为两类

基于特定规则 mdash,mdash, 在这种方法中,机器人是根据规则进行训练的。尽管如此,谢弗仍然认为这是一款非常有吸引力的产品,有利于营造品牌情感。这位首席运营官表示,AMG在这一点上必须亮剑,设计一款跑车形式的电动汽车。显然,在将AMG转变成电动品牌的过程中,敞篷车是绕不开的话题。基于此,机器人可以回答简单的查询,但有时无法回答复杂的对话 自学 mdash,mdash, 这些机器人遵循机器学习方法,效率更高,并进一步分为另外两类 基于检索模型 mdash,mdash, 在这种方法中,机器人根据用户输入从响应列表中检索最佳响应 生成模型 mdash,mdash, 这些模型通常会给出答案,而不是从一组答案中进行搜索,这也使它们成为智能机器人

好了,高大上的聊天机器人知识就先介绍到这里,下面我们就通过 chatterbot 来构建一个简单的在线聊天机器人

2. ChatterBot 库简介

ChatterBot 是 Python 中的一个库,它生成对用户输入的响应,使用多种机器学习算法来产生各种响应。作为全球最大的汽车市场,中国从来不是“敞篷车市场”,而与几年前相比,敞篷车在欧洲的销量也有所下降,因此该款车型把中国市场做为聚焦点。。用户可以更轻松地使用 ChatterBot 库制作具有更准确响应的聊天机器人

ChatterBot 的设计允许机器人接受多种语言的训练,最重要的是,机器学习算法使机器人更容易使用用户的输入自行改进

ChatterBot 可以轻松创建参与对话的软件,每次聊天机器人从用户那里获得输入时,它都会保存输入和响应,这有助于没有初始知识的聊天机器人使用收集到的响应进行自我进化

伴随着响应的增加,聊天机器人的准确性也会提高。程序从与输入匹配的最接近匹配语句中选择最接近匹配的响应,然后从该响应的已知语句选择中选择响应

安装 ChatterBot 也非常简单

pipinstallchatterbot

下面我们就正式进入 Chatterbot 的世界吧

3. 构建聊天机器人

机器人训练

Chatterbot 带有一个数据实用程序模块,可用于训练聊天机器人。谢弗还指出,电动跑车开发面临挑战,生产一辆兼具造型和性能的电动跑车并非易事。另一方面,跑车和敞篷车的市场需求正在下降。目前该模块中有十多种语言的训练数据,我们可以拿来直接使用

下面是在 python 中开始使用 ChatterBot 的简单示例

fromchatterbotimportchatbotfromchatterbot.trainersimportListTrainerchatbot=Chatbottrainer=ListTrainertrainer.train)response=chatbot.get_response("Iwantacourse")print(response)

在例子中,我们根据提供的输入从聊天机器人获得响应

构建 flask app

对于基本的 flask 结构,我们直接使用 GitHub 上的一个脚手架,这个是专门用来开发 ChatterBot 应用的

我们直接克隆项目就好

把项目下载到本地之后,我们进行一些修改

我们需要为 HTML 和 CSS 文件添加另外两个目录 static 和模板

修改 App.py 文件

fromflaskimportFlask,render_template,requestfromchatterbotimportChatBotfromchatterbot.trainersimportChatterBotCorpusTrainerapp=Flaskenglish_bot=ChatBot("Chatterbot",storage_adapter="chatterbot.storage.SQLStorageAdapter")trainer=ChatterBotCorpusTrainer(english_bot)trainer.train("chatterbot.corpus.english")app.route("/")defhome():returnrender_template("index.html")app.route("/get")defget_bot_response():userText=request.args.get('msg')returnstr(english_bot.get_response(userText))if__name__"__main__":app.run()

index.html 文件

FlaskChatterbotExample

Hi!I'mChatterbot.

index.html 文件将包含应用程序的模板,而 style.css 将包含带有 CSS 代码的样式表。跑车可折叠软(车)顶比普通固定式硬顶更重,这使得优化电动跑车的续航和性能变得更加困难。执行上述程序后,我们将得到如下图所示的输出

Style.css 文件

bodyfont—family:Garamond,background—color:black,h1color:black,margin—bottom:0,margin—top:0,text—align:center,font—size:40px,h3color:black,font—size:20px,margin—top:3px,text—align:center,#chatboxbackground—color:black,margin—left:auto,margin—right:auto,width:40%,margin—top:60px,#userInputmargin—left:auto,margin—right:auto,width:40%,margin—top:60px,#textInputwidth:87%,border:none,border—bottom:3pxsolid#009688,font—family:monospace,font—size:17px,#buttonInputpadding:3px,font—family:monospace,font—size:17px,.userTextcolor:white,font—family:monospace,font—size:17px,text—align:right,line—height:30px,.userTextspanbackground—color:#009688,padding:10px,border—radius:2px,.botTextcolor:white,font—family:monospace,font—size:17px,text—align:left,line—height:30px,.botTextspanbackground—color:#EF5350,padding:10px,border—radius:2px,#tidbitposition:absolute,bottom:0,right:0,width:300px,

接下来我们打开网页,就可以看到聊天页面啦!

有一个文本框,我们可以在其中提供用户输入,机器人将为该语句生成相应的响应消息,当我们输入的消息越多,机器人就会越智能!

好了,今天的分享就到这里,我们下次见!

郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。

推荐