前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >带你用4行代码训练RNN生成文本(附资源)

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

作者头像
数据派THU
发布2018-07-30 10:25:33
3710
发布2018-07-30 10:25:33
举报
文章被收录于专栏:数据派THU

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

翻译:陈之炎

校对:丁楠雅

本文共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】至联系邮箱,申请白名单授权并按要求编辑。

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档