分卷阅读228
假设啊之类的,一切都不是问题。
但田立心写这篇论文,而不是抄论文,多少还是会遇到一些难题的。
一,分析《全唐诗》的工程实在太大了,这部书里边出现的诗有四万多首呢。
二,唐代诗人的别称太多了,比如说光是杜甫的称呼,就有子美、杜二、杜工部等等。
不过,既然这是一篇计算机论文,数量的多少倒是无关紧要。
毕竟,可以直接交给计算机来运算嘛,只要能将《全唐诗》成功导入计算机就好了。
有关诗人的别称,需要费一番力气。
田立心使用的,是哈佛大学编纂的《中国历代人物传记资料库》(China Biographical Database Project,以下简称CBDB),CBDB记录了中国历代名人的传记资料,并保存在关系型数据库中。
CBDB由很多张表格组成,每张表中都记录了人物的不同信息。
田立心写这篇论文用到的主要列表有两张,——也就是人物的主要信息表(BIOG_MAIN)和人物的别名表(ALTNAME_DATA)
首先从BIOG_MAIN中查询出人物编号cpersonid,接着用cpersonid从ALTNAME_DATA中查询出别名,比如输入杜甫之后,表中就会出现子美、杜二、杜工部等一系列信息。
要是输入的是王维呢?
你会郁闷地发现,列表中会出现十几个同名同姓的王维。
这些王维中,只有一个才是他真正要找的人。
为了筛选目标人物的唐代诗人王维,就必须要添加王维所在的生卒年时间了。
经过这个操作,出现在列表中的人物果然是目标人物,他的别名也随之出现,正是让人印象深刻的王右丞、王摩诘。
而这,就是查找诗人的繁琐之处。
第0162章 第一篇论文要发表了
由于CBDB收罗的历史人物太多,重名现象非常严重。
经过一番探索,田立心最终设置了如下的排除重名策略:
1、如果人物生卒年俱全,那么只要生卒区间和唐朝持续时间有交集即可。如果存在这样的诗人,那么直接把这个人作为全唐诗中的作者。
2、如果人物只有生年或者卒年,那么生年或卒年必须在唐朝的持续时间内。将这样的人加入候选人列表。
3、如果人物生卒年都不详,那么舍弃之。
经过这三条判断之后,如果候选人列表为空,那么说明CBDB中没有目标人选,舍弃这位诗人;如果候选人多于一个,则说明排除重名失败,舍弃这位诗人。
这种策略并不完美,依然存在部分注明诗人被舍弃的情况。
为此,田立心又手动添加了某些重名现象特别严重,难易排除的人物比如李林甫、张旭、李贺、李绅等人,同样还要手动删除某些别称比较尴尬,在唐诗中属于常用词的别名,比如李世民的李二,李白的李太白,武媚娘的逍遥,黄巢的皇帝等等等等。
这么一番筛选下来,全唐诗中收录的2609位诗人,便只剩下762位了。
好消息是,大家经常能看到的那些诗人都已经包含其中。
这就已经足够了。
接下来,就是给这762位唐朝诗人构建人物关系网了。
论证两个诗人之间关系的亲密度,自然是以互相唱酬为依据的。
比如李白和杜甫,杜甫写过十二首有关李白的诗,李白写了与杜甫有关的诗是三首。
由此可见,李白这位朋友,确实不咋样啊。
互相唱酬排名最高的,则是陆龟蒙和皮日休,两人互动的诗歌多达上百首。
其次,是白居易和刘禹锡、元稹和白居易、白居易和崔玄亮、白居易和李逢吉、皇甫冉和刘长卿、白居易和李勃、白居易和牛僧儒、白居易和李健、白居易和李绅、韩愈和张继、刘禹锡和裴度、白居易和裴度、白居易和张籍、宋之问和沈佺期……
毫无疑问的是,白居易不仅仅和元稹是名副其实的元白,还是唐朝诗人中最核心的人物。
初唐诗人中,以宋之问和沈佺期的关系最为密切,这两人也是宫廷诗人的代表人物,但并没有形成明显的朋友圈。
盛唐诗人中,以白居易、刘禹锡和元稹为核心的朋友圈最为庞大,李白和杜甫的朋友圈则比较边缘化。
到了晚唐,最著名的诗人就是有小李杜之称的李商隐和杜牧了,其次是皮日休和陆龟蒙,但晚唐诗人的交际圈并不算大,经常联系的也就五六个好友之间而已。
得到了计算机的运算结果之后,田立心便开始建立了数学模型。
随后,就是撰写论文和编程了。
从准备论文到寻找参考文献,继而将这篇论文完稿,田立心用了差不多整整半个月的时间,而用同样的思路写