首先,展示一下项目最终结果:

                    

寒梅                                                           月夜

腊雪初开绿阴雨, 疏疏深处不相侵。            声声不断夜月明,竹影摇摇兮山云。
数点花枝无限意, 寒梅一片雪中吟。            阶下梧桐秋色冷,意长风月不可听。

秋思                                                              思乡
秋风吹雨雨霏霏,念客相思不见人。           夜来风雨风吹月,泊客风霏月满船。  
孤水不知无处处,独来春雨不知愁。           异人何处相思梦,念君无是故人归。
泊人风雨无人去,怀客相逢一鬓开。           悲声不分无人事,独尽谁怜一日时。  
漂漫江山无不寐,思君何处更相逢。           晚夜不堪春水去,怀人何处醉相思。

整个项目大体分为4部分:

  1. 30万首诗歌分类(基于Fasttext文本分类实现)
  2. 用户主题词,相似词计算(基于word2vec实现)
  3. 诗歌生成(应用tensorflow搭建的LSTM模型实现)
  4. 前端展示(flask框架做服务器+MySQL数据库保存+Android前端展示)

创新:

  • 诗歌中2/4/6/8句最后一个字押韵,按《汉字押韵字表》进行的筛选。
  • 诗歌类别针对性强,根据用户给定的主题词,生成以此主题为核心的诗歌。
  • 生成诗歌的每个字都经过《诗学含英》,进行了概率权重计算。

《诗学含英》此书是按韵分部,包罗天文地理,花木鸟兽,人物器物等的虚实应对。从单字到双字,三字对,五字对,七字对到十一字对,节奏明快琅琅上口,从中可得语音,修辞的训练。

整个项目的系统框架如下:

流程:

  1. 首先,把近30万首诗歌分为5类,分别训练5类诗歌的数据得到5个LSTM网络模型。

  2. 根据用户输入的主题词,由word2vec计算主题词与每类诗歌15个关键词的相似度,判断其最可能所属的类别。

  3. 再由所属类别的word2vec模型生成与主题词最相似的6个相似词,并结合主题词一同作为后续每句诗歌开头字的候选集合。

  4. 通过LSTM模型生成候选字,再通过《诗学含英》的概率权重计算,选择最终概率最高的作为生成字。

  5. 在生成2、4、6、8句诗的最后一个字时,按照《汉字押韵字表》进行筛选过滤,来实现押韵特征。

  6. 最后服务器将生成的诗歌返回给前端APP进行展示。

一 、诗歌分类:

首先,在古诗文网上爬取五类诗歌(边塞征战,写景咏物,山水田园,思乡羁旅,咏史怀古)各600首作为分类模型的训练数据。训练生成FastText分类模型。然后用此分类模型为近30万首诗歌分类。

二、用户主题词分类:

事先分别为五类诗歌设置15个关键词,然后以维基百科为语料训练得到维基百科的word2vec模型。根据用户输入的主题词,来与各类诗歌的关键词做相似度计算,判断主题词最可能所属的诗歌类别

三、用户主题词的相似词生成:

之后以分好类的五类诗歌为语料,训练得到各自的word2vec模型。判断主题词类别后,以其所属类别的word2vec模型,生成6个与主题词最相似的词,作为后续生成诗歌时,每句开头字的候选集合。

四、建立模型

采用深度学习框架tensorflow为五类诗歌分别建立长短期记忆网络模型(LSTM)。把主题词最相似的6个词作为每句诗的开头字的候选集合,并将LSTM模型生成的每个候选字通过《诗学含英》进行概率权重计算,最终选择概率最大的字作为生成字。在生成2/4/6/8句诗歌时,对最后一个字按照《汉字押韵字表》进行押韵筛选过滤,实现诗歌的押韵机制。

五、前端展示

以APP的形式与用户进行移动端展示。服务器端用的Flask框架,连接的MySQL数据库,用于保存用户注册的基本信息。在APP的主界面下,用户输入主题词,可选择生成此主题下的五言绝句、五言律诗、七言绝句、七言律诗,随后服务器将生成的诗歌返回到APP的主界面进行展示。

整个项目的五个模块,共五小节:

二节:https://blog.csdn.net/turbo_come/article/details/94153192#comments

三节:https://blog.csdn.net/Turbo_Come/article/details/96478565?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

四节:https://blog.csdn.net/Turbo_Come/article/details/99685056?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

五节:https://blog.csdn.net/Turbo_Come/article/details/100033041

