热点 互联网

计算机告诉你,唐朝诗人之间的关系到底什么样?

前进四先生 发表于  2017-03-15 11:28

在我还念中学的时候,每当心情不好,就靠读诗词来排遣,慢慢读得多了,就发现唐朝诗人之间存在着微妙的关系。比如杜甫非常喜欢李白,到了做梦都想见李白的地步:三夜频梦君,情亲见君意(《梦李白》)。而李白向孟浩然表过白:吾爱孟夫子,风流天下闻(《赠孟浩然》)。孟浩然的好基友则是王昌龄:数年同笔砚,兹夕间衾裯(《送王昌龄之岭南》)。

出于好奇心,我一度想理清楚他们之间的关系。但是全唐诗一共四万多首,再加上诗人之间经常称呼对方的别称,整理起来非常麻烦,慢慢的也就绝了这个念头。

前不久又想起来这段十五年前的心事。事不宜迟,拖了这么多年的愿望,不能再拖了。

这次,我将编程完成这件事。

前面已经说过,这件事主要的麻烦在于以下两点:

  • 全唐诗数量太多,一共四万多首。
  • 诗人的别称太多,比如杜甫:按字称为子美,按排行称为杜二,按官职称为杜工部。

 

至于第一点,我们现在用计算机来做,再多也无所谓。第二点则稍微费事一点,我们使用哈佛大学编纂的《中国历代人物传记资料库》(China Biographical Database Project,以下简称CBDB),CBDB记录了中国历代名人的传记资料,并保存在关系型数据库中。

1. 利用CBDB查找诗人的别名

CBDB由很多张表组成,每张表记录了人物的不同信息,我们只用到了其中两张表,人物的主要信息表:BIOG_MAIN和人物的别名表:ALTNAME_DATA

首先从BIOG_MAIN中查询出人物编号c_personid,接着用c_personid从ALTNAME_DATA中查询出别名。

下面我给大家演示一下如何从CBDB中查询杜甫的别称。

图中能够看到杜甫有三个别称:子美、杜二、杜工部。

当然也有很多重名的现象,比如我们查询王维。

会找出一堆叫王维的,这个时候,我们就要使用生卒年来判定:这个人物到底是不是唐朝的。这次要从数据库中查询人物的生卒年。

唐朝建立于618年,灭亡于907年。对比后立刻发现,第二个王维才是我们要找的诗人王维。

查询别名核实一下:

看到了熟悉的王右丞和摩诘,没错,这正是王维同学。

由于CBDB收罗的历史人物太多,重名现象非常严重。经过一番探索,最终设置了如下的排除重名策略:

1.如果人物生卒年俱全,那么只要生卒区间和唐朝持续时间有交集即可。如果存在这样的诗人,那么直接把这个人作为全唐诗中的作者。

2.如果人物只有生年或者卒年,那么生年或卒年必须在唐朝的持续时间内。将这样的人加入候选人列表。

3.如果人物生卒年都不详,那么舍弃之。

经过这三条判断之后:

  • 如果候选人列表为空,那么说明CBDB中没有目标人选,舍弃这位诗人。
  • 如果候选人多于一个,则说明排除重名失败,舍弃这位诗人。

 

这种策略并不完美,存在部分注明诗人被舍弃的情况。为此我手动添加了他们:

还有部分诗人的别称比较尴尬,属于唐诗中的常用词,需要手动去除。如下:

过这一番筛选,全唐诗中原本的2609位作者,只剩下了762位。这就够了,著名的诗人都在这个列表当中,接下来我们只关心这762位诗人之间的关系。

2. 搜索诗人之间的引用关系

利用上面的诗人及别称列表,我们在全唐诗中来搜索诗人之间的引用关系。

规则是:诗的标题和正文中只要提到过对方,那么两者之间的引用关系加1。一首诗如果提到多次对方,只算一次引用。

经过计算机一番运转,最终得到了引用关系表。

2.1 李白和杜甫之间的引用关系

首先来检查一下李白和杜甫之间的引用关系:

