闲来无事能干嘛 用Python来玩诗歌接龙

作为一个懂Python爬虫的运维狗,闲来无事的时候总要找点乐子(睡觉不香么),哈哈,就是这么的敬业(其实是无聊)。今天网盾科技给大家讲讲怎么用Python爬虫来实现诗歌接龙,做好了一起来玩鸭!

该项目的思路如下:

利用爬虫爬取诗歌,制作诗歌语料库,然后将诗歌分句,形成字典:键(key)为该句首字的拼音,值(value)为该拼音对应的诗句,并将字典保存为pickle文件,读取pickle文件,编写程序,以exe文件形式运行该程序。

该项目实现的诗歌接龙,规则为下一句的首字与上一句的尾字的拼音(包括声调)一致。下面网盾科技将分步讲述该项目的实现过程。

诗歌语料库

首先,我们利用Python爬虫来爬取诗歌,制作语料库。爬取的页面如下:

爬取的诗歌

由于本文主要为试了展示该项目的思路,因此,只爬取了该页面中的唐诗三百首、古诗三百、宋词三百、宋词精选,一共大约1100多首诗歌。为了加速爬虫,采用并发实现爬虫,并保存到poem.txt文件。完整的Python程序如下:

该程序爬取了1100多首诗歌,并将诗歌保存至poem.txt文件,形成我们的诗歌语料库。当然,这些诗歌并不能直接使用,需要清理数据,比如有些诗歌标点不规范,有些并不是诗歌,只是诗歌的序等等,这个过程需要人工操作,虽然稍显麻烦,但为了后面的诗歌分句效果,也是值得的。

诗歌分句

有了诗歌语料库,我们需要对诗歌进行分句,分句的标准为:按照结尾为。?!进行分句,这可以用正则表达式实现。之后,将分句好的诗歌写成字典:键(key)为该句首字的拼音,值(value)为该拼音对应的诗句,并将字典保存为pickle文件。完整的Python代码如下:

我们可以看一下该pickle文件(poemDict.pk)的内容:

pickle文件的内容(部分)

当然,一个拼音可以对应多个诗歌。

诗歌接龙

读取pickle文件,编写程序,以exe文件形式运行该程序。为了能够在编译形成exe文件的时候不出错,我们需要改写xpinyin模块的init.py文件,将该文件的全部代码复制至mypinyin.py,并将代码中的下面这句代码

改写为

这样我们就完成了mypinyin.py文件。 接下来,我们需要编写诗歌接龙的代码(Poem_Jielong.py),完整代码如下:

现在整个项目的结构如下(Mandarin.dat文件从xpinyin模块对应的文件夹下复制过来):

项目文件

切换至该文件夹,输入以下命令即可生成exe文件:

pyinstaller -F Poem_jielong.py

生成的exe文件为Poem_jielong.exe,位于该文件夹的dist文件夹下。为了能够让exe成功运行,需要将poemDict.pk和Mandarin.dat文件复制到dist文件夹下。

测试运行

运行Poem_jielong.exe文件,页面如下:

exe文件开始页面

本项目的诗歌接龙有两种模式,一种为人工接龙,就是你先输入一句诗或一个字,然后就是计算机回复一句,你回复一句,负责诗歌接龙的规则;另一种模式为机器接龙,就是你先输入一句诗或一个字,机器会自动输出后面的接龙诗句(最多10个)。 先测试人工接龙模式:

人工接龙

再测试机器接龙模式:

机器接龙

经过上面的讲解,相信大家已经会用Python爬虫来实现诗歌接龙了,想知道更多全面的内容,请关注网盾科技。网盾科技15年专注互联网IDC服务,在网盾科技可以找到你们想要的服务器知识!

