带你用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 数据派平台的翻译志愿者小组,希望能和大家一起交流分享,共同进步
翻译组招募信息
工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。
你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。
其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。
点击文末“阅读原文”加入数据派团队~
转载须知
如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:datapi),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。
发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。
点击“阅读原文”拥抱组织
带你用4行代码训练RNN生成文本(附资源)相关推荐
- 用少于10行代码训练前沿深度学习新药研发模型
©PaperWeekly · 作者|黄柯鑫 学校|哈佛大学硕士生 研究方向|图学习和生物医疗 深度学习正在革新药研发行业.在本文中,我们将展示如何使用 DeepPurpose,一个基于 PyTorch ...
- 什么,PyTorch还能开发新药?哈佛推出这款工具包,10行代码训练“药神”模型...
萧箫 编辑整理 量子位 报道 | 公众号 QbitAI 最近,来自哈佛大学等机构的研究人员,开发出了一个AI"药神"工具包,为加速新冠疫情下的新药研发助力. 这款名为DeepPur ...
- 数行代码训练视频模型,PyTorch视频理解利器出炉
本文转自机器之心. Facebook人工智能实验室在 PySlowFast 之后时隔两年,携 PyTorchVideo 重入战场. 视频作为当今最被广为使用的媒体形式,已逐渐占超过文字和图片,据了人们 ...
- 哈佛推出这款PyTorch工具包,10行代码训练“AI药神”模型
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:量子位 AI博士笔记系列推荐 周志华<机器学习> ...
- python怎么实现输入多行文字_介绍一个Python 包,几行代码可实现 OCR 文本识别!...
点击上方 Z先生点记,加为星标 第一时间收到 Python 技术干货! 文字 OCR 识别技术现在已经相当成熟了,无论 其 准确度还是识别速度 都能够满足我们的日常需要:今天给大家介绍一个 Pytho ...
- 35行代码利用python生成字符画,非常适合初学者练习,附源码!
python字符画是一个简单有趣的小程序,非常适合初学者进行学(zhuang)习(bi).python字符画生成的原理及其简单,一句话概括就是----将图片像素点用不同字符代替,从而将像素组成的图片转 ...
- 爬虫入门,带你用30行代码爬取高清美女写真,附安装包+源码
1.准备工作 1 高清壁纸:https://www.36992.com/girls/list-1.html 2 Python环境 Python3.9新特性: 字典"并集"运算符 类 ...
- Matlab+UNet+LIDC 32行代码训练自己的肺结节数据集
版本:Matlab2021b,需要安装deeplearningToolBox 数据集是LIDC-IDRI,我已经事先切割成64*64大小的PNG了,数据集下载链接:lidc数据集增强,便于使用-互联网 ...
- 数学建模学习(109):几行代码训练几十种机器学习模型
由于本专栏不是专门讲解机器学习的,因此我想该专栏的读者在机器学习模型的实践和理论上是比较薄弱的. 我想大家在经历过数学建模比赛,一定发现机器学习的模型是一定会出现的.无论是哪一场数学建模比赛,一定有一 ...
最新文章
- Maven详解(五)------ 坐标的概念以及依赖管理
- android把255转换成字节,android 上传参数设置,字符转化成字节,包装流等
- 最全的 eclipse web 项目目录结构
- cvpr 深度估计_干货 | 2019 到目前为止的深度学习研究进展汇总
- c/c++面试试题(二)
- 赫胥黎的焦虑与美丽新世界
- golang 指针总结(与C/C++区别不大,就是不可以p+1偏移)
- mariadb 和mysql主从_Mariadb/Mysql 主从复制(1)
- TypeScript教程
- 中国人工智能趋势报告(完整版)
- 详解Guitar Pro 7导入吉他谱的步骤
- 制作开心网页游戏 HTML+CSS静态网页
- 8.声卡驱动05-自己实现alsa驱动-虚拟声卡-kcontrol
- 如何用Matlab求极限
- 什么是类?什么是对象?类与对象之间是什么关系?类的特性有哪些?
- 自媒体视频搬运,技术分享给大家!
- 英语中的开音节,闭音节
- 平安好房想灭房产中介靠不靠谱?
- 解决ValueError: module functions cannot set METH_CLASS or METH_STATIC
- python 按照顺序读取文件夹中的图片名称
热门文章
- oracle数据类型--数值类型
- 寒假——练车、脑力风暴和辅导初中生
- MySQL管理之日志详解
- CPU 和内存虚拟化原理 - 每天5分钟玩转 OpenStack(6)
- Mysql AB复制
- java弹出网页alter_JavaScript三种弹出框(alert,confirm和prompt)用法举例
- info java module_如何在Jdk9 / java-9中解决module-info.java编译错误
- scheduled线程池ScheduledExecutorService只执行一次_有个定时任务突然不执行了
- GBDT原来是这么回事
- 吴恩达机器学习视频及答案2018