Poetry Generator

诗歌生成器

使用pytorch和LSTM模型,实现续写诗词或写藏头诗
并借助flask上可在浏览器上测试

http://127.0.0.1:5000/generator

html,flask这块是弱项,仅仅实现了功能

环境 :

  • python3.7
  • flask 1.1.1
  • torch 1.4

数据源 :
中国诗词(直接将其json文件夹放在input文件夹内)
然后将其制作成所需要的数据
源码:
github

模型

相关参数可在Config.py文件里设置

class PoetryModel(nn.Module):def __init__(self, vocab_size, embedding_dim, hidden_dim):super(PoetryModel, self).__init__()self.hidden_dim = hidden_dimself.embedding = nn.Embedding(vocab_size, embedding_dim)    # 词向量层self.num_layers = Config['num_layers']self.lstm = nn.LSTM(embedding_dim, self.hidden_dim, num_layers=self.num_layers)self.linear = nn.Linear(self.hidden_dim, vocab_size)def forward(self, x, hidden=None):sequence_length, batch_size = x.size()if hidden is None:h_0 = x.data.new(self.num_layers, batch_size, self.hidden_dim).fill_(0).float()c_0 = x.data.new(self.num_layers, batch_size, self.hidden_dim).fill_(0).float()else:h_0, c_0 = hidden# embeds shape (sequence_length, batch_size, embedding_dim )embeds = self.embedding(x)# output shape (sequence_length, batch_size, hidden_dim*(2 if bidirectional else 1) )output, hidden = self.lstm(embeds, (h_0, c_0))# output shape (sequence_length*batch, vocab_size)output = self.linear(output.view(sequence_length*batch_size, -1))return output, hidden

效果

续写诗词

床前明月光开头(config.py文件中设置了生成诗词的最大长度)

床前明月光,悬宫三月时。
持刀直射楚,为璧黄金葳。
双双坠解腰,百尺千朵垂。
自君不及之,轩与兔与丝。
且有一杯情,使我长思期。
世情尚多歎,旧态难再持。
何况杏园树,君是今日池。
素宴众人见,春风生绿池。
物物不自辨,羞与醉中移。
复此花中月,尔我自相依。
不如花落屋,歎去蝶萦枝。

写藏头诗

我有一弦歌,自顾有馀滓。
爱君一曲诗,价以随人杰。
学非不博物,莫系好风调。
习之白雪来,系书换人卧。

文件说明

文件目录

文件 作用
config.py 各项配置
data.py 生成合适的训练的数据
model.py 主要使用的模型
generate.py 生成诗句
main.py 训练模型
test.py 测试/使用模型生成诗句
langconv.py zn_wiki.py 繁简体转换
app.py flask 入口

参考

  • https://github.com/justdark/pytorch-poetry-gen
  • https://github.com/braveryCHR/LSTM_poem
  • https://github.com/skydark/nstools/tree/master/zhtools 繁简体转换

pytorch_LSTM_写诗相关推荐

  1. 清华团队让 AI 写诗“更上一层楼”,诗歌图灵测试迷惑近半数玩家

    作者 | 黄珊 来源 | 数据实战派 比特币 外挖无穷洞,机神犹未休. 卡中窥币影,池里验沙流. 屡载吸金主,孤深渍盗求. 方知区块链,本是古来游. 这首诗歌来自一支清华团队开发的古诗 AI.它的创作 ...

  2. TinyMind邀你写诗!100小时GPU,等你来领取!

    在所有喜怒哀乐都能用"卧槽"两字表达的今天,唐诗宋词就像一股清泉,细细品味,甘甜自知.那些悲伤离别,经历过才懂得"一任阶前点滴到天明",家国天下,壮志难酬,最终 ...

  3. 深度丨AI挑战人类情感!机器人写诗出书背后透露了什么?

    继在围棋人机大战中,顶级人类选手完败给人工智能后,人工智能机器人就不断刷爆人们的眼球.地震中机器人6秒写新闻稿.医院里"人工智能"医生0.05秒诊断一起病例.工程现场机器人给排水管 ...

  4. Pytorch+LSTM+AI自动写诗实战

    文章目录 1.数据集和任务定义 2.读取数据集 3.数据预处理 4.数据制作 5.定义网络结构: 6.测试网络 7.可视化 8.总结 1.数据集和任务定义 本次采用的是唐诗数据集,一共有接近60000 ...

  5. 重构代码(应如写诗)

    背景 最近公司做了个项目,深深体会到架构设计以及代码优化有多么的重要. 回头看自己的代码都觉得特别混乱,有时候还要看很久才能看懂,可扩展性特别差,完全是为了完成需求而编码的.说得形象一点就像修水管,最 ...

  6. PaperWeekly 第二十三期 --- 机器写诗

    引言 什么是艺术? 机器的作品能否叫艺术? 机器能否取代艺术家? 这些问题,相信不同的人,会有不同的答案.很多人认为机器生成的作品只是简单的模仿人类,没有创造性可言,但是人类艺术家,不也是从模仿和学习 ...

  7. 为你写诗:3 步搭建 Serverless AI 应用

    作者 | 杜万(倚贤) 阿里巴巴技术专家 本文整理自 1 月 2 日社群分享,每月 2 场高质量分享,点击加入社群. 关注"阿里巴巴云原生"公众号,回复关键词 0102 即可下载本 ...

  8. 急速搭建 Serverless AI 应用:为你写诗

    前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): [函数计算](https://statistics.functioncompute.com/?titl ...

  9. “天猫精灵”如何为你写诗?人机共创的秘密在这儿

    阿里妹导读:在AlphaGo人机大战之后,AI在模仿学习人的能力上得到了关注.同时,一种焦虑也在人们心中蔓延,我们的工作何时会被AI替代? 阿里巴巴人工智能实验室用好玩的"天猫精灵写诗&qu ...

最新文章

  1. 从头开始学习vue-router
  2. 如何利用Delphi释放所占的内存
  3. Apache web服务
  4. Apache Cassandra和Java入门(第二部分)
  5. 透明大页相关内核参数_透明大内存页Hugepage支持
  6. linux shell 变量命令,shell - 如何在Bash中将变量设置为命令的输出?
  7. java项目打成war包,使用ide打包部署在tomcat中
  8. stata抓取html,Stata 网页表格爬取示例
  9. ogg格式文件怎么转mp3格式
  10. java邮箱exchange_Exchange服务器之java mail 使用:exchange邮箱
  11. 百度网盘linux版本怎么安装
  12. 东方财富:公司总经理陶涛辞任 其实将担任总经理职务
  13. Dubbo 第一章:详情版
  14. 给kvm虚机开放对外访问的端口
  15. Transformer15
  16. 并行计算范式-SIMD vs SIMT vs SMT: What’s the Difference Between Parallel Processing Models?
  17. [Ajax]异步的 JavaScript 和 XML:Ajax入门教程(整理)
  18. 如何写出高效的代码?(持续更新)
  19. 如何使用 apt-get、apt-cache、apt-file 命令管理包
  20. 拨开云雾学习之计算机漫游

热门文章

  1. 二分类最优阈值确定_分类问题的评估指标一览
  2. Hystrix的三种状态
  3. Unity TextMeshPro 毛边问题
  4. 2012服务器系统怎么样设启动项,Windows2012开机启动项设置
  5. 金笛邮件网关为企业打造最强防垃圾邮件安全网
  6. php随机给文字拼音,汉字转化为拼音(php版)
  7. Python忽略警告ignore warning
  8. PKI和X509证书
  9. PM进阶之路 | 产品设计规范
  10. matlab latex换行,Latex 公式中换行问题