莎士比亚数据集

“开玩笑地说了许多真实的话。”
―威廉·莎士比亚, 李尔王

“噢,主啊,当心嫉妒;
是嘲笑的绿眼怪物
它以肉为食。”
― 奥赛罗的威廉·莎士比亚

“有个星星在跳舞,在那之下我出生了。”
威廉·莎士比亚(William Shakespeare),《 无事生非》

谁能像莎士比亚一样写作? 甚至只是像莎士比亚一样的咒语? 我们可以教AI像莎士比亚一样写作吗? 还是这是一个绝望的任务? AI神经网络可以描述像李尔金(King Lear)这样的绝望吗,像奥赛罗(Othello)这样的嫉妒心,还是像本尼迪克(Benedick)这样的幽默感吗? 从理论上讲,没有理由为什么我们只能教它。

[避免机器学习失败: 使机器学习失败的6种方法 。 • 机器学习课程:5家公司分享了他们的错误 。 ]

我从麻省理工学院的《莎士比亚全集》网站下载了莎士比亚三大名著的文本:“李尔王”,“奥赛罗”和“无所事事”。 然后,我用该语料库上的一个隐藏的长短期记忆(LSTM)单元训练了深度学习 递归神经网络(RNN) ,以生成自由文本。

神经网络是否能够像莎士比亚一样学习写作? 如果是这样,在模仿巴德风格方面走了多远? 它能为剧中的每个角色产生出有意义的文字吗? 在AI情节中,戴斯蒙达娜会遇到李尔国王,这会引发奥赛罗的嫉妒吗? 悲剧胜过喜剧吗? 每个角色会保持与原始戏剧相同的说话风格吗?

我相信您还有更多问题。 因此,事不宜迟,让我们看看我们的深度学习网络可以产生诗歌还是仅仅扮演傻瓜。

使用LSTM神经网络生成自由文本

递归神经网络(RNN)已成功进行实验以生成自由文本 。 用于自由文本生成的最常见的神经网络体系结构至少依赖于一个LSTM层。

为了训练我们的第一个莎士比亚模拟器,我使用了只有三层的神经网络:输入层,LSTM层和输出层(图1)。

该网络在角色级别进行了培训。 即,从输入文本生成了m个字符的序列,并将其馈送到网络中。

使用热零编码对每个字符进行编码。 这意味着每个字符都由大小为n的向量表示,其中n是输入文本语料库中字符集的大小。

将大小为[m,n]的完整输入张量馈入网络。 网络经过训练,可以将位置m + 1处的下一个字符与前m个字符相关联。

所有这些导致以下网络:

  • 具有n个单位的输入层将接受[m,n]张量,其中n是字符集的大小, m是用于预测的过去样本(在这种情况下为字符)的数量。 我们任意选择m = 100 ,估计100个过去的字符可能足以预测字符数101。字符集大小n当然取决于输入语料库。
  • 对于隐藏层,我们使用了512个LSTM单位。 为了处理所有这些(过去的m个字符-下一个字符)关联,需要相对大量的LSTM单元。
  • 最后,最后一层包括n个 softmax激活单元,其中n再次是字符集大小。 确实,这一层应该为字典中的每个字符产生概率数组。 因此, n个输出单元,每个字符概率一个。
尼米

图1.我们用于生成自由文本的基于LSTM的深度学习神经网络。 n个输入神经元,512个隐藏LSTM单位, n层softmax单位的输出层,其中n是字符集大小,在这种情况下是训练集中使用的字符数。

注意,为了避免过度拟合,在训练期间在LSTM层和输出密集层之间临时引入了中间辍学层。 退出层选择在训练阶段的每次迭代期间删除一些随机单元。 然后删除该辍学层以进行部署。

建立,训练和部署神经网络

该网络接受了《 威廉·莎士比亚全集 》网站上“李尔王”,“奥赛罗”和“无所事事”的全文培训,共有13298句话。

使用KNIME Analytics Platform提供的基于GUI的Keras 和TensorFlow集成,可以构建,训练和部署上述神经网络。

