写点什么

定制个机器人帮你和 Ta 聊天

发布于: 刚刚

自动聊天示例

这是基于 200 万聊天记录训练出来的,你可以用自己和女朋友的记录训练了试试效果 :P

至于微信机器人怎么用,你可以 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:- AIconversations:- - 什么是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 支持!

发布于: 刚刚阅读数: 2
用户头像

保持简单 2017.10.24 加入

go-zero作者

评论

发布
暂无评论
定制个机器人帮你和Ta聊天