利用seq2seq 聊天机器人做出鲁迅体

背景

利用 luojiangtao 这位大神https://github.com/luojiangtao/ChatBot_web 的代码,灵感来源http://www.shareditor.com/blogshow?blogId=118 一个lstm单元让聊天机器人学会甄嬛体。

以鲁迅先生的狂人日志为语料,将每连续的两句话作为encoder输入和decoder输入来训练,生成文章时用机器人的输出作为输入循环得到100个句子。

结果如下:

很好的月光,我不见他.便旧走也吃走.一个要以一也.后个来人一门.今个书上.自己几了勒死.可个村的佃户来告的.对我笑身明.他不他不便吃.自己妥已吃.整个的自一也吃得.也个一和一伙.大哥吃人.书约写方先人.还还记不首.母亲哭天知亲不行.大约因里自己户吃人.赵贵世自然得的人的.互在么冤对去道簿.我从寝得.可可赵也是人的人仇.何立是以以知道这立.怕晓得他.也已已了一样.大哥也为布.也约吃人的蛮.同在的冤对.一一伙事.今个人人.我未必不会.便旧走大笑走.便天你请大哥.我我过不的.便放他也是我.我便毫了教.这真他我笑.教我纳白.这想起便大老.我从顶也是他.想们吃也吃人.何未必个然许.老头子点睡死地.他是吃不便.何以何以两己.老子镜横睡便暗看我.我直是样.可想想也是我的大哥.我从毫也同道的大子.也在吃得.也在要转一样.大哥也点头.大约一人野狗.今天翁何对门来.他都可以.其跑我岂不知道这老头子是刽子手扮的.也也医生.但探头转一步.而且心心满太平.老头的人的人除灭了.对是牙说.他们着里.就跑了.不要乱的.静静的养几天.和是吃好.前天狼子.还天里里的生病.老头子服.对大.他们那里然了.就跑了改愿.他们似里别有心思.何以今天也睁着怪眼睛.他住那何青.何以眼我.这见便不见了.我己走猜一之他.便然不大哥也都看我.我日是了约蛮.便然想吃人.我从必记得他.想劝赵也吃人的人理.何等是记然去道字.赵晓晓.大哥给为县己几下.几约翁人人蛮来.他们还里妙了.就就眼改愿的排怪.他而也不我那不去.便然走吃的.我从天请对.他们可以吃我.就跑我不厉.自究想自己个.但只赵转一步什大哥.也是吃人的人.他们的祖师李时珍做的.直而杀明.自己想不人。.

还有有点逻辑的哈哈,里面有几句话是原文的原话比如“他们的祖师李时珍做的” 等。至于里面出现的 赵晓晓 在原文从没出现过,机器人却做出了一个人名,怪哉怪哉。

代码

接下来讲讲 luojiangtao 这位大神https://github.com/luojiangtao/ChatBot_web 的代码

在我找过很多聊天机器人的代码后,就他的代码效果最好~

代码大致流程如下

1. 配置参数
2. load_data
读取数据时需要正则清洗数据,判断数据是否为好的语料,之后按照一问一答的形式存二元组
其中读取的句子长度需要在一个区间内
3. 训练 train.py 主函数
1. 初始化各种参数,数据
```

du = data_unit.DataUnit(**data_config)#** 表示取字典
save_path = os.path.join(BASE_MODEL_DIR, MODEL_NAME)
steps = int(len(du) / batch_size) + 1#len(du) 函数重载,返回问答对个数

tf.reset_default_graph()

```
2. 定义一个模型
```

with tf.Graph().as_default():
with tf.Session() as sess:
# 定义模型
model = Seq2Seq(batch_size = batch_size,
encoder_vocab_size = du.vocab_size,
decoder_vocab_size = du.vocab_size,
mode = ‘train‘,
**model_config)
init = tf.global_variables_initializer()
sess.run(init)

```
3. 取batch数据
```

x, xl, y, yl = du.next_batch(batch_size) #只取batch前四个元素encoded_question, q_len, encoded_answer, a_len 其中question 是句子的集合,每个句子的字由一个索引表示,所以是一个二维矩阵
max_len = np.max(yl)
y = y[ : , 0:max_len]#每个句子都取一样的长度

```
4. 对每一个batch训练
```

cost, lr = model.train(sess, x, xl, y, yl, keep_prob)

```
```

def train(self, sess, encoder_inputs, encoder_inputs_length,
decoder_inputs, decoder_inputs_length, keep_prob):
"""
训练模型
:param sess:
:return:
"""
input_feed = self.check_feeds(encoder_inputs, encoder_inputs_length,
decoder_inputs, decoder_inputs_length,keep_prob,
False)
output_feed = [
self.update, self.loss,
self.current_learning_rate
]
_, cost, lr = sess.run(output_feed, input_feed)
return cost, lr

```

原文地址:https://www.cnblogs.com/LandingGuy/p/11209257.html

时间: 2024-08-30 00:52:09

利用seq2seq 聊天机器人做出鲁迅体的相关文章

自动聊天机器人项目班 [一门课搞定聊天机器人]

打造传统NLP聊天机器人第1课 聊天机器人的基础模型与综述知识点1:行业与业界综述实战项目:最简单的Rule-Base聊天机器人第2课 NLP基础及扫盲知识点1:NLP基本算法实战项目:经典NLP问题与解法第3课 用基础机器学习方法制作聊天机器人知识点1:神经网络与基础实战项目:说学逗唱的基础机器人打造深度学习聊天机器人第4课 深度学习基础及扫盲知识点1:深度学习基础算法实战项目:经典深度学习问题与解法第5课 深度学习聊天机器人原理知识点1:seq2seq生成模型知识点2:user modeli