图2显示了构建和训练网络的工作流。图3显示了部署网络以逐字符地预测最终文本的工作流。这两个工作流均已被复制并改编自博客中实现的工作流。帖子“ Lost Network曾经…… ”,在那里训练并部署了一个类似的网络来生成自由文本,并接受了格林童话中的文本训练。 这两个工作流程均可从04_Analytics / 14_Deep_Learning / 02_Keras / 11_Generate_Fairy_Tales下的KNIME EXAMPLES服务器免费下载。

在图2中,“定义网络结构”部分(左上方)中的棕色块(节点)构建了神经网络的不同层。 数据通过“预处理和编码”部分(左下方)中的节点进行清理,标准化,整形和转换。 最后,由Keras Network Learner节点进行培训,并且将网络存储起来以进行部署。

请注意,如果训练集很大,则该网络可能需要花费很长时间进行训练。 通过将KNIME Analytics Platform指向Keras安装的GPU,可以加快速度。

图3中的部署工作流读取并使用先前训练有素的网络来预测自由文本,一个字符接一个字符。

尼米

图2.训练工作流训练了一个神经网络(62个输入-> 512 LSTM-> 62个输出),以根据前100个字符来预测文本中的下一个字符。 训练集由威廉·莎士比亚(William Shakespeare)的“李尔王”,“奥赛罗”和“无所事事”组成。 因此,网络应该学习以莎士比亚风格构建单词和句子。

尼米

图3.部署工作流以100个字符为开始,然后在一个字符中一个接一个的字符地生成文本字符,直到生成1,000个字符为止,从而形成完整的,最终的类似于莎士比亚的文本。

AI生成的莎士比亚文字

在将整个数据集上的网络训练了50个纪元后(这是选定的三个剧场),使用100个过去的字符作为输入张量并递归生成1,000个新的字符,得出以下结果。

让我们从Othello和Desdemona之间的对话框中的100个字符开始(用斜体显示 ),然后看看我们的网络将如何继续(以纯文本显示)。

-奥赛罗
我的勇士啊!  

-Desdemona
我亲爱的奥赛罗!  

-奥赛罗
我的内容使我感到惊奇
在我面前见你。 我的灵魂的喜悦!
我是个虫子。

-格洛斯特
我不知道,亲爱的:
我发自内心地发现你像个小偷
那皮尔斯会很好。
一般说是这样
我想,转个男人吧。

-卡西欧
先生,我祈祷你撒谎。
我不会威胁派遣。
我们的好朋友
躺下安慰国家,寻找他;
我会痛心你更快!
嫁妆的祝福过程:
足够聪明地做你;
而且,摩尔人的信件有缺陷!
可恶,天堂,我会感到悲伤的;
还有一个。

-奥赛罗
我对他的演讲感到如此审慎,
他将把荒野生活在谎言中
那与道希尔
认为这是一个最穷的人,
谁的国家,
一个被许多人称为生命的人
那一定要失去男孩的眼神。

-里根
先生,对我姐姐?

-奥斯瓦尔德
我祈祷你,握住你的手:你可以把所有的钱都拿给他来,让他成天
卡西欧的内心深处
我可能会说:我不会……

当Desdemona从对话框中消失时,“李尔王”(Gloucester,Regan和Oswald)的一些次要角色characters入了场景。 我们从这三个剧本的不同行开始创建了其他自由文本,有趣的是,悲剧“奥赛罗”和“李尔王”中的角色经常混合使用,而喜剧电影“无所事事”中的角色似乎经常出现。更加独立。

文本是使用莎士比亚英语中的单词及其特有的复杂句子结构生成的。 并非所有的句子都具有完美的意义,但大多数似乎都是如此。 还要注意,次要字符被分配了较短的对话框,而在本例中,奥赛罗和卡西欧却获得了最长的发言权-应该是。

使用AI编写原始场景

让我们使用前100个字符(再次用斜体表示 )触发一个新场景。 在这里,我介绍了关键字“ SCENE”,位置,涉及的字符以及第一个要说的字符的名称。 神经网络负责其余的工作。

场景一
威尼斯。 一条街。
输入Roderigo和Iago  

