定制个机器人帮你和Ta聊天
自动聊天示例
这是基于200万聊天记录训练出来的,你可以用自己和女朋友的记录训练了试试效果
至于微信机器人怎么用,你可以 GitHub
搜搜看哈
聊天1:
user: 在吗?
bot: 在
user: 在干嘛呢?
bot: 看电视
user: 看啥电视呀
bot: 活色生香
user: 很好看吗?
bot: 特搞笑
user: 你在哪里呀?
bot: 家里
user: 家里就你一个人嘛?
bot: 我喜欢一个人玩
user: 那我过来找你?
bot: 不可以,乖乖上班去
聊天2:
Q: 在吗?
A: 在
Q: 干嘛呢?
A: 没事
Q: 陪我去逛街嘛?
A: 嗯
Q: 你在打游戏?
A: 没有
Q: 那去不去?
A: 去
项目说明
chatbot
是一个通过已知对话数据集快速生成回答的 Go 问答引擎。
为啥会有 chatbot
项目呢?
好多年前,当我们需要一个聊天机器人的时候,我是先用了 ChatterBot
,但是使用下来,我们的1.2亿对话语料训练后的模型回答一个问题需要21秒左右,实在没法接受。仔细看了 ChatterBot
源码之后,我用 Go 重新实现了一个,并用 go-zero 的 MapReduce 框架做了并行优化,结果我们一个回答平均耗时大概18毫秒。
国庆假期,我有点空闲时间,所以就把这个项目整理了开源出来,一是给大家一个实际的 go-zero 的 MapReduce 示例;二是也提供大家一个闲聊机器人的项目玩玩。
BTW:后续我可能会开源智能客服机器人的项目,可以关注我的github:
代码目录和命令行使用说明
bot
问答引擎,可以自定义自己的匹配算法
cli
train
训练给定的问答数据并生成
.gob
文件-d
读取指定目录下所有json
和yaml
语料文件-i
读取指定的json
或yaml
语料文件,多个文件用逗号分割-o
指定输出的.gob
文件-m
定时打印内存使用情况
ask
一个示例的问答命令行工具
-v
verbose-c
训练好的.gob
文件-t
数据几个可能的答案
数据格式
如果你有语料数据,可以自行整理用来训练。
数据格式可以通过 yaml
或者 json
文件提供,参考 https://github.com/kevwan/chatterbot-corpus
里的格式。大致如下:
categories:
- AI
conversations:
- - 什么是ai
- 人工智能是工程和科学的分支,致力于构建具有思维的机器。
- - 你是什么语言编写的
- Python
- - 你听起来像机器
- 是的,我受到造物者的启发
- - 你是一个人工智能
- 那是我的名字。
致谢
go-zero - https://github.com/zeromicro/go-zero
go-zero
的 core/mr
包的 MapReduce
实现使 chatbot
的回答效率得到了巨大的提升!
ChatterBot - https://github.com/gunthercox/ChatterBot
最早我是使用 ChatterBot 的,但由于回答太慢,所有后来只能自己实现了,感谢 ChatterBot,非常棒的项目!
项目地址
https://github.com/kevwan/chatbot
欢迎使用并 star 支持!
定制个机器人帮你和Ta聊天的更多相关文章
- AI中台——智能聊天机器人平台的架构与应用(分享实录)
内容来源:宜信技术学院第3期技术沙龙-线上直播|AI中台——智能聊天机器人平台 主讲人:宜信科技中心AI中台团队负责人王东 导读:随着“中台”战略的提出,目前宜信中台建设在思想理念及架构设计上都已经取 ...
- 软工实践团队项目-"智能聊天机器人"简介
"智能聊天机器人"项目 目前已确定的团队人员:张扬.俊彦.韫月.地秀.泽波.李翔.文婧.俞明.加伟(排名不分先后) 队伍已满,没有再招人的打算(#^.^#) 我们的想法 你有用过智 ...
- 构建一个简单的 Google Dialogflow 聊天机器人【上】
概述 本教程将向您展示如何构建一个简单的Dialogflow聊天机器人,引导您完成Dialogflow的最重要功能.您将学习如何: 创建Dialogflow帐户和第一个Dialogflow聊天机器人, ...
- python微信聊天机器人改进版,定时或触发抓取天气预报、励志语录等,向好友推送
最近想着做一个微信机器人,主要想要实现能够每天定时推送天气预报或励志语录,励志语录要每天有自动更新,定时或当有好友回复时,能够随机推送不同的内容.于是开始了分析思路.博主是采用了多线程群发,因为微信对 ...
- Python 使用图灵机器人实现微信聊天功能
首先需要去图灵官网创建一个属于自己的机器人然后得到apikey. 一.自动与指定好友聊天 # -*- coding: utf-8 -*- """ Created at 2 ...
- 深度学习项目——基于循环神经网络(RNN)的智能聊天机器人系统
基于循环神经网络(RNN)的智能聊天机器人系统 本设计研究智能聊天机器人技术,基于循环神经网络构建了一套智能聊天机器人系统,系统将由以下几个部分构成:制作问答聊天数据集.RNN神经网络搭建.seq2s ...
- 用python玩微信(聊天机器人,好友信息统计)
1.用 Python 实现微信好友性别及位置信息统计 这里使用的python3+wxpy库+Anaconda(Spyder)开发.如果你想对wxpy有更深的了解请查看:wxpy: 用 Python 玩 ...
- 使用图灵机器人api搭建微信聊天机器人php实现
之前通过hook技术实现了微信pc端发送消息功能,如果在结合图灵机器人就能实现微信聊天机器人. 代码下载:http://blog.yshizi.cn/131.html 逻辑如下: 下面我简单介绍一下步 ...
- 手把手教你用Python代码实现微信聊天机器人 -- Python wxpy
关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 来学习了,微信聊天机器人. 环境要求: Windows / Li ...
随机推荐
- 1.3RDD的设计与运行原理
此文为个人学习笔记如需系统学习请访问http://dblab.xmu.edu.cn/blog/1709-2/ 提供一种通用的数据抽象 RDD典型的执行过程如下: RDD读入外部数据源(或者内存中的集合 ...
- 工作多年后再来聊聊IO
IO模型 IO是Input/Output的缩写.Linix网络编程中有五种IO模型: blocking IO(阻塞IO) nonblocking IO(非阻塞IO) IO multiplexing(多 ...
- Ubuntu 16.04LTS安装flashplayer
转载自http://www.linuxdiyf.com/linux/20084.html 在安装Ubuntu 16.04LTS后,播放有视频的网页时,总提示你要安装缺失的插件,在 ubuntu 系统下 ...
- MySQL-后知知觉的索引
什么是索引? 索引在MySQL中也叫做"键",是存储引擎用于快速找到记录的一种数据结构.索引对于良好的性能 非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重 ...
- vim的配置文件
网上一个比较常见的配置文件设置如下,这个配置还是很棒的,尤其创建脚本或者c文件时 " All system-wide defaults are set in $VIMRUNTIME/debi ...
- vs code使用git---http方式
1.从git上复制http路径 2.在vs code的工作区新建文件夹 3.选择添加远程储存库 4.输入复制的git路径然后命名远程储存库名称 5.选择从所有远程储存库中拉取分支 6.选择分支,切 ...
- Activiti 学习(四)—— Activiti 结合实际业务
流程实例 流程实例(ProcessInstance)代表流程定义的执行实例.一个流程实例包括了所有的运行节点.我们可以利用这个对象来了解当前流程实例的进度等信息.例如:用户或程序按照流程定义内容发起一 ...
- 如何在云效流水线 Flow中构建属于自己的NPM仓库
如何在云效流水线 Flow中构建属于自己的NPM仓库,Flow 通过各种构建组件,对各种语言提供了制品打包能力,让用户可以快速的使用流水线构建制品,并通过后续的部署任务进行部署.Flow 已经完成了与 ...
- 手把手教你如何玩转消息中间件(ActiveMQ)
手把手教你如何玩转消息中间件(ActiveMQ) 2018年07月15日 18:07:39 Cs_hnu_scw 阅读数 12270 标签: 中间件消息中间件ActiveMQ分布式集群 更多 个人分类 ...
- go案例:客户管理系统流程 mvc模式 分层设计
下面是一个简要的客服系统,主要是演示分层计.. model : 数据部份: package model import "fmt" //声明一个结构体,表示一个客户信息 type C ...