春节前用 GPT2 训练了一个自动对联系统:鼠年春节,用 GPT-2 自动生成(写)春联和对对联 ,逻辑上来说这套NLG方法论可以应用于任何领域文本的自动生成,当然,格式越固定越好,这让我自然想到了自动写诗词,诗词的格式相对比较固定,我们之前已经有所涉及,譬如已经在AINLP公众号上上线了自动写藏头诗和首字诗的功能,不过是直接复用的:"自动作诗机"上线,代码和数据都是公开的 ,另外还有一个更大的诗词数据项目可以用作自动作诗的“原料”:【Github】Chinese-poetry: 最全中华古诗词数据库,加上 GPT2-Chinese 这个项目:【Github】GPT2-Chinese:中文的GPT2训练代码 ,可以说万事俱备,只欠试用。

所以本周我们从五言绝句开始继续自然语言生成的主题,关于五言绝句,百度百科是这样说的:

五言绝句是中国传统诗歌的一种体裁,简称五绝,是指五言四句而又合乎律诗规范的小诗,属于近体诗范畴。此体源于汉代乐府小诗,深受六朝民歌影响,成熟定型于唐代。五绝每首仅二十字,便能展现出一幅幅清新的图画,传达一种种真切的意境。因小见大,以少总多,在短章中包含着丰富的内容,是其最大特色。五绝有仄起、平起二格。代表作品有王维的《鸟鸣涧》、李白的《静夜思》、杜甫的《八阵图》、王之涣的《登鹳雀楼》、刘长卿的《送灵澈上人》等。

我主要用了 Chinese-poetry 里的《全唐诗》和《全宋诗》数据 ,首先向这个项目的作者致敬:

《全唐诗》是清康熙四十四年(1705年),彭定求、沈三曾、杨中讷、汪士鋐、汪绎、俞梅、徐树本、车鼎晋、潘从律、查嗣瑮10人奉敕编校,“得诗四万八千九百余首,凡二千二百余人”, 共计900卷,目录12卷。 来自百科

《全宋诗》继唐诗的高度繁荣之后,宋诗在思想内容和艺术表现上有新的开拓和创造,出现了许多优秀作家作品,形成了许多流派,对元、明、清的诗歌发展产生了深远影响。

说明

《全唐诗》和《全宋诗》是繁体存储, 如有需要请自己转换, 但转换后的字不符合上下文。

这里需要首先通过OpenCC做了繁简转换,其次提取里面的五言绝句,最后转换为 GPT2-Chinese 的训练格式,然后就是训练和测试了,感兴趣的同学可以自己尝试,很方便,训练经验可以复用上文关于自动对联的:

1)训练数据可以按 GPT2-Chinese 训练数据的格式要求写个脚本进行转换,可以加一些标记符,这样在生成的时候可以基于这些标记符做trick;

2)训练时请将参数 min-length 设置为一个较小的数字,默认为128,由于对联数据长度比较短,按默认的设置训练后只会得到乱码,我直接设置为1;

3)根据自己GPU显存的大小调整 batch_size 和配置参数, 这里 batch_size 默认为8,训练时在1080TI的机器上会出现OOM,将其设置为4就可以完全跑通了,其他参数不用动;

自动作诗GPT2模型训练完成后,可以直接基于 GPT2-Chinese 里面的 generate.py 脚本进行测试,很方便,我基于 generate.py 和 flask-restful 写了一个 server 版本,对接到AINLP公众号后台了,感兴趣的同学可以关注AINLP公众号,直接进行测试:

关键词“写诗/作诗”触发诗歌的自动生成,例如输入“写诗春”,自动作诗模型会基于“春”进行自动续写,会给出以“春”开头的诗,给出其他的字同理,目前不能多于五个字,因为只能自动生成五言绝句:

关键词“藏头诗”触发藏头诗生成,例如输入“藏头诗春夏秋冬",基于GPT2模型叠加trick生成:

最后,欢迎关注AINLP公众号,测试自动写诗作诗和藏头诗生成器功能:

关于AINLP对话功能模块,感兴趣的同学可以参考:

如果对AINLP公众号感兴趣,也欢迎参考我们的年度阅读清单:AINLP年度阅读收藏清单