-Desdemona
我祈祷,说说卡西欧。
是的,所以我听到写在prive那里的信,
她会看见他那现在的巫妖让旧水桶烦死的家伙,
和对他的这种不屑一顾中最令人难以置信的:
有儿子反对父亲,
你父亲的儿子和我们今世最美好的时光,没有高举你的律师手表
最糟糕的不是对好战的小岛的温柔,
那被击落的东西必须丢人
自我报仇的复​​仇比我们时代的最好时光还好;
保持我们的命运以发扬力量,
看到它们的本性,放心地在架子上走:我发誓,要如此
她会发回我的使者。

-格洛斯特
我看到股票生锈了。

-李尔王
我可以告诉我自己的方式
应当鄙视我的兄弟;
我已经过了他,告诉我我每个人都在恐惧,
她可能是诚实的,但他已经承认了他的娱乐性
然后想办法将它弄脏
最主要的原因
会让她喘不过气来
她可能会...

与继续现有场景相比,创建新场景被证明是一项艰巨的任务。 Desdemona的演讲开始良好,并且与原著一致。 但是,我不确定我能否坚持到底。

使用AI融合莎士比亚和现代英语

但是,认真地说,产生古英语文本的AI引擎有多有用?

我们能否以某种莎士比亚的方式改善当前的英语句子? 让我们为莎士比亚培训网络提供一些现代文本,看看会出现什么。

那么,什么样的日常现代文本可以对莎士比亚进行一些改进呢? 软件许可协议? 让我们来看看网络可以使许可协议的开始变得更加有趣(以斜体显示 )。

本许可证是指GNU通用公共许可证的版本。 版权也指版权
用他的剑重生了我
要为他的盐分和最隐秘的松散而歌唱,但不要轻信他的事,那肯定会被卖掉
作为主编,不要生活在叛徒中。
祝福你的五个智慧!

肯特
真可惜!
主席先生,现在哪里有耐心,
距离海上还有很远的地方,还有一些要拆除的标书
如此多的节省和诚实。

-布拉班蒂奥
我决不认为卡西欧的土耳其人在奇怪地迷住一个魔术师的真相时说的是放任自流。
我可以欺骗他以最大的优势,
在她的预言中,一点点地掌握你的能力; 先生,我要谢谢你。

-阿尔巴尼
格洛斯特(Gloucester),我将证明他的运动以及第一批得分手和后卫在白色上的讲话。

-李尔王
小偷在哪里?
信中永远不要有队长
对于摩尔人和我们没有更好的地方,如果他发怒,那一定可以确定,

-里根
我祈祷你,我的心中有一个念头,比想做要宣扬,Hot

拯救,诚实,小偷,主人,叛徒和欺骗等词似乎适合上下文。 还要注意,从许可协议的起始文本开始的对话有趣地涉及戏剧中较小的,较少悲剧的角色。

对于其余的部分,我无法理解的部分与原始法律语言一样难以理解。 并引用我们的网络,“先生,现在耐心在哪里……”

使用人工智能制作莎士比亚说唱

最后,让我们为莎士比亚英语AI提供一些新颖的现代语言-一种创新的东西。 在一些说唱歌词上加上一点莎士比亚怎么办? 这会改变意思还是仅仅改变文字? 同样,让我们​​触发一首说唱歌曲中100个字符的自由文本的生成。

翻译自: https://www.infoworld.com/article/3340377/how-to-use-deep-learning-to-write-shakespeare.html

莎士比亚数据集

