徐步高大数据分析全唐诗-逝水流云诗文画轩

徐步高
从牙牙学语时候的“白毛浮绿水”
到少年慕艾时代的“此物最相思”
唐诗,一直陪着我们
不像宋词那样精致艳丽
不像乐府那样低调奢华
唐诗,有一种浑然天成的气韵
穿过千年岁月,依然震撼人心
一部《全唐诗》里,有四万多首诗
也许穷尽我们一生
都无法全部读完
不过,在这个大数据时代
有人发明了《全唐诗》的另类读法
想知道《全唐诗》里
出现最多的字是哪一个吗?
想知道唐代诗人们
最常表达哪一种情感吗?
当《全唐诗》遇上大数据
这些都不再是秘密
而结果,可能很出人意料哦~

《全唐诗》是清康熙四十四年(1705年),彭定求等10人奉敕编校,“得诗四万八千九百余首,凡二千二百余人”,共计900卷,编成之后,康熙亲自作序,由曹寅奉旨刊刻。后来又经过历代学者的增补、校正,目前比较通行的版本是“中华书局”《全唐诗(增订本)》,一共十五册,收录了《全唐诗补编》等研究成果,可以说是“最全的一部《全唐诗》”。”
《全唐诗》中出现频率最高的字:人
对《全唐诗》采取逐字切分的处理方式,同时去掉一些常见的虚词,如“之”、“乎”、“者”、“也”。经过文本预处理后,就可以进行文本挖掘中最常规的分析——字频统计。
出人意料的是,《全唐诗》中出现最多的
不是风花雪月,而是“人”
李白有很多故人,他说“故人西辞黄鹤楼”
杜甫感叹着人生,他写“人生有情泪沾臆”
白居易爱管人间之事,他愿“天上人间会相见”
“人”,是唐诗的魂魄

《全唐诗》中最常见的148个字排名如下:
照着这张表,你可以找人玩《飞花令》了~
小诗妹忍不住先拿排名前七的来了一局——
人生得意须尽欢
蓬山此去无多路
大漠风尘日色昏
孤城落日斗兵稀
梁家画阁天中起
将船买酒白云边
渔舟逐水爱山春

《全唐诗》中出现最多的季节:春
这个,你可能已经猜到了吧
春天万物生发,确实让人有写诗的欲望
看见山山水水,别犹豫,写一首
看见花花草草,别客气,写一首
看见春游的美人,那更是要写一首的
春,是唐诗的梦幻

《全唐诗》中出现最多的颜色:绿、白
小诗妹找了51个古语中常用的颜色的单字
注意是古汉语语境中的颜色称谓
主要的色系有——
红色系(红、丹、朱、赤、绛等)
黑色系(暗、玄、乌、冥、墨等)
绿色系(绿、碧、翠、苍等)
白色系(白、素、皎、皓等)
这些颜色及其对应的字频如下表所示:

这里面“白”字的字频最高
本意是“日出与日落之间的天色”
常见的有“白发”、“白云”、“白雪”
常渲染出一种韶华易逝、悲凉的气氛
白发三千丈,缘愁似个长
乘兴轻舟无近远,白云明月吊湘娥
居延城外猎天骄,白草连天野火烧
将上述主要的色系综合统计一下
得到下面的环形占比图:

在《全唐诗》的色谱上
出现最多的色系是绿色系
“绿树”、“碧水”、“苍松”、“翠柳”
这些高频字从侧面反映出全唐诗中
描写景物、寄情山水的诗句占比很大,
透露出平静、清新和闲适之感。
《全唐诗》中的绿色,
是“绿树村边合,青山郭外斜”
是“客路青山外,行舟绿水前”
绿得自然,绿得惬意
白,绿,是唐诗的基准色
《全唐诗》中出现最多的双字词
汉语的语素大都是由单音节(字)表示,即所谓的“一音一义”。当这些单音节语素,能够独立应用的话,就是词。古汉语中存在着许多单音节词,这也就是文言文翻译中要经常把一个字翻译成现代汉语中双音节词的原因。
有些单音节语素,不能够独立使用,就不是词,只能够是语素,如“第~“、”踌~“、”-~们“。唐诗中的常用双字词都有哪些呢?

经过程序猿小哥哥的神秘运算,
以下是TOP200的共现双字词:

从上面的双词探测结果中,可以发现如下6类成词规律:
(1)复合式(A+B等于C):由两个字组成,这两个字分别代表意义,组成双音节的词,这类词出现的频次最多。比如,弟兄、砧杵、纪纲、捐躯、巡狩、犬吠。
(2)重叠式(AA等于A):琅琅、肃肃、忻忻、灼灼。
(3)叠音(AA不等于A):琅琅(单独拆开不能组其他词)、的的(拆开后的单字的词义不同)等。
(4)双声(声母相同):踌躇(声母都是c,分开各自无法组词)、参差(声母都是c)、缅邈(声母都是m)。
(5)叠韵(韵母相同):噫嘻(韵母是i)、缭绕(韵母是ao)、妖娆(韵母是ao)等。
(6)双音节拟声词:歔欷、咿哑等。
《全唐诗》中最重要的字眼是什么?

