如何用Python轻松搞定藏头诗

Python040

如何用Python轻松搞定藏头诗,第1张

整个诗句生成的逻辑是这样的,先根据输入语句爬取符合要求的诗句(来自百度汉语),再根据更多样化的需求定制“新诗”。

藏头诗生成器的功能主要有生成藏头诗、生成藏尾诗,生成同时藏头并藏尾的诗句,生成句句押韵的藏头诗。

在百度搜索“我开头的诗句”,可以进入到百度汉语的页面,该页面会显示所有以“我”字开头的诗句。

而诗句的爬取非常简单,只需要对指定的参数做修改即可获取这些包含目标诗句的json数据,wd控制查询语句,pn控制翻页。

另外这里对诗句进行字数的限制,我们仅保存七言或是五言诗句。

在这个模块中,我们将需要藏入诗句中的语句按字分开,对其中每一个字进行对应诗句的爬取,每一个字都随机选择一个诗句并拼接成诗。

拿“我喜欢你”当个例子,我们可以生成类似这样的藏头诗。

为了看起来更加高端大气上档次,我加入了这个押韵模块,押韵是一种诗文创作的修饰技巧,使诗文读起来十分顺口、悦耳。

该模块实现的押韵略有不同,每一句的句尾不仅仅是韵母相同,它们的拼音(除了音调)完全相同。

这里引入的是pypinyin模块,将这些藏头诗句做出筛选,选择有相同韵脚的诗句拼接。

这个模块的目标是生成既藏头又藏尾的句子,比如我想生成藏头「老肥」,藏尾「牛逼」,我只需要在所有老字开头的诗句里面找到肥字结尾的诗句,在所有牛字开头的诗句中找到逼字结尾的。这件事稍微有些困难(字数越多,难度越大),几乎很难呈现出目标诗句。

a=['诗名1:xxx','诗名2:xxx']

b=['作者1:xxx','作者2:xxx']

c=['诗文1:xxx','诗文2:xxx']

d=['诗体1:xxx','诗体2:xxx']

for i in range(len(a)):

 for j in (a,b,c,d):

     print(j[i])

 print()

代码:

运行结果:

微信小程序诗词多宫格通过智能转换得到诗之精华。 Word转到Excel,然后从Excel转MySQL,最后清洗MySQL数据。诗词注释,是用Python爬虫从百度文库爬取到MySQL中。后来在CSDN上找到了一个诗词库,通过去重,丰富到了422首。免费获取诗词库的可以继续向下走 ),把它做到一个应用中:有搜索、有作者、有朝代、有内容、有收藏、有注解、有发音、有分享、有分类......岂不是将来检查孩子古诗背诵质量的神器(网上已经有不少这样的小工具了,