如何用RNN 4行代码生成文本

来源:知乎 2020年01月12日 07:51

原标题:怎么用RNN 4行代码生成文本译无止尽,我心永久

如安在无需构建和调整神经网络的情况下,轻松地生成文本?让咱们来看看下面这个项目,它答应您用几行代码就能在恣意文本数据集上轻松地练习出恣意巨细和复杂度的文本,这便是奇特的神经网络文本发生器。

文:马修·梅奥,科德那金

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

值得幸亏的是,网上有各式各样的很棒的资料能够用来学习怎么运用RNN来生成文本,从理论到技能深化,再到那些明确地专心于实践的资料。也有一些非常好的帖子,涵盖了一切内容。一切这些资料都有一个特别的共同点:在这个过程中的某个时间,你有必要构建和调整一个RNN来完结这项作业。

这明显是一项有价值的作业,特别是为了学习,但假如您对更高层次的笼统(不管您的原因是什么)感到满足,又该怎么办呢?假如您是一个数据科学家,需要以RNN文本生成器的方式构建块来刺进您的项目,该怎么办?或许,假如,作为一个新来的人,你只是想把你的手-不是太脏-作为测验水的一种手法,或许作为进一步深化发掘的动力,那又该怎么办呢?

在这种情况下,让咱们看一下textgenrnn,它是一个答应您“用几行代码在任何文本数据集上轻松地练习出恣意巨细和复杂度文本的神经网络。”的项目。textgenrnn由BuzzFeed的助理数据科学家Max Woolf和前Apple Software QA工程师编撰。

textgenrnn是建立在Keras和TensorFlow之上的,能够用于生成字符和单词等级的文本(字符等级是默许的)。网络系统架构运用注意力加权和越过嵌入来加快练习和进步质量,并答应调整多个超参数,例如RNN巨细、RNN层和包含双向RNN。您能够在Github repo这篇介绍性博客文章中阅读到更多关于textgenrnn及其特性和系统架构的信息。

生成“你好,国际!”(Hello,World!)这类的文本和生成特朗普的推文相相似 (至少在我看来是这样)那么让咱们一同来看看吧。运用Textgenrnn默许的预练习模型能够轻易地练习新的文本,一同你也能够运用textgenrnn来练习一种新的模型 (只需在它的练习函数中增加new_model=True句子)。已然咱们想看看咱们能有多快地生成推文,那就开端吧。

获取数据

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

练习模型

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

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

放下政治不谈,考虑到咱们只是用12K的推文在只是10个epoch进行练习,这些生成的推文并不是太糟糕。想要运用temperature (Textgenrnn默许值为0.5)来取得一些更有构思的推文?让咱们试试:

那就不那么令人信服了。更保存的,更有决心的模型是:

现在,上述文本的内容好像更合理些。

当然,这并不完美。咱们还能够测验其他各式各样的东西,好消息是,假如您不想自己来解决方案,那么能够运用textgenrnn来完成 (相同,请参阅Gizub repo):

· 从零开端练习咱们自己的模型。

· 用更多的样本数据来练习更多的迭代·

· 调优其他超参数。

· 对数据进行预处理(至少是为了消除假URL)

更为风趣的是,也是我最为感兴趣的是,怎么运用一个默许的textgenrnn模型来完成自定义、调优的模型?咱们将在下一次的内容中做深化探讨。

相关文章:

· ·你不应该忽视的5个机器学习项目,2018年6月。

· 运用spaCy开端为进行然言语处理。

· 找出名人的推特。

相关推荐
最新文章