首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用python读诗词,人生自有诗意

春天开始,我们读诗。从“蒹葭苍苍”读到“庚寅以降”,从“采菊东篱”读到“明月天山”,从“坐看云起”读到“安得广厦”。一路读过,一路走来。人生自有诗意,生活仍有诗和远方。

04-03

2018

最近《中国诗词大会第三季》终于开播了,所谓“诗者,天地之心也”,我们都渴望诗意的你我,诗意的人生。作为诗词大会的忠实观众,我决定用数学的方法,感受一下文学的魅力。

本文主要分以下三部分:

1 爬取古诗文网上的诗词各1000首。

2 写一个可以作飞花令的小程序。

3 统计词频,制作词云。

读书不觉已春深,一寸光阴一寸金

☞首先爬取古诗文网上的1000首诗和1000首词。爬取的内容有诗词的标题、作者、朝代、原文和带有的标签。

https://www.gushiwen.org/shiwen/

☞分别爬取诗和词两部分的各前100页,每页10首,共2000首诗词,实际上古诗文网上收录的诗词曲文有四五万首之多。

☞把爬取的诗词直接存储在MongoDB数据库中,程序的运行结果如下。

☘☘

在古诗文网上,可以看到网友点赞数量最多的前五首词是:

1.《水调歌头·明月几时有》 苏轼

但愿人长久,千里共婵娟。

2.《沁园春·雪》 毛泽东

北国风光,千里冰封,万里雪飘。

3.《满江红·写怀》 岳飞

莫等闲,白了少年头,空悲切。

4.《念奴娇·赤壁怀古》 苏轼

大江东去浪淘尽,千古风流人物。

5.《卜算子·咏梅》 陆游

零落成泥碾作尘,只有香如故。

至此已经爬取了2000首诗词,下面可以把这些诗词当词库,做一个飞花令小游戏。

不到长城非好汉,屈指行程二万

➤看过中国诗词大会的朋友都知道,节目中飞花令这一环节很是刺激和精彩。于是写一个作飞花令的小程序,搜索1000首词中,含有“雨”字的词句。

➤运行结果显示,在1000首词中,有648句中带有“雨”字。一蓑烟雨、斜风细雨、空山新雨、春潮带雨,雨也确实是古诗词中很经常出现的意象。

在中国古诗词中,既有一份“空山新雨后”的清新,也有一份“却话巴山夜雨时”的深情;既有一份“东边日出西边雨”的哲思,也有一份“已是黄昏独自愁,更著风和雨”的惆怅。当然我们更希望,诗词像“春夜喜雨”一样滋润我们的心灵,春风化雨,润物无声。

读过了雨,我们再看看诗词中还有哪些出现频率比较高的意象。

雨横风狂三月暮,门掩黄昏,无计留春住

♫对诗词作词频统计,虽然python有自带的词频统计工具,但是古诗词和现代汉语不同,一字即一词,单字词占古汉语词汇统计信息的80%以上,可谓微言大义,字字千钧。

♫我们以1000首诗为例,对诗句进行“逐字切分”,统计出现的高频词汇,同时去掉“之、乎、者、也”等一些虚词和语气词。

♫运行结果显示了诗中出现频率最高的100个字,在1000首诗中有3934个不同的字,出现最多的是“人”字,果然秉承传统文化中“以人为本”的思想。

♪词云中排名前十的字依次是:人、一、花、日、风、山、月、我、天、春。

花、风、山、月、春等都是咏物抒怀或者写景诗中经常出现的意象。比如说一个“春”字,在古诗词中就有多种表达:

初春、新春,赞美自然新的生命力。“最是一年春好处,绝胜烟柳满皇都”,“等闲识得东风面,万紫千红总是春”。

惜春、伤春,暗喻春光虽美却易逝,感叹人生韶华易逝或国运不济。“国破山河在,城春草木深”,“问君能有几多愁,恰似一江春水像东流”。

送别、相思,“春风又绿江南岸,明月何时照我还”,“红豆生南国,春来发几枝?”。

到这里所有的任务都已经完成啦!但是用python读诗词,不仅仅只有这些,能了解和学习到的还有很多很多。

写在后面的话:

生活不止眼前的苟且,还有诗和远方的田野。远方很远,诗却很近,诗词是我们心底最亲近也最温暖的那份记忆。诗词和数学、计算机不同的是,我们接近他、了解他,不是因为被动的求解、求知,不是追求知识、学问,而是因为被他吸引、被他感动、被他召唤。在云端里爱诗,在泥土里生活,在岁月里一直洒脱!

参考:

1. 51CTO博客 书廉

http://blog.51cto.com/8456082/2052891

2. CSDN博客 Elin_24

3. 微信公众号 “运营喵是怎样炼成的”

苏格兰折耳喵

4. 书目 《中国诗词大会 第二季》

《中国诗词大会》栏目组编著

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180403G15BU700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券