不错,杜甫写了12首与李白有关的诗,李白则只有3首与杜甫有关的诗。李白这种朋友,确实差劲了一点啊……

从这张图也可以看出,我们的程序能够识别出诗人的别名,比如杜甫的《寄李十二白二十韵》和李白的《鲁郡东石门送杜二甫》都没有直接提到对方的名字。

2.2 引用关系排名

我给诗人之间的引用关系排了个座次,下面显示了排名前三十的引用关系:

我们看到,全唐诗中排名第一的好基友绝对是陆龟蒙和皮日休。这两位互相提到对方的次数都在百次以上,这是因为陆龟蒙和皮日休特别喜欢唱和,你写一首送我,我再回一首赠你,跟现在微博大V之间的互动差不多。这两位常年唱和,最后将往来的唱和诗作编写了中国文学史上的第一本唱和诗集:《松陵集》。为了不辜负他们之间的友谊,文学史上通常将两者合称为“皮陆”。

并列第二的则是白居易和刘禹锡、白居易和元稹。白居易和刘禹锡同年(772年)出生,从政道路都是各种被贬谪。两人都很长寿,刘禹锡71岁时去世,白居易则活了75岁。白居易在得知刘禹锡去世的消息时,写下了千古名句:

四海齐名白与刘,百年交分两绸缪。
同贫同病退闲日,一死一生临老头。

白居易和元稹我不想多写了,大家只要知道二人在文学史上被合称为“元白”,就能想见二者的亲密关系了。

从排名前三十的引用关系来看,白居易绝对是唐朝诗人朋友圈中的明星,是大V中的大V。

3. 引用关系的可视化

只有引用关系列表岂不是有些干巴巴的,接下来才是本文的重头戏。我将使用ECharts来可视化诗人之间的引用关系,最终得到诗人们的社交网络。

3.1 全唐诗人社交网络图

因为一共有762位诗人,为了避免画出的图太拥挤,看不清,我只将前一百的引用关系图示化,如下图:

可能会看不清,请大家放大后再看。

图中:

  • 箭头表示诗人们之间的引用关系。比如说白居易引用了元稹,那么就有白居易指向元稹的箭头,元稹引用了白居易,相应的也有元稹指向白居易的箭头。
     
  • 箭头的粗细程度则表示了诗人们之间引用关系的强弱。白居易引用元稹的数量为167次,元稹引用白居易的数量为88次,那么白居易指向元稹的箭头就要粗一些。

 

图中清晰地显示除了唐朝诗人的两个大型朋友圈:杜甫-李白朋友圈、白居易朋友圈。没错,他们分别是盛唐和中唐两个时期的核心诗人。

虽然只画出了排名前一百的引用关系,但还是很拥挤。文学史上将唐诗根据时间划分为4个阶段:初唐、盛唐、中唐、晚唐。接下来我们就分别画出这四个阶段的社交网络图。

3.2 初唐诗人社交网络图

从箭头的粗细来看,初唐诗人中关系最好的是宋之问和沈铨期。这两位正是宫廷诗人的代表,他们两位确定了近体诗的格律,对仗等规则。粗略的说,近体诗的规则就是他们俩发明出来的。对了,他们俩在文学史上一般也合成“沈宋”哦,看来要成为好基友,没有文学史的认证是不行的。

3.3 盛唐诗人社交网络图

注:为了制图清晰,盛唐诗人社交网络只画出了引用数大于等于2的关系。

盛唐诗人的核心无疑是“李杜文章在,光焰万丈长”中提到的李白和杜甫了。我们再次看到,杜甫指向李白的箭头比李白指向杜甫的箭头要粗得多。而且盛唐的诗人们明显分为两群,一群以李白-杜甫为核心,一群以皇甫冉和刘长卿为核心,为什么有这样的局面?我也不知道,对文学史比较了解的朋友请在评论里赐教。

3.4 中唐诗人社交网络图

注:为了制图清晰,中唐诗人社交网络只画出了引用数大于等于2的关系。

