带你用4行代码训练RNN生成文本(附资源)

作者:马修·梅奥,科德那金

翻译:陈之炎

校对:丁楠雅

本文共1400字,建议阅读6分钟。 本文介绍仅需几行代码就能训练出任意大小和复杂度的文本的神经网络文本发生器。

如何在无需构建和调整神经网络的情况下,轻松地生成文本?让我们来看看下面这个项目,它允许您用几行代码就能在任意文本数据集上轻松地训练出任意大小和复杂度的文本,这便是神奇的神经网络文本发生器。

文本生成对机器学习和NLP初学者来说是很有趣的项目之一,但同时也是一个相当令人生畏的项目。至少对于我来说是这样的。

值得庆幸的是,网上有各种各样的很棒的材料可以用来学习如何利用RNN生成文本,从理论到技术深入,再到那些明确地专注于实践的材料。也有一些非常好的帖子,涵盖了所有内容。所有这些材料都有一个特别的共同点:在这个过程中的某个时刻,你必须构建和调整一个RNN来完成这项工作。

这显然是一项有价值的工作,尤其是为了学习,但如果你对更高层次的抽象(无论你的原因是什么)感兴趣,又该怎么办呢?如果你是一个数据科学家,需要以RNN文本生成器的形式构建块来插入你的项目,该怎么办?或者,如果,作为一个新来的人,你只是想把你的手“不是太脏”作为测试水的一种手段,或者作为进一步深入挖掘的动力,那又该怎么办呢?

在这种情况下,让我们看一下 textgenrnn,它是一个允许你“用几行代码在任何文本数据集上轻松地训练出任意大小和复杂度文本的神经网络”的项目。textgenrnn由BuzzFeed的助理数据科学家Max Woolf和前Apple Software QA工程师撰写。

textgenrnn是建立在Keras和TensorFlow之上的,可以用于生成字符和单词级别的文本(字符级别是默认的)。网络体系架构使用注意力加权和跳过嵌入来加速训练和提高质量,并允许调整多个超参数,例如RNN大小、RNN层和包含双向RNN。你可以在Github repo这篇介绍性博客文章中阅读到更多关于textgenrnn及其特性和体系架构的信息:

https://github.com/minimaxir/textgenrnn

生成‘Hello,World!’这类文本和生成特朗普的推文相类似 (至少在我看来是这样),那么让我们一起来看看吧。利用Textgenrnn默认的预训练模型可以轻易地训练新的文本,同时你也可以利用textgenrnn来训练一种新的模型(只需在它的训练函数中添加new_model=True语句)。既然我们想看看我们能有多快地生成推文,那就开始吧。

获取数据

我从特朗普推特档案馆(Trump Twitter Archive)抓取了唐纳德·特朗普从2014年1月1日至2018年6月11日(在昨日撰写的)的一些推文,其中显然包括了特朗普就任美国总统前后的推文。特朗普推特档案馆这个网站可以查询和下载到总统的推文。我选择那个日期范围内的文本,因为我不关心任何元数据,并将其保存到一个名为trump-tweets.txt的文本文件中。

训练模型

让我们看看用textgenrnn生成文本是多么简单。以下4行代码是我们导入库、创建文本生成对象、在trump-tweets.txtfile上对模型进行10次训练所需的全部内容,然后生成一些样例推文。

大约30分钟后,这是生成的文本:

撇开政治不谈,考虑到我们仅仅用12K的推文在仅仅10个epoch进行训练,这些生成的推文并不是太糟糕。想要利用temperature (Textgenrnn默认值为0.5)来获得一些更有创意的推文?让我们试试:

那就不那么令人信服了。更保守的、更有信心的模型是:

现在,上述文本的内容似乎更合理些。

当然,这并不完美。我们还可以尝试其他各种各样的东西。好消息是,如果你不想自己来解决方案,那么可以利用textgenrnn来实现 (同样,请参阅Gizub repo):

  • 从零开始训练我们自己的模型。
  • 用更多的样本数据来训练更多的迭代
  • 调优其他超参数。
  • 对数据进行预处理(至少是为了消除假URL)

更为有趣的是,也是我最为感兴趣的是,如何利用一个默认的textgenrnn模型来实现自定义、调优的模型?我们将在下一次的内容中做深入探讨。

译者简介

陈之炎,北京交通大学通信与控制工程专业毕业,获得工学硕士学位,历任长城计算机软件与系统公司工程师,大唐微电子公司工程师,现任北京吾译超群科技有限公司技术支持。目前从事智能化翻译教学系统的运营和维护,在人工智能深度学习和自然语言处理(NLP)方面积累有一定的经验。业余时间喜爱翻译创作,翻译作品主要有:IEC-ISO 7816、伊拉克石油工程项目、新财税主义宣言等等,其中中译英作品“新财税主义宣言”在GLOBAL TIMES正式发表。能够利用业余时间加入到THU 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:datapi),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

原文发布于微信公众号 - 数据派THU(DatapiTHU)

原文发表时间:2018-07-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

MIT开发新型加密方法,使基于云的机器学习更具安全性

麻省理工学院研究人员设计的一种新型加密方法可以保护在线神经网络中使用的数据,而不会减慢其运行时间。这种方法有望在基于云的神经网络进行医学图像分析和其他使用敏感数...

2013
来自专栏机器之心

初学者怎么选择神经网络环境?对比MATLAB、Torch和TensorFlow

选自arXiv 机器之心编译 参与:吴攀、蒋思源、李亚洲 初学者在学习神经网络的时候往往会有不知道从何处入手的困难,甚至可能不知道选择什么工具入手才合适。近日...

46110
来自专栏AI科技评论

动态|99.80%!腾讯优图刷新人脸识别新高度

AI科技评论消息,在国际权威人脸识别数据库LFW上,腾讯优图实验室在无限制条件下人脸验证测试(unrestricted labeled outside data...

4187
来自专栏MixLab科技+设计实验室

你该掌握的AI技能:强化学习01

题图由人工智能设计师完成 最近在看一些强化学习的书籍,学习的过程就是要不断的输入,查找资料,理解各种资料,然后输出,总结学习心得,再次输入,输出。不断的重复输入...

3066
来自专栏程序你好

什么是TensorFlow,TensorFlow教程

1252
来自专栏祝威廉

为什么去开发一个MLSQL

第一个,算法的着眼点是,用最快速的方式清洗一些数据出来,然后接着建模训练,评估预测效果,之后再重复清洗数据,再试验。因为很多算法工程师都是Python系的,对他...

1232
来自专栏GAN&CV

Rules of Machine Learning: Best Practices for ML Engineering

原文地址:https://developers.google.com/machine-learning/rules-of-ml/ 作者:Martin Zin...

1483
来自专栏数据派THU

这5个机器学习项目你不可错过!(附代码)

本文共2299字,建议阅读6分钟。 本文将给大家介绍五个十分可怕但还鲜为人知的机器学习项目,囊括了一些潜在的机器学习的新想法。

953
来自专栏机器之心

前沿 | MIT开发神经网络专用芯片:能耗降低95%,适合移动端设备

2147
来自专栏腾讯技术工程官方号的专栏

FPGA异构计算在图片处理上的应用以及HEVC算法原理介绍

作者介绍:chaningwang,2008年毕业于中国科学院研究生院,主攻FPGA高性能计算、FPGA图像处理等方向。 先后在华为、怡化公司从事FPGA开发...

4316

扫码关注云+社区

领取腾讯云代金券