python编写程序输出诗句_闲来无事能干嘛 用Python来玩诗歌接龙相关推荐

  1. python编写程序输出诗句_编程小白是这样用python把唐诗玩坏的

    最近对编程比较感兴趣,于是请教程序猿朋友们,最后都推荐我学习Python.翻看教程几天后,碰巧遇到有朋友在玩唐诗乱搭的游戏,于是我就写了一段python程序(对于能否叫程序我一直很怀疑),挑了了很多的 ...

  2. python编写程序输出诗句_RPA交流——使用 python 写出诗一样的代码 (一)

    原标题:RPA交流--使用 python 写出诗一样的代码 (一) 下载RPA请访问:www.i-search.com.cn 学习RPA请访问:https://support.i-search.com ...

  3. python编写程序输出诗句_Python学习笔记(一)-- print语句

    print语句可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下: >>> print 'hello, world' 注意: 1.当我们在Python交 ...

  4. python编写程序输出诗句_Python一日一练02----诗词生成器

    要求 编写一段程序,可以自动生成小诗. 格式如下 源码 import random import sys articles = ["the", "a", &qu ...

  5. python编写程序输出诗句_Python文本处理简介:44行代码编写一个简单的隐藏诗生成器,python,入门,藏头诗...

    想必最近大家家庭群里最近都会看到这么一张图: 一惊,这什么玩意儿???后来一搜会发现里面不同的诗句来自于不同的古诗,嘛,这不是很好玩的一件事情吗?这次我们使用Github的唐诗宋词dataset:ht ...

  6. 用python编写程序判断奇偶_如何用python判断奇偶数

    问题分析:用Python编写一个程序,判断输入的数字是奇数还是偶数,并相应的输出信息,要判断一个数为奇数还是偶数,依据的是它被2除后的余数.因此可以用"%"运算符来计算并判断. 代 ...

  7. python编写程序解方程_第2章 Python初步 课后题

    [单选题]建设中国特色社会主义,把我国建设成为富强.民主.文明.和谐.美丽的社会主义现代化强国,是我国各族人民的( ) [简答题]案例系统的测试报告,提交时间为9月28日,上午九点之前 [单选题]一份 ...

  8. 以下选项中使python脚本程序转变为_以下选项中使python脚本程序转变为可执行程序的第三方库的是:...

    [多选题]拉式市场的供应链系统就是以客户为导向进行( ). [单选题]五行关系中"见肝之病,知肝传脾"是指 [单选题]已知立体的主视图和俯视图,正确的左视图是(         ) ...

  9. 怎么用python编写程序计算标准差_自学生信Python(第五天)|如何计算标准差?...

    如何计算标准差? 本人是一枚生物学的学生,由于对生物信息学特别感兴趣,于是想自学生物信息学(新手莫怪).了解到生物信息学要有编程基础,尤其是要会一门编程语言,例如:R语言.Python.Perl等,还 ...

最新文章

  1. Hive远程模式安装(1.00)
  2. mysql宠物种类表,mysql中的表操作
  3. java转换工具类_Java数据转换工具类
  4. 看完这篇,你还不能理解 ‘数据库架构’?趁早回家吧
  5. oKit项目管理软件试用及感受
  6. 《算法竞赛进阶指南》 0x50 动态规划
  7. fork/join和线程池_从fork-join /线程池调用的Singelton bean中的访问spring请求范围缓存...
  8. FABRIC单机开发者模式启动
  9. linux ftp匿名只能下载,04. 创建匿名用户能够上传下载,或只能下载的目录
  10. 飞桨模型保存_史上最全解读 | 飞桨模型库重大升级 主流算法模型全覆盖
  11. mme设备内部错误_低压配电设备常见故障分析,处理办法介绍
  12. App测试1-App测试概述
  13. [转]架构蓝图--软件架构 4+1 视图模型
  14. FIL WORLD全球化应用,WORLD量化助推Filecoin生态落地
  15. 新发的日常小实验——Ubuntu安装拼音输入法
  16. clover删除多余引导_clover如何删除无用启动项_常见问题解析,clover
  17. 苹果发布会2014发布会简单总结
  18. matlab求市场清算价格不停,MATLAB数学实验(201516年第2学期)试题题目及答案,课程2020最新期末考试题库,章节测验答案...
  19. Windows 平台安装 MongoDB数据库(检测是否安装成功、启动和关闭MongoDB数据库)
  20. 齐博 php7,齐博cmsv7.0后台getshell

热门文章

  1. 高新技术计算机应用能力考试,全国计算机信息高新技术考试(OSTA)-人社部职业资格证书...
  2. python星号和双星号的区别
  3. LSTM最好理解文章
  4. 使用Lombok的@AllArgsConstructor注解依赖注入时出现的错误解决
  5. 【学生党视角】CSDN问答功能测评以及改进建议
  6. 用windows10电脑升级ipad系统
  7. POL8901 LVDS转MIPI DSI 支持旋转图像处理芯片
  8. iOS是否是电话号码判断Demo
  9. WTL 绘制 圆角对话框 自绘对话框
  10. 艺赛旗RPA 网页处理系列(三):网页检查 / 审查小技巧