分分钟搭建自己的微信聊天机器人

利用图灵机器人分分钟搭建自己的微信聊天机器人 需要准备的资源: 图灵机器人账号 微信公共账号 点击访问 图灵机器人官网,快快注册,拥有自己的聊天机器人,可以在这里先体验一下 今天主要简述微信公共平台聊天机器人的搭建,首先需要注册微信公共账号,之后在图灵机器人网站上登录你的图灵账号,可以看到如截图所示的界面,在"机器人设定"界面可以进行机器人昵称.年龄.性别等信息的设定,在"机器人调教"界面可以教你的机器人回答特定问题,"知识库"可以导入知识库,增

Tensorflow打造聊天机器人

Tensorflow聊天机器人 聊天机器人也叫做对话系统,是一个热门领域.微软.facebook.苹果.google.微信.slack都在上面做了大的投入,这是一波新的试图改变人和服务交流的创业浪潮.例如operator x.ai,chatfuel,以及一些库例如botkit,微软的bot开发库. 许多公司都希望机器人可以自然对话,和人类没有区别.并且许多对外声明说用了NLP和深度学习技术来实现这个目标.但围绕AI这些天花乱坠的宣传有时候也很难区别现实和虚化的差别. 我要在这个系列文章里将一些构

基于torch学汪峰写歌词、聊天机器人、图像着色/生成、看图说话、生成字幕

手把手教你基于torch玩转 学汪峰写词.自动聊天机器人.图像着色.图像生成.看图说话.生成字幕 作者:骁哲.李伟.小蔡.July.说明:本教程出自七月在线开发/市场团队.及七月在线5月深度学习班学员之手,有何问题欢迎加Q群交流:472899334.时间:二零一六年十月十二日. 前言 我们教梵高作画的教程发布之后,国庆7天,上百位朋友一一陆续动手尝试,大有全民DL.全民实验之感.特别是来自DL班的小蔡同学,国庆7天连做10个开源实验,并把这10个实验的简易教程(含自动聊天机器人)发布在社区上:h

用 TensorFlow 做个聊天机器人

上一次提到了不错的学习聊天机器人的资源,不知道小伙伴们有没有去学习呢. 自己动手做聊天机器人教程 我最近每天都会学一点,拿出解读来和大家分享一下. 本文结构: 聊天机器人的架构简图 用 TensorFlow 实现 Chatbot 的模型 如何准备 chatbot 的训练数据 Chatbot 源码解读 1. 聊天机器人的架构简图 学习资源: [自己动手做聊天机器人 九-聊天机器人应该怎么做] (http://www.shareditor.com/blogshow/?blogId=73) 聊天机器人

聊天机器人(chatbot)终极指南:自然语言处理(NLP)和深度机器学习(Deep Machine Learning)

在过去的几个月中,我一直在收集自然语言处理(NLP)以及如何将NLP和深度学习(Deep Learning)应用到聊天机器人(Chatbots)方面的最好的资料. 时不时地我会发现一个出色的资源,因此我很快就开始把这些资源编制成列表. 不久,我就发现自己开始与bot开发人员和bot社区的其他人共享这份清单以及一些非常有用的文章了. 在这个过程中,我的名单变成了一个指南,经过一些好友的敦促和鼓励,我决定和大家分享这个指南,或许是一个精简的版本 - 由于长度的原因. 这个指南主要基于Denny Br

初识BOT聊天机器人

最近在想毕业设计做什么,因为在看Python,所以想做个Python项目,浏览网页看到了"BOT",据说这个今年(应该是过去的2016,还没适应~)有点火哈.闭关时间有点久,有点跟不上时代潮流了. BOT是什么?既然谈潮流这么高大上的东西当然不是简单指LOL里面的下路了.这里的BOT指的是ChatBot--聊天机器人. 这个我知道,微软小冰嘛,有调戏过.正好我一直想做一个用来提醒自己任务,安排时间的东西,可以和这个联系在一起,没毛病,继续百度Google. BOT的过去和现在 过去的B

用 AIML 开发人工智能聊天机器人

借助 Python 的 AIML 包,我们很容易实现人工智能聊天机器人.AIML 指的是 Artificial Intelligence Markup Language (人工智能标记语言),它不过是简单的可 XML (扩展标记语言)形式.本文的示例代码将带你初步领略如何借助 Python 创建属于你的人工智能聊天机器人. AIML 是什么? AIML由Richard Wallace发明.他设计了一个名为 A.L.I.C.E.  (Artificial Linguistics Internet

智能聊天机器人实现(源码+解析)

前言: 之前写了一篇  <美女图片采集器 (源码+解析)> 得到了众多朋友的支持, 发现这样系列的教程还是挺受欢迎的, 也激励我继续写下去. 也在那一篇文章中提过, 美女图片采集只是我先前那个完整APP中的一个功能罢了, 还有其他几个比较好玩的尚未开源, 之后有时间会逐一写篇教程. 今天带来的是智能聊天机器人实现(源码+解析), 和上一篇教程一样, 当你没有女朋友的时候, 可以用它来打发时间.这里的API是图灵机器人提供的, 实现一个十分强大的机器人. 具体功能包括: ? 支持聊天对话.智能问