中唐诗人社交网的特征很明显,各位诗人紧紧团结在以白居易、元稹、刘禹锡为核心的文坛政治局周围,勠力同心,同舟共济,为唐诗从浪漫主义向现实主义的伟大转折做出了历史性贡献。

3.5 晚唐诗人社交网络图

晚唐诗人的社交网络比较散乱,没有明显的核心。其中最重要的就是李商隐和杜牧了,他俩得到了文学史认证的“小李杜”好基友称号。

4. 总结

文章写到这里,我突然意识到,即使一个人对唐诗没有任何了解,他只要看这些社交网络图,就能立刻发现哪位诗人是同时代诗人的核心,哪位诗人的影响最大。这些都是很有用的信息。

而我们可以用计算机来分析任何时代的人物关系。中国恰好是历史文献最全的国家,如果能对这些文献统一做系统的分析,岂不是可以做出随着时间变化的历史人物关系图?

这在以前是不可能的事,现在随着计算机技术的发展和古典文献的数字化进程,逐渐有可能了。这当然是很大的工作量,任何个人都不可能实现。我想,有没有可能参考linux的开发过程,用开源的方式,大家一起来完成这件事。

我会将这一篇和《当我们读唐诗时,我们在读什么?》用到的python源码上传到github上,到时候感兴趣的朋友可以fork过来共同研究。我的github账号也是mrqianjinsi,欢迎大家关注。(编辑:游识猷)

编者的话:这是一个非常有意思的研究思路,提供的关系图谱也清晰明了,值得一读。不过,需要特别说明的是,这样的关系图谱并不一定是对唐代诗人社交关系的完整、准确反映。首先,《全唐诗》并非一个最完备的数据来源,在《全唐诗》的基础上后世研究者陆续拾遗补编了千余篇唐人作品;其次,古代诗人在写作、结集的过程中,会出现频繁的增删,文稿散佚也可能极大影响对诗人社交关系的体现;何况,单从数量分析而不考虑作者产量、早逝、年龄差、具体关系细节和个人习惯等等,本身也不足以完整反映诗人间联系。不过,作为近似的概貌和可视化,这是一种非常有趣的方法,也为新时期的文学研究提供了很好的思路。

 

热门评论

显示所有评论

