ChatterBot+第三方中文语料库实现在线聊天机器人

设计并实现一个在线聊天机器人案例

1、ChatterBot

ChatterBot是Python自带的基于机器学习的语音对话引擎,可以基于已知的对话库来产生回应。ChatterBot独特的语言设计可以使它可以通过训练来用任何一种语言进行对话。该项目的开源代码链接:https://github.com/gunthercox/ChatterBot

2、应用案例描述

ChatterBot包含的工具有助于简化训练聊天机器人实例的过程。ChatterBot的训练过程涉及将示例对话框加载到聊天机器人的数据库中。这可以创建或构建代表已知语句和响应集的图数据结构。当一个聊天机器人训练师被提供一个数据集时,它会在聊天机器人的知识图中创建必要的条目,以便正确表示语句输入和响应。

2.1 通过列表数据进行训练
chatterbot.trainers.ListTrainer(storage, **kwargs)

允许使用对话字符串列表来训练ChatBot

对于训练过程,需要传递一个语句列表,其中每个语句的顺序基于其在给定对话中的位置。

例如,如果你使用如下语言进行训练,则当你输入Hi there!或者Greetings!的时候机器人会回复你Hello

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainerchatterbot = ChatBot("Training Example")
chatterbot.set_trainer(ListTrainer)chatterbot.train(["Hi there!","Hello",
])chatterbot.train(["Greetings!","Hello",
])

还可以提供更长的训练对话清单。这将在列表中建立每个项目作为响应。

chatterbot.train(["How are you?","I am good.","That is good to hear.","Thank you","You are welcome.",
])

以上介绍来源于:[ ChatterBot聊天机器人 ] ChatterBot训练数据以及使用三方语料库训练数据 - pytorch中文网

下面为原创内容

3、使用第三方中文语料库进行训练

大佬整理的语料库地址:https://github.com/codemayq/chinese_chatbot_corpus

在这里插入图片描述

chatterbot自带的语料库可以通过以下代码来实现,不需要额外下载:

from chatterbot.trainers import ChatterBotCorpusTrainerchatterbot = ChatBot("Training Example")
chatterbot.set_trainer(ChatterBotCorpusTrainer)chatterbot.train("chatterbot.corpus.english"
)

我选择了语料数量较少的xiaohuangji语料库:https://github.com/candlewill/Dialog_Corpus

首先下载未分词的语料库

在这里插入图片描述

下载解压后将后缀改为.txt

在这里插入图片描述

打开后是这样的:

在这里插入图片描述

接下来就是把txt文件按行读取并存入列表中,注意要跳过’E’那一行,并且把每句话开头的’M '去掉

具体代码为:

#导入语料库
file = open("./corpus/xiaohuangji50w_nofenci.txt",'r',encoding='utf-8')
corpus = []
print('开始加载语料!')
while 1:try:line = file.readline()if not line:breakif line == 'E\n':continuecorpus.append(line.split('M ')[1].strip('\n'))except:pass
file.close()
print('语料加载完毕')

处理后效果:

在这里插入图片描述

如果出现下面的报错,在将line.split('M ')[1].strip('\n')存入corpus列表前print(line.split('M ')[1].strip('\n'))就好了

在这里插入图片描述

4、应用案例实现

4.1 开始训练

我们取前10000条语料进行训练my_bot.train(corpus[:10000])

my_bot = ChatBot("xiaohuangji")
my_bot.set_trainer(ListTrainer)
print('开始训练!')
my_bot.train(corpus[:10000])
print('训练完毕!')
while True:print(my_bot.get_response(input("user:")))

在这里插入图片描述

4.2 训练结果

在这里插入图片描述

5、总结

由于第一次使用ChatterBot,也没有过多的时间去研究,还不知道怎么直接训练.tsv文件,于是采取直接读取txt,然后通过列表数据进行训练chatterbot.trainers.ListTrainer(storage, **kwargs)

经过实践该种方法在训练大量语料时很慢,训练10000条语料后的回答时间大概在一分钟,不过回答的质量是高于chattbot提供的560条中文语料训练的结果的。

6、参考文章

[ ChatterBot聊天机器人 ] ChatterBot训练数据以及使用三方语料库训练数据

[两种开源聊天机器人的性能测试(一)——ChatterBot]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/11899.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT不是聊天机器人,是任何人值得重视的竞争对手。

ChatGPT使用了一种聊天界面来和用户互动,用户的理解成本降低,通过输入文字,来得到各种反馈。有预见性的创造者们,已经挖掘ChatGPT所展示出来的各种能力应该如何更好地融入我们的日常生活中。比如,生成菜谱、音乐播放列…

手机号发验证码实现用户注册登录

一.技术及思路 二.案例编写 配置环境:使用docker新建redis,mysql,rabbitmq的容器 MySQL:启动docker服务 systemctl start docker 查看docker服务状态 systemctl status docker 查看目录进入mysql目录下,然后新创建一个容器&#x…

chatgpt了解(一)

狂飙的ChatGPT,为什么是OpenAI最先做出来? ChatGPT 的训练集来自哪里?

chatgpt赋能python:Python运行卡住?这是由什么原因引起的?

Python运行卡住?这是由什么原因引起的? 如果你是一个有10年Python编程经验的工程师,那么你经常会遇到Python运行卡住的情况。在这篇文章中,我将告诉大家Python程序在运行过程中可能会遇到的问题,以及如何解决这些问题…

OpenAI掌门人Sam Altman:AI的下一个发展阶段