python藏头诗生成器_藏头诗生成器相关推荐

  1. python为什么流行头上长草_为什么“头上长草”一夜之间成为爆品?

    为什么"头上长草"一夜之间成为爆品? [attachment=7009230] 这个被称为卖萌神器的小草发夹,最早的原型是漫画人物颜文字君. 凭借头上长草.画风简洁.表情卖萌等特点 ...

  2. Python PaddleNLP实现自动生成虎年藏头诗

    这篇文章主要介绍了利用Python PaddleNLP实现自动生成虎年藏头诗功能,文中的示例代码讲解详细,感兴趣的同学可以跟随小编一起试一试.Python编程学习资料点击免费领取 目录 1.paddl ...

  3. 中段尾段全段什么意思_什么头什么尾?汽车改装排气时有的换全段,中尾段,尾段,分别都有什么效果?...

    什么头什么尾? 什么头什么尾? 蚕头燕尾形容书法起笔凝重,结笔轻疾. 藏头露尾藏起了头,露出了尾.形容说话躲躲闪闪,不把真实情况全部讲出来. 彻头彻尾彻:通,透.从头到尾,全部,十足的意思. 大头小尾 ...

  4. java秃头表情包_最怕空气突然的安静表情包 - 最怕空气突然的安静微信表情包 - 最怕空气突然的安静QQ表情包 - 发表情 fabiaoqing.com...

    最怕空气突然安静最怕大乔突然关心_最怕_大乔_突然_安静_关心表情 突然登场 - 最怕空气突然的安静 ​_突然表情 突然抱紧 - 最怕空气突然的安静 ​_突然表情 突然兴奋 - 最怕空气突然的安静 ​ ...

  5. 九头身美女_百度百科

    九头身美女_百度百科 九头身美女

  6. 植发搞笑图片_搞笑秃头图片大全_关于秃顶的搞笑图片

    罗志祥昨日微博发秃头照 变成搞笑阿伯(图) 319x464 - 20KB - JPEG 秃顶狗新发型 --东方图片 492x352 - 162KB - JPEG [星8卦]秃顶版皮特,搞笑版金刚狼!明 ...

  7. 两塑胶柱脚光纤端子_插销两个塑胶柱光纤端子_无塑胶柱光纤端子_无锁螺丝头光纤端子_塑胶双柱脚光纤端子_两塑胶柱无锁螺丝孔光纤端子

    两塑胶柱脚光纤座子_插销两个塑胶柱光纤座子_无塑胶柱光纤座子_无锁螺丝头光纤座子_塑胶双柱脚光纤座子_两塑胶柱无锁螺丝孔光纤座子 光纤耦合器TOSLINK是一种将数字电信号转换为光信号以传输数据的光传 ...

  8. 怎么确定迭代器后面还有至少两个值_如何理解Python中的可迭代对象、迭代器和生成器

    ▍前言 在讨论可迭代对象.迭代器和生成器之前,先说明一下迭代器模式(iterator pattern),维基百科这么解释: 迭代器是一种最简单也最常见的设计模式.它可以让用户透过特定的接口巡访容器中的 ...

  9. HTTP_响应消息_响应头

    2. 响应头:     1. 格式:头名称: 值     2. 常见的响应头:         1. Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式         2. C ...

  10. HTTP_请求消息_请求头请求体

    2. 请求头:客户端浏览器告诉服务器一些信息         请求头名称: 请求头值         * 常见的请求头:             1. User-Agent:浏览器告诉服务器,我访问你 ...

最新文章

  1. Python:UTF-8编码转换成GBK编码
  2. 1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器
  3. mysql回滚用法_Mysql误操作后利用binlog2sql快速回滚的方法详解
  4. Java日志框架-Logback手册中文版以及官方配置文档教程
  5. 为js和css文件自动添加版本号
  6. qq邮箱格式的Java代码_Java实现QQ邮件发送
  7. RobotFramework操作API
  8. python 类装饰器和函数装饰器区别_python进阶之装饰器之4在类中定义装饰器,将装饰器定义为类,两者的区别与联系...
  9. python库读取cif文件_Pymatgen读/写各种文件,pymatgen,读写
  10. 景色宜人的openeim001
  11. Educational Codeforces Round 58
  12. 双刃剃须刀行业调研报告 - 市场现状分析与发展前景预测
  13. 进阶!基于CentOS7系统使用cobbler实现单台服务器批量自动化安装不同版本系统(week3_day5_part2)-技术流ken...
  14. 下列软件包有未满足的依赖关系: cmake-qt-gui : 依赖: cmake (= 3.10.2-1ubuntu2) E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依
  15. python批量发送邮件_python批量发邮件
  16. 基于STM32F429动态信号测试分析系统
  17. [Python爬虫]爬取东方财富网公司公告需要注意的几个问题
  18. 迅雷 java_Java实现迅雷地址转成普通地址实例代码
  19. 全国计算机职称考试excel2003,全国计算机职称考试excel2003题库及答案.pdf
  20. Android——跟随手指的小猫咪

热门文章

  1. ESP32使用MLX90614红外测温传感器
  2. 关于nvidia-smi和nvidia -V即nvidia --verison的命令说明
  3. Intel出品开源图片标注工具CVAT在Ubuntu18.04上部署
  4. 高速公路安全驾驶知识
  5. iOS 音乐播放器demo讲解
  6. android wp模拟器,玩家必看,WP8 ROM模拟器游戏图文教程
  7. 教你如何去掉桌面图标的蓝底
  8. 7-5 有理数比较 (10 分)
  9. jenkins构建报错: ssh: connect to host github.com port 22: Connection timed out
  10. 什么是flex布局,它的常用属性有哪些