全部评论(48)
  • 1楼
    2017-03-15 11:37 战猪不死

    震惊!唐朝时期官员与诗人之间不为人知的庞杂关系

    [44] 评论
  • 2楼
    2017-03-15 12:51 少侠请留步

    晚唐明明是皮陆啊.......

    引用文章内容:晚唐诗人的社交网络比较散乱,没有明显的核心。

    前面都说了

    引用文章内容:我们看到,全唐诗中排名第一的好基友绝对是陆龟蒙和皮日休。


    [0] 评论
  • 3楼
    2017-03-15 13:39 axiang

    是小学生学习大语文的利器!

    [2] 评论
  • 4楼
    2017-03-15 13:51 Alice_Lai_GZ

    只可惜,像王渤那样的,英年早逝了,不然也可以成为大V呀

    [7] 评论
  • 5楼
    2017-03-15 14:24 明月出燕山
    引用@少侠请留步 的话:晚唐明明是皮陆啊.......前面都说了

    但是皮陆和别人的关系不多,所以称不上核心

    [2] 评论
  • 6楼
    2017-03-15 14:29 明月出燕山

    其实从图上看,盛唐的王昌龄和中唐的韩愈、张籍也是核心

    [0] 评论
  • 7楼
    2017-03-15 16:08 五之神

    人才,厉害了我的哥

    [0] 评论
  • 8楼
    2017-03-15 16:10 天降龙虾

    背唐诗总是记不住作者的路过。。。。。

    [2] 评论
  • 9楼
    2017-03-15 16:11 在雨夜

    应该还有好多诗没有流传吧?

    [1] 评论
  • 10楼
    2017-03-15 16:13 碎宙的世界

    听说李白给杜甫赠诗少是因为李白成名早,是前辈。杜甫崇拜李白,所以赠诗多。

    [14] 评论
  • 11楼
    2017-03-15 16:32 小皇大大
    引用@天降龙虾 的话:背唐诗总是记不住作者的路过。。。。。

    比我当年强得多。有一次我默写《闻官军收河南河北》,中间有一句怎么也想不起来,只记得和酒有关,就写“人生得意须尽欢,莫使金樽空对月。”

    老师的评语是:串门串得太严重了

    [5] 评论
  • 12楼
    2017-03-15 16:37 天降龙虾
    引用@小皇大大 的话:比我当年强得多。有一次我默写《闻官军收河南河北》,中间有一句怎么也想不起来,只记得和酒有关,就写“人生得意须尽欢,莫使金樽空对月。”老师的评语是:串门串得太严重了

    把《赠汪伦》的作者写成汪伦的你伤不起。。。。。

    [2] 评论
  • 13楼
    2017-03-15 16:38 小皇大大
    引用@天降龙虾 的话:把《赠汪伦》的作者写成汪伦的你伤不起。。。。。

    被林冲宰了的那个?

    [5] 评论
  • 14楼
    2017-03-15 16:40 天降龙虾
    引用@小皇大大 的话:被林冲宰了的那个?

    唔,你赢了。。。。。

    [2] 评论
  • 15楼
    2017-03-15 18:38 IkariGendou

    最近在看五代史,对罗隐印象比较深刻……

    [0] 评论
  • 16楼
    2017-03-15 18:44 一卧沧江_42395

    对文学史不了解。但刘长卿周围那群人,在年代上似乎比其他人要靠后一些……

    [1] 评论
  • 17楼
    2017-03-15 19:25 可心树懒

    文采好,不一定是朋友。政见不和,不一定没有文采。司马光与王安石关系。

    [4] 评论
  • 18楼
    2017-03-16 01:20 孤胆侠猫

    其实他们之间有些沙龙圈了,比如崔九崔涤的宴客厅~

    [1] 评论
  • 19楼
    2017-03-16 07:37 Iron_Mannnnn

    火钳刘明

    [0] 评论
  • 20楼
    2017-03-16 08:31 孤独旅人

    杜甫出去的箭头那么多,难道是因为常常找别人借钱么……

    [6] 评论
  • 21楼
    2017-03-16 09:53 刘公子是小布尔乔亚

    结果和预想中的差不多

    [0] 评论
  • 22楼
    2017-03-16 11:31 4mao1981

    令我想起“诗云”

    [4] 评论
  • 23楼
    2017-03-16 13:10 林风清逸

    统计学发现真相。

    感觉建立在统计学之上。

    [1] 评论
  • 24楼
    2017-03-16 13:25 Sorridy

    用IT手段解决……感情关系分析问题???

    [3] 评论
  • 25楼
    2017-03-16 15:33 sandman826

    这个图里可能官职最高的就是裴度了,恰恰白居易和刘禹锡都有对裴度的引用,其实裴度的文章写得是很好的,成都武侯祠的三绝碑,就是裴度写得碑文~~

    [0] 评论
  • 26楼
    2017-03-16 17:07 enderx

    朋友圈图放大就看不清楚人名了好郁闷,手机看的

    [0] 评论
  • 27楼
    2017-03-16 18:30 橙子不见

    想到这张图了

    [14] 评论
  • 28楼
    2017-03-16 18:49 宁静王子
    引用@少侠请留步 的话: 晚唐明明是皮陆啊.......前面都说了

    但是和其他人关系不密切吧

    [0] 评论
  • 29楼
    2017-03-16 21:58 笑里飞刀
    引用@小皇大大 的话:被林冲宰了的那个?

    林教头宰掉的是王伦

    [0] 评论
  • 30楼
    2017-03-16 22:02 小皇大大
    引用@笑里飞刀 的话:林教头宰掉的是王伦

    你看不出我是故意的?

    [0] 评论

显示所有评论

你的评论

登录 发表评论

更多科研事,扫码早知道

x 下载
关于我们 加入果壳 媒体报道 帮助中心 果壳活动 免责声明 联系我们 移动版 移动应用

©2017果壳网    京ICP证100430号    京网文[2015] 0609-239号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:13488674940