来源|Greylock OneFlow社区编译 翻译|胡燕君、贾川 预告了一整年的GPT-4迟迟没来,人们猜想OpenAI是不是要跳票了,更何况他们之前的得意之作DALL-E也被开源Stable Diffusion打了个措手不及,再不来点深水炸弹业界地位危矣…

中国最容易和最难被ChatGPT所代替的 TOP25 职业

作者:chenqin https://zhuanlan.zhihu.com/p/620334140 OpenAI 研究人员曾发文称「约 80% 美国人的工作将被 AI 影响」。 文章的结论是,至少80%的美国劳动力会受到影响,他们的工作的10%会被GPT所替代。其中甚至有19%的美国劳动力的50%工作会被…

美国最新调查显示 50% 企业已在用 ChatGPT,其中 48% 已让其代替员工,你怎么看?

美国企业开始使用ChatGPT,我认为这不是什么新闻。 如果美国的企业现在还不使用ChatGPT,那才是个大新闻。 据新闻源显示,已经使用chatGPT的企业中,48%已经让其代替员工工作。 ChatGPT的具体职责包括:客服、代码编写、招…

Python 打造微信群聊天机器人(带操作界面)

前言 这几天我的一个小伙伴问我能不能给 Ta 做一个配置灵活的微信群聊天机器人,之前了解过 itchat 库的使用,我就爽快的答应了,花了一个晚上,终于做出了雏形。 电脑上运行程序如下: 手机上的信息如下: 其实基于 itchat 的微信机…

企业微信群机器人应用

现在很多企业都在使用企业微信进行工作交流,自从企业微信推出群机器人之后,使用企业微信的小伙伴一般都会用机器人来推送定时消息或者提醒等,这样能够为企业工作群的管理提升效率,能很好的帮助企业运营管理工作群,同样…

微信群机器人(仿真企业微信群机器人)

使用过企业微信的朋友应该应该用过企业微信群机器人,它是企业微信的原生功能,你在企业微信群中新建一个机器人,随后就可以获得这个群机器人的web挂钩,调用这个web挂钩并加上消息参数就可以让这个机器人在群内发送消息,…

为何ChatGPT一出现让巨头们都坐不住?

近几个月来,ChatGPT都是当仁不让的舆论话题。 上一次AI在全球范围内引起轰动,还是谷歌的AI机器人AlphaGO下棋战胜围棋世界冠军的时候。 ChatGPT的出现,让国内外几乎所有的科技巨头都坐立不安。 2月1日,谷歌母公司Alphabet首席执…

科技云报道:为何ChatGPT一出现让巨头们都坐不住?

科技云报道原创。 近几个月来,ChatGPT都是当仁不让的舆论话题。 上一次AI在全球范围内引起轰动,还是谷歌的AI机器人AlphaGO下棋战胜围棋世界冠军的时候。 ChatGPT的出现,让国内外几乎所有的科技巨头都坐立不安。 2月1日,谷歌…

产品体验文档模板——ChatGPT案例

今天和大家免费分享产品体验文档模板——ChatGPT案例,包括基本信息、产品信息、市场分析、用户分析、用户分析、产品分析、产品总结多个模块内容 【文档下载】 【文档预览】

【CV】计算机视觉领域的 GAN 模型综述论文笔记

论文名称:Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy 论文下载:https://dl.acm.org/doi/abs/10.1145/3439723 论文年份:ACM Computing Surveys 2021 论文被引:173(2022/04/12&#x…

计算机视觉领域论文投稿

文章目录 工程技术大类(中科院一区)计算机科学大类(中科院一区)综合性期刊大类(中科院一区) 中科院分区期刊查询方式:《2020年中国科学院文献情报中心期刊分区表升级版(试行&#xf…

论文投稿指南——计算机视觉 (Computer Vision) 顶会归纳

深度学习Tricks,第一时间送达 目录 (一)计算机视觉顶会 (1)ICCV:International Conference on Computer Vision (2)CVPR:International Confere…

学习新技术,争做新青年:请ChatGPT帮我写一篇计算机视觉分类算法论文

文章目录 学习新技术,争做新青年:你不会还不用 ChatGPT 吧?学习新技术请告诉我最好的图像分类模型是哪个请推荐最新的分类模型是哪个请详细介绍一下 Swin Transformer请给出Swin Transformer的论文链接请帮我分析一下Swin Transformer 的创新…

巴比特 | 元宇宙每日必读:从自研硬件领域撤退后,腾讯被传或将在国内独家代理Meta旗下VR产品Quest...

‌ 摘要:近日,据路透社报道,三位知情人士称,腾讯控股正在与脸书母公司Meta Platforms Inc(Nasdaq:META)就在中国销售Meta Quest系列虚拟现实头显进行谈判。路透社援引消息人士称,腾讯…

阿里减持商汤股票;金山办公将推出WPS AI;华为发布问界M5智驾版;东软集团2022年归母净利同比降129.23%丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 百家云推出人工智能生成内容(AIGC)解决方案 4月17日,音视频SaaS上市公司百家云宣布,公司将正式推出应用于多个垂直行业及场景的人工智能生成内容及视频解决方案。…

chatgpt赋能python:可以用手机写Python吗?

可以用手机写Python吗? 随着移动设备的普及,很多人已经开始抛弃传统的电脑或笔记本电脑而选择使用手机进行各种操作。因此,许多人开始疑惑:是否可以用手机编写Python代码?答案是肯定的。 Python编程平台 使用手机编…