选取高频字的TOP148抽取共现关系,可以看到,上述的语义网络可以分为3个簇群,即橙系、紫系和绿系,TOP148高频字中,字体清晰可见字的近40个。圆圈的大小表示该字在语义网络中的影响力大小,在诗句中,这些字常以“字眼”的形式呈现,也就是诗文中精要的字。
橙系:北、流、马、草、闲、孤、逢、云等;
紫系:游、树、雨、回、笑、言、幽、清、白、野、行等
绿系:知、金、柳、难、愁、旧、仙、望、客。
其中,根据字的构成来看,绿系簇群中的字大多跟送别(好友)有关。
唐诗中出现最多的感情:悲

分析全唐诗中所表达出来的内在境界,也就是内在情感,为了丰富分析维度,采用7种细颗粒的情绪分类,即悲、惧、乐、怒、思、喜、忧。根据上面获取到的字向量,经过人工遴选后,得到可以用于训练的“情绪字典”,根据诗歌中常见的主题类别,七种情绪类别分为:
悲:愁、恸、痛、寡、哀、伤、嗟…
惧:谗、谤、患、罪、诈、惧、诬…
乐:悦、欣、乐、怡、洽、畅、愉…
怒:怒、雷、吼、霆、霹、猛、轰…
思:思、忆、怀、恨、吟、逢、期…
喜:喜、健、倩、贺、好、良、善…
忧:恤、忧、痾、虑、艰、遑、厄…
对《全唐诗》近5万首诗的情绪分析结果,展示如下:

出乎很多人的意料,
代表大唐气象的唐诗应该以
积极昂扬的情绪为主,
可最后却是“悲”、“思”、“忧”
这样的情绪占据主流,
而 “喜”、“乐”这样的情绪却占据末流!
“天地悠悠”是悲情的
“落木萧萧”是悲凉的
“黄沙百战”是悲壮的
“彩云易散”是悲伤的
悲,是唐诗的筋骨
《全唐诗》VS《全宋词》VS《全元曲》

从上面呈现的TOP10高频字和象限区块(左上角“唐诗”、右上角“宋词”和正下方“元曲”)来看,唐诗、宋词、元曲中出现的独有高频字依次是:
唐诗:唯、馀、始、鸟、含、尔、昔、兹、忽、栖、川、旌、戎、秦…
宋词:阑、沈、匆、帘、浓、约、淡、觞、蕊、屏、凝、笙、瑶、柔…
元曲:哥、俺、咱、孩、姐、吃、哩、科、厮、拿、你、叫、呀、呵…
从上面的关键字来看,唐诗、宋词和元曲各自的特征很鲜明:
唐诗:用字清澹高华、含蓄,诗味较浓,寄情山水和金戈铁马的特征明显。
宋词:所用的字体现出婉约、宛转柔美,表现的多是儿女情长,生活点滴。
元曲:所用的字生活气息浓重,通俗易懂、接地气、诙谐、洒脱和率真。


终极玩法:用深度循环神经网络自动写唐诗

上图是文本生成的简要原理图,是基于字符(字母和标点符号等单个字符串,以下统称为字符)进行模型构建,也就是说我们的输入和输出都是字符。举个栗子,假如我们有一个一句诗“胸中稳处即吾乡”,我们想要基于这句诗来构建LSTM,那么希望的到的结果是,输入“胸”,预测下一个字符为“中”;输入“中”时,预测下一个字符为“稳”…输入“吾”,预测下一个字符为“乡”,等等。
由于其中的原理过于繁复,涉及大量的code和数学公式,故仅展示生成的结果,训练的语料即经过预处理的《全唐诗》。
以“春雨”打头,生成500字的诗词,结果如下:

可以看见,其中的诗词大都围绕着“春”来展开,也就是打头的两个字引导了后续结果的生成,这多亏了LSTM超强的“记忆能力”---记住了诗歌文本序列中的时空依赖关系。
在生成的诗句中,某些诗句还是蛮有意思的,上下联间的意象有很强的相关性。下面是多次生成中产生的较有趣的诗句:
是的,这不是唐朝人写的,是程序猿小哥哥指挥电脑写的!!!

惆怅山林老,相思在白云
寒泉漱玉井,清水浸琉璃
莫言花上月,谁得见芳菲
春风江畔月斜晖,一去山河一别离
谁念东西无限事,可怜杨柳从春风
这是小诗妹觉得还不错的句子
怎么样?你和你的小伙伴
是不是已经惊呆了?!
计算机也许永远无法比过李白和杜甫
但它总归是人类前进的方向
用大数据玩《全唐诗》
给我们提供了无限的可能
读完你会发现,文科与理科
在诗的世界里并没有那么泾渭分明
对审美的追求,对诗性的渴望
是每一个人心中固有的基因
【版权声明】本文由诗词中国整理,大数据分析来源于公众号运营喵是怎样炼成的(ID:yymzylc),本文经作者授权后发表。作者:苏格兰折耳喵,个人微信:g18818233178,欢迎以文会友。
长按·识别·关注
微信号:shicizg
唤醒生命中的诗意