自动聊天示例

这是基于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:

https://github.com/kevwan

代码目录和命令行使用说明

bot

问答引擎,可以自定义自己的匹配算法

cli

  • train

    训练给定的问答数据并生成 .gob 文件

    • -d 读取指定目录下所有 jsonyaml 语料文件
    • -i 读取指定的 jsonyaml 语料文件,多个文件用逗号分割
    • -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-zerocore/mr 包的 MapReduce 实现使 chatbot 的回答效率得到了巨大的提升!

ChatterBot - https://github.com/gunthercox/ChatterBot

最早我是使用 ChatterBot 的,但由于回答太慢,所有后来只能自己实现了,感谢 ChatterBot,非常棒的项目!

项目地址

https://github.com/kevwan/chatbot

欢迎使用并 star 支持!

定制个机器人帮你和Ta聊天的更多相关文章

  1. AI中台——智能聊天机器人平台的架构与应用(分享实录)

    内容来源:宜信技术学院第3期技术沙龙-线上直播|AI中台——智能聊天机器人平台 主讲人:宜信科技中心AI中台团队负责人王东 导读:随着“中台”战略的提出,目前宜信中台建设在思想理念及架构设计上都已经取 ...

  2. 软工实践团队项目-"智能聊天机器人"简介

    "智能聊天机器人"项目 目前已确定的团队人员:张扬.俊彦.韫月.地秀.泽波.李翔.文婧.俞明.加伟(排名不分先后) 队伍已满,没有再招人的打算(#^.^#) 我们的想法 你有用过智 ...

  3. 构建一个简单的 Google Dialogflow 聊天机器人【上】

    概述 本教程将向您展示如何构建一个简单的Dialogflow聊天机器人,引导您完成Dialogflow的最重要功能.您将学习如何: 创建Dialogflow帐户和第一个Dialogflow聊天机器人, ...

  4. python微信聊天机器人改进版,定时或触发抓取天气预报、励志语录等,向好友推送

    最近想着做一个微信机器人,主要想要实现能够每天定时推送天气预报或励志语录,励志语录要每天有自动更新,定时或当有好友回复时,能够随机推送不同的内容.于是开始了分析思路.博主是采用了多线程群发,因为微信对 ...

  5. Python 使用图灵机器人实现微信聊天功能

    首先需要去图灵官网创建一个属于自己的机器人然后得到apikey. 一.自动与指定好友聊天 # -*- coding: utf-8 -*- """ Created at 2 ...

  6. 深度学习项目——基于循环神经网络(RNN)的智能聊天机器人系统

    基于循环神经网络(RNN)的智能聊天机器人系统 本设计研究智能聊天机器人技术,基于循环神经网络构建了一套智能聊天机器人系统,系统将由以下几个部分构成:制作问答聊天数据集.RNN神经网络搭建.seq2s ...

  7. 用python玩微信(聊天机器人,好友信息统计)

    1.用 Python 实现微信好友性别及位置信息统计 这里使用的python3+wxpy库+Anaconda(Spyder)开发.如果你想对wxpy有更深的了解请查看:wxpy: 用 Python 玩 ...

  8. 使用图灵机器人api搭建微信聊天机器人php实现

    之前通过hook技术实现了微信pc端发送消息功能,如果在结合图灵机器人就能实现微信聊天机器人. 代码下载:http://blog.yshizi.cn/131.html 逻辑如下: 下面我简单介绍一下步 ...

  9. 手把手教你用Python代码实现微信聊天机器人 -- Python wxpy

    关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 来学习了,微信聊天机器人. 环境要求: Windows / Li ...

随机推荐

  1. 前端云原生,以 Kubernetes 为基础设施的高可用 SSR(Vue.js) 渲染微服务初探(开源 Demo)

    背景 笔者在逛掘金的时候,有幸看到掘友狼族小狈开源的 genesis - 一个可以支持 SSR 和 CSR 渲染的微服务解决方案.总体来说思想不错,但是基于 Kubernetes 云原生部署方面一直没 ...

  2. AQS实现原理

    AQS实现原理 AQS中维护了一个volatile int state(共享资源)和一个CLH队列.当state=1时代表当前对象锁已经被占用,其他线程来加锁时则会失败,失败的线程被放入一个FIFO的 ...

  3. 办公室文员必备python神器,将PDF文件表格转换成excel表格!

    [阅读全文] 第三方库说明 # PDF读取第三方库 import pdfplumber # DataFrame 数据结果处理 import pandas as pd 初始化DataFrame数据对象 ...

  4. Gitlab(2)- centos7.x 下安装社区版 Gitlab 以及它的配置管理

    前置准备:虚拟机安装以及配置相关 包含安装 centos7.8 虚拟机.设置静态 ip 等 https://www.cnblogs.com/poloyy/category/1703784.html 注 ...

  5. redis 主从复制详解

    引言 我们之前操作 Redis 都是单机版,但是实际应用中没人使用单机版,都是搭建集群的方式.这篇文章要介绍的主从复制,是指将一台 Redis 服务器的数据,复制到其他 Redis 服务器,我们将前者 ...

  6. sed中传递变量进行替换

    sed命令中传递变量 例如:修改配置文件某一个变量的值 配置文件如下: toney@ubantu:/mnt/hgfs/em嵌入式学习记录/shell/shell脚本常见用法$ cat common_u ...

  7. 硕盟type-c转接头|四合一多功能扩展坞

    硕盟SM-T54是一款 TYPE C转HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞,支持四口同时使用,您可以将含有USB 3.1协议的电脑主机,通过此产品连接到具有HDMI或VGA的显 ...

  8. 完美数java

    完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数为&q ...

  9. 【OI】竖式问题分析与解答

    题目:找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合.输入数字集合(相邻数字之间没有空格),输出所有竖式.每个竖式前应有编号,之后应有一个空行 ...

  10. css3 animate转圈360旋转

    .logo{ width:20px; height: 20px; background: red; -webkit-animation:haha1 .8s linear infinite; anima ...