本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

【j2开奖】干货|利用文本分析 揭秘唐朝诗人之间的秘密关系?!

时间:2017-03-16 23:16来源:本港台现场报码 作者:开奖直播现场 点击:
前不久在网上看到了这张非常火的图,让我想起来 中学的时候 就发现唐朝诗人之间存在着微妙的关系。比如杜甫非常喜欢李白,到了做梦都想见李白的地步。出于好奇心,我一度想理

  前不久在网上看到了这张非常火的图,让我想起来中学的时候就发现唐朝诗人之间存在着微妙的关系。比如杜甫非常喜欢李白,到了做梦都想见李白的地步。出于好奇心,我一度想理清楚他们之间的关系。

  

【j2开奖】干货|利用文本分析 揭秘唐朝诗人之间的秘密关系?!

  这件事主要的麻烦在于以下两点:

全唐诗数量太多,一共四万多首。

诗人的别称太多,比如杜甫:按字称为子美,按排行称为杜二,按官职称为杜工部。

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

  利用CBDB查找诗人的别名

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

  首先从BIOG_MAIN中查询出人物编号c_personid,接着用c_personid从ALTNAME_DATA中查询出别名,如下图所示:

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

  

【j2开奖】干货|利用文本分析 揭秘唐朝诗人之间的秘密关系?!

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

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

  

【j2开奖】干货|利用文本分析 揭秘唐朝诗人之间的秘密关系?!

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

  

【j2开奖】干货|利用文本分析 揭秘唐朝诗人之间的秘密关系?!

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

  查询别名核实一下:

  

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

  由于CBDB收罗的历史人物太多,重名现象非常严重。我设置了如下的排除重名策略:

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

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

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

  经过这三条判断之后:

  如果候选人列表为空,那么说明CBDB中没有目标人选,舍弃这位诗人。

  如果候选人多于一个,则说明排除重名失败,舍弃这位诗人。

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

  

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

  

【j2开奖】干货|利用文本分析 揭秘唐朝诗人之间的秘密关系?!

  经过筛选,全唐诗中2609位作者,剩下762位。接下来我们只关心这762位诗人之间的关系。

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

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

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

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

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

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

  

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

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

  2.2 引用关系排名

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

  

【j2开奖】干货|利用文本分析 揭秘唐朝诗人之间的秘密关系?!

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容