python编写程序输出诗句_闲来⽆事能⼲嘛⽤Python来玩诗歌
接龙
闲来⽆事能⼲嘛 ⽤Python来玩诗歌接龙
作为⼀个懂Python爬⾍的运维狗,闲来⽆事的时候总要点乐⼦(睡觉不⾹么),哈哈,就是这么的敬业(其实是⽆聊)。今天⽹盾科技给⼤家讲讲怎么⽤Python爬⾍来实现诗歌接龙,做好了⼀起来玩鸭!
该项⽬的思路如下:
利⽤爬⾍爬取诗歌,制作诗歌语料库,然后将诗歌分句,形成字典:键(key)为该句⾸字的拼⾳,值(value)为该拼⾳对应的诗句,并将字典保存为pickle⽂件,读取pickle⽂件,编写程序,以exe⽂件形式运⾏该程序。
该项⽬实现的诗歌接龙,规则为下⼀句的⾸字与上⼀句的尾字的拼⾳(包括声调)⼀致。下⾯⽹盾科技将分步讲述该项⽬的实现过程。
诗歌语料库
⾸先,我们利⽤Python爬⾍来爬取诗歌,制作语料库。爬取的页⾯如下:
爬取的诗歌
由于本⽂主要为试了展⽰该项⽬的思路,因此,只爬取了该页⾯中的唐诗三百⾸、古诗三百、宋词三百、宋词精选,⼀共⼤约1100多⾸诗歌。为了加速爬⾍,采⽤并发实现爬⾍,并保存到⽂件。完整的Python程序如下:
该程序爬取了1100多⾸诗歌,并将诗歌保存⾄⽂件,形成我们的诗歌语料库。当然,这些诗歌并不能直接使⽤,需要清理数据,⽐如有些诗歌标点不规范,有些并不是诗歌,只是诗歌的序等等,这个过程需要⼈⼯操作,虽然稍显⿇烦,但为了后⾯的诗歌分句效果,也是值得的。
诗歌分句
有了诗歌语料库,我们需要对诗歌进⾏分句,分句的标准为:按照结尾为。?!进⾏分句,这可以⽤正则表达式实现。之后,将分句好的诗歌写成字典:键(key)为该句⾸字的拼⾳,值(value)为该拼⾳对应的诗句,并将字典保存为pickle⽂件。完整的Python代码如下:
我们可以看⼀下该pickle⽂件(poemDict.pk)的内容:
pickle⽂件的内容(部分)
当然,⼀个拼⾳可以对应多个诗歌。
诗歌接龙
读取pickle⽂件,编写程序,以exe⽂件形式运⾏该程序。为了能够在编译形成exe⽂件的时候不出错,我们需要改写xpinyin模块的init.py ⽂件,将该⽂件的全部代码复制⾄mypinyin.py,并将代码中的下⾯这句代码
python怎么读取dat文件改写为
这样我们就完成了mypinyin.py⽂件。 接下来,我们需要编写诗歌接龙的代码(Poem_Jielong.py),完整代码如下:
现在整个项⽬的结构如下(Mandarin.dat⽂件从xpinyin模块对应的⽂件夹下复制过来):
项⽬⽂件
切换⾄该⽂件夹,输⼊以下命令即可⽣成exe⽂件:
pyinstaller -F Poem_jielong.py
⽣成的exe⽂件为,位于该⽂件夹的dist⽂件夹下。为了能够让exe成功运⾏,需要将poemDict.pk和Mandarin.dat⽂件复制到dist⽂件夹下。
测试运⾏
运⾏⽂件,页⾯如下:
exe⽂件开始页⾯
本项⽬的诗歌接龙有两种模式,⼀种为⼈⼯接龙,就是你先输⼊⼀句诗或⼀个字,然后就是计算机回复⼀句,你回复⼀句,负责诗歌接龙的规则;另⼀种模式为机器接龙,就是你先输⼊⼀句诗或⼀个字,机器会⾃动输出后⾯的接龙诗句(最多10个)。 先测试⼈⼯接龙模式:
⼈⼯接龙
再测试机器接龙模式:
机器接龙
经过上⾯的讲解,相信⼤家已经会⽤Python爬⾍来实现诗歌接龙了,想知道更多全⾯的内容,请关注⽹盾科技。⽹盾科技15年专注互联⽹IDC服务,在⽹盾科技可以到你们想要的服务器知识!