前几天给大家介绍了有意思的藏头诗,今天我们就用Python来自己根据输入语句实现自动生成藏头藏尾诗吧。
整个诗句生成的逻辑是这样的,先根据输入语句爬取符合要求的诗句(来自百度汉语),再根据更多样化的需求定制“新诗”。
藏头诗生成器的功能主要有生成藏头诗、生成藏尾诗,生成同时藏头并藏尾的诗句,生成句句押韵的藏头诗。
爬取诗句
在百度搜索“我开头的诗句”,可以进入到百度汉语的页面,该页面会显示所有以“我”字开头的诗句。
而诗句的爬取非常简单,只需要对指定的参数做修改即可获取这些包含目标诗句的json数据,wd控制查询语句,pn控制翻页。
另外这里对诗句进行字数的限制,我们仅保存七言或是五言诗句。
随机藏头诗
在这个模块中,我们将需要藏入诗句中的语句按字分开,对其中每一个字进行对应诗句的爬取,每一个字都随机选择一个诗句并拼接成诗。
拿“我喜欢你”当个例子,我们可以生成类似这样的藏头诗。
句句押韵
为了看起来更加高端大气上档次,我加入了这个押韵模块,押韵是一种诗文创作的修饰技巧,使诗文读起来十分顺口、悦耳。
该模块实现的押韵略有不同,每一句的句尾不仅仅是韵母相同,它们的拼音(除了音调)完全相同。
这里引入的是pypinyin模块,将这些藏头诗句做出筛选,选择有相同韵脚的诗句拼接。
结果可以参照下面的例子,杰尼最可爱。
藏头且藏尾
这个模块的目标是生成既藏头又藏尾的句子,比如我想生成藏头「老肥」,藏尾「牛逼」,我只需要在所有老字开头的诗句里面找到肥字结尾的诗句,在所有牛字开头的诗句中找到逼字结尾的。这件事稍微有些困难(字数越多,难度越大),几乎很难呈现出目标诗句。
不知不觉就来到了第100篇原创啦,激动地搓手手,为了感谢父老乡亲们的支持,我给大家准备了一些小红包,在后台回复「666」即可参与!
——END——
推荐阅读
图像增强:灰度变换(Python实现)
解决滑动验证码的新姿势
手把手教你爬取研招网调剂信息