自动写诗APP项目、基于python+Android实现(技术:LSTM+Fasttext分类+word2vec+Flask+mysql)第一节相关推荐

  1. 自动写诗APP项目、基于python+Android实现(技术:LSTM+Fasttext分类+word2vec+Flask+mysql)第三节

    二.用户主题词分类,相似词生成 1.word2vec模型原理 在主题词分类.候选词生成.选取时,都使用了word2vec模型.word2vec模型主要包含两部分:跳字模型(skip-gram)和连续词 ...

  2. 飞桨2.0应用案例教程 — 用BERT实现自动写诗

    用BERT实现自动写诗 作者:fiyen 日期:2021.06 摘要:本示例教程将会演示如何使用飞桨2.0以及PaddleNLP快速实现用BERT预训练模型生成高质量诗歌. 摘要 古诗,中华民族最高贵 ...

  3. Python数据分析初探项目 基于Python数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022年)

    Python 数据分析初探项目 基于 Python 数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022 年) Python 数据分析初探项目 基于 Python 数据可 ...

  4. 百度API实现自动写诗

    作者介绍 张琪,男,西安工程大学电子信息学院,2022级研究生 研究方向:机器视觉与人工智能 电子邮件:3126743452@qq.com 王泽宇,男,西安工程大学电子信息学院,2022级研究生,张宏 ...

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

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

  6. Springboot毕设项目基于WEB的延边旅游网 5jjp2java+VUE+Mybatis+Maven+Mysql+sprnig)

    Springboot毕设项目基于WEB的延边旅游网 5jjp2java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + ...

  7. Springboot毕设项目基于springboot的模拟面试平台 7tch0java+VUE+Mybatis+Maven+Mysql+sprnig)

    Springboot毕设项目基于springboot的模拟面试平台 7tch0java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomc ...

  8. springboot毕设项目基于Java酒店管理系统53blc(java+VUE+Mybatis+Maven+Mysql)

    springboot毕设项目基于Java酒店管理系统53blc(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql ...

  9. Springboot毕设项目基于springboot的城市智能出行rota7java+VUE+Mybatis+Maven+Mysql+sprnig)

    Springboot毕设项目基于springboot的城市智能出行rota7java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomca ...

  10. 微博app是用java写的吗_基于安卓Android第三方微博APP的设计(Eclipse)

    基于安卓Android第三方微博APP的设计(Eclipse)(论文11000字,程序代码) 摘要:Android系统是基于LINUX的手机操作系统,其最大的优势在于整个系统的开源性和免费性.本系统以 ...

最新文章

  1. 书评 | 如何让开发中的各种文档变活?《活文档》阅读总结
  2. 微信小程序性能优化之一
  3. mybaits二十三:二级缓存
  4. 如何实现在一个网页中弹出多个不同的小窗口
  5. JAVA并发篇_公平锁与非公平锁
  6. Spring AOP方法分析
  7. ionic 返回上一页,并刷新父页面
  8. matlab运行过程中出现找不到指定模块问题解决
  9. 【BZOJ-18532393】幸运数字Cirno的完美算数教室 容斥原理 + 爆搜 + 剪枝
  10. [支付宝]手机网站支付快速接入
  11. python文件读写到list_Python文件读写
  12. swoole各种服务器初步搭建
  13. 世界杯座位选择顺序总数
  14. android随机抽奖代码_随机抽奖生成器app下载|随机抽奖生成器软件下载_v1.0_9ht安卓下载...
  15. 【C#】Excel操作——两个Excel表格比较,如果相同跳过,如果不同将复制到一个表格
  16. Can not import avx core while this file exists
  17. 电大计算机形考试题,电大计算机形考试题1.doc
  18. 后端开发框架的具体内容是什么?
  19. k8s源码分析--kube-scheduler源码(一)
  20. 基于香蕉派平台的Raspberry Pi操作系统安装与配置

热门文章

  1. 初中信息技术说课稿_语文说课稿模板一等奖
  2. 小学计算机专业说课稿模板,小学信息技术计算机的小管家说课稿
  3. [篇五章二]_使用 USB 系统安装盘在真机上安装激活 Windows 10 LTSC 2021 中文企业版系统
  4. VSIX 安装失败解决方案
  5. java开发工程师实习日志
  6. Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用...
  7. 联想台式主机拆机教程_联想r400拆机教程 拆解电脑没那么难
  8. BoundsChecker
  9. 音乐播放器——SoundManager API介绍
  10. C语言入门教程,C语言学习教程(非常详细)