分享

程序员眼中的《全唐诗》,竟然是这样的……

 晨钟声鸣万物欣 2022-05-18 发布于湖北

图片

一部《全唐诗》里有四万多首诗,也许穷尽我们一生都无法全部读完,不过,在这个大数据时代,有人发明了《全唐诗》的另类读法。当《全唐诗》遇上“大数据”,结果会怎样?

《全唐诗》中出现频率最高的字:人

对《全唐诗》采取逐字切分的处理方式,同时去掉一些常见的虚词,如“之乎者也”。经过文本预处理后,就可以进行文本挖掘中最常规的分析——字频统计。

出人意料的是,《全唐诗》中出现最多的不是风花雪月,而是“人”。

李白有很多故人,他说“故人西辞黄鹤楼”

杜甫感叹着人生,他写“人生有情泪沾臆”

白居易爱管人间之事,他愿“天上人间会相见”

“人”,是唐诗的魂魄

图片

《全唐诗》中最常见的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超强的“记忆能力”---记住了诗歌文本序列中的时空依赖关系。

在生成的诗句中,某些诗句还是蛮有意思的,上下联间的意象有很强的相关性。下面是多次生成中产生的较有趣的诗句:

是的,这不是唐朝人写的,是程序猿小哥哥指挥电脑写的!!!

图片

惆怅山林老,相思在白云

寒泉漱玉井,清水浸琉璃

莫言花上月,谁得见芳菲

春风江畔月斜晖,一去山河一别离

谁念东西无限事,可怜杨柳从春风

……

这些句子看着还不错呢,怎么样?你和你的小伙伴是不是已经惊呆了?

图片

计算机也许永远无法比过李白和杜甫,但它总归是人类前进的方向,用大数据玩《全唐诗》,给我们提供了无限的可能,读完你会发现,文科与理科,在诗的世界里并没有那么泾渭分明,对审美的追求,对诗性的渴望,是每一个人心中固有的基因。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多