莎士比亚数据集_如何使用深度学习写莎士比亚相关推荐

  1. 如何使用深度学习写莎士比亚

    "开玩笑地说了许多真实的话." ―威廉·莎士比亚, 李尔王 "噢,主啊,当心嫉妒: 是嘲笑的绿眼怪物 它以肉为食." ― 奥赛罗的威廉·莎士比亚 "有 ...

  2. 诺亚面向语音语义的深度学习研究进展

    本文来自华为诺亚方舟实验室资深专家刘晓华在携程技术中心主办的深度学习Meetup中的主题演讲,介绍了华为诺亚面向语音语义的深度学习进展. 本次演讲简要回顾了深度学习近十年进展,重点介绍华为诺亚方舟实验 ...

  3. 波士顿房价python_Python深度学习实战07-波士顿房价

    Python深度学习实战07-波士顿房价 22 Aug 2017 本项目将神经网络模型应用于波士顿房价线性回归问题中, 并评估模型. 目的: 建立和评估用于线性回归问题(波士顿房价)神经网络模型 过程 ...

  4. 如何判断你的数据集是否适合使用深度学习模型?如果数据量太小有什么解决办法?

    如何判断你的数据集是否适合使用深度学习模型?如果数据量太小有什么解决办法? deep learning is a data hungry problem 数据集太小,数据样本不足时,深度学习相对其它机 ...

  5. 基于深度学习模型的花卉图像分类代码_实战 | 基于深度学习模型VGG的图像识别(附代码)...

    本文演示了如何使用百度公司的PaddlePaddle实现基于深度学习模型VGG的图像识别. 准备工作 VGG简介 牛津大学VGG(Visual Geometry Group)组在2014年ILSVRC ...

  6. 独热编码python实现_详解深度学习中的独热编码

    很多人开始接触深度学习,数据处理遇到第一个专业英文术语就是one-hot encode(独热编码),很多初学者就会迷茫,这个东西是什么意思,其实说的直白点所谓的独热编码最重要的就是把一组字符串或者数字 ...

  7. 基于深度学习的病理_组织病理学的深度学习(第二部分)

    基于深度学习的病理 计算机视觉/深度学习/医学影像 (COMPUTER VISION/ DEEP LEARNING/ MEDICAL IMAGING) In the last part, we sta ...

  8. python图像分类代码_医学图像 | 使用深度学习实现乳腺癌分类(附python演练)

    乳腺癌是全球第二常见的女性癌症.2012年,它占所有新癌症病例的12%,占所有女性癌症病例的25%. 当乳腺细胞生长失控时,乳腺癌就开始了.这些细胞通常形成一个肿瘤,通常可以在x光片上直接看到或感觉到 ...

  9. python性能训练_让大规模深度学习训练线性加速、性能无损,基于BMUF的Adam优化器并行化实践...

    编者按: 深度学习领域经典的 Adam 算法在大规模并行训练的情况下会导致模型性能损失.为了解决这一问题,微软亚洲研究院采用 BMUF 框架对 Adam 算法进行了并行化,并在微软大规模 OCR 和语 ...

最新文章

  1. canal+mysql+rocket
  2. Kubernetes是什么
  3. 如何设置并使用 Synology NAS 共享的多功能打印机
  4. 发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案
  5. 论文浅尝 | 将结构预测作为增广自然语言间的翻译任务
  6. PDF文件如何转成markdown格式 1
  7. ARM公司的Cortex-M0概况介绍
  8. Myeclipse学习总结(3)——Myeclipse中的代码格式化、注释模板及保存时自动格式化
  9. 机器视觉光源之LED光源
  10. 《面向对象程序设计》第六次作业(图形化界面)
  11. atitit 软件框架类库设计的艺术.docx 目录 1. index 1 2. 第2章 设计api的动力之源 14 2 2.1. .1 分布式开发 14 2 2.2. 2.2 模块化应用程序 16
  12. C/C++[codeup 1967]数组逆置
  13. 【ELAMN预测】基于遗传算法优化ELMAN神经网络实现电力符合数据回归预测附matlab代码
  14. 原创 迈达斯GTS-NX网格模型(FPN)导入Flac3D 6.0 源码
  15. 《晨间日记的奇迹读》书笔记
  16. 01.分布式框架-Dubbox
  17. 《怨情》赏析-(李白明月姑娘之三)
  18. 用openjweb平台开发的企业档案管理系统介绍
  19. 使用fiddler工具抓包并改包数据
  20. 计算机附件计算器的用法,《计算机附件中的计算器使用方法.doc

热门文章

  1. 数字摄影测量考试复习名词解释
  2. Java常用英语单词(自己整理)(更新中...)
  3. 量子计算机用什么传导信息,量子是如何传递信息的?
  4. python基础入门小结(1)
  5. 多元统计分析及R语言建模(第五版)——第3章多元数据的直观表示课后习题
  6. 如何计算变量或数据类型所占内存空间的大小
  7. python中安装excel使用的模块
  8. php exchange,Windows-使用PHP访问Exchange的最佳方法?
  9. 网友晒异性合租趣事:坐马桶都要签协议
  10. 计算机VB语言VERSION,怎么用VB获得电脑中excel的版本号