小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

計(jì)算機(jī)告訴你,唐朝詩人之間的關(guān)系到底是什么樣的?

 zhangsanshi211 2017-03-13

計(jì)算機(jī)告訴你,唐朝詩人之間的關(guān)系到底是什么樣的?

2017-03-12 前進(jìn)四先生 前進(jìn)日志
前進(jìn)日志

mrqianjinsi

自然選擇號(hào),前進(jìn)四!

在我還念中學(xué)的時(shí)候,每當(dāng)心情不好,就靠讀詩詞來排遣,慢慢讀得多了,就發(fā)現(xiàn)唐朝詩人之間存在著微妙的關(guān)系。比如杜甫非常喜歡李白,到了做夢都想見李白的地步:三夜頻夢君,情親見君意(夢李白)。而李白向孟浩然表過白:吾愛孟夫子,風(fēng)流天下聞(贈(zèng)孟浩然)。孟浩然的好基友則是王昌齡:數(shù)年同筆硯,茲夕間衾裯(送王昌齡之嶺南)。

出于好奇心,我一度想理清楚他們之間的關(guān)系。但是全唐詩一共四萬多首,再加上詩人之間經(jīng)常稱呼對(duì)方的別稱,整理起來非常麻煩,慢慢的也就絕了這個(gè)念頭。

直到前不久在網(wǎng)上看到了這張非常火的圖,又讓我想起來這段十五年前的心事。事不宜遲,拖了這么多年的愿望,不能再拖了。

這次,我將編程完成這件事。前面已經(jīng)說過,這件事主要的麻煩在于以下兩點(diǎn):

  • 全唐詩數(shù)量太多,一共四萬多首。


  • 詩人的別稱太多,比如杜甫:按字稱為子美,按排行稱為杜二,按官職稱為杜工部。

至于第一點(diǎn),我們現(xiàn)在用計(jì)算機(jī)來做,再多也無所謂。第二點(diǎn)則稍微費(fèi)事一點(diǎn),我們使用哈佛大學(xué)編纂的《中國歷代人物專輯資料庫》(China Biographical Database Project 以下簡稱CBDB),CBDB記錄了中國歷代名人的傳記資料,并保存在關(guān)系型數(shù)據(jù)庫中。

1 利用CBDB查找詩人的別名

CBDB由很多張表組成,每張表記錄了人物的不同信息,我們只用到了其中兩張表,人物的主要信息表:BIOG_MAIN和人物的別名表:ALTNAME_DATA
首先從BIOG_MAIN中查詢出人物編號(hào)c_personid,接著用c_personid從ALTNAME_DATA中查詢出別名,如下圖所示:
下面我給大家演示一下如何從CBDB中查詢杜甫的別稱。

圖中能夠看到杜甫有三個(gè)別稱:子美、杜二、杜工部。

當(dāng)然也有很多重名的現(xiàn)象,比如我們查詢王維。


會(huì)找出一堆叫王維的,這個(gè)時(shí)候,我們就要使用生卒年來判定:這個(gè)人物到底是不是唐朝的。這次要從數(shù)據(jù)庫中查詢?nèi)宋锏纳淠辍?/p>

唐朝建立于618年,滅亡于907年。對(duì)比后立刻發(fā)現(xiàn),第二個(gè)王維才是我們要找的詩人王維。
查詢別名核實(shí)一下:

看到了熟悉的王右丞和摩詰,沒錯(cuò),這正是王維同學(xué)。

由于CBDB收羅的歷史人物太多,重名現(xiàn)象非常嚴(yán)重。經(jīng)過一番探索,最終設(shè)置了如下的排除重名策略:

1.如果人物生卒年俱全,那么只要生卒區(qū)間和唐朝持續(xù)時(shí)間有交集即可。如果存在這樣的詩人,那么直接把這個(gè)人作為全唐詩中的作者。
2.如果人物只有生年或者卒年,那么生年或卒年必須在唐朝的持續(xù)時(shí)間內(nèi)。將這樣的人加入候選人列表。
3.如果人物生卒年都不詳,那么舍棄之。

經(jīng)過這三條判斷之后:
如果候選人列表為空,那么說明CBDB中沒有目標(biāo)人選,舍棄這位詩人。
如果候選人多于一個(gè),則說明排除重名失敗,舍棄這位詩人。

這種策略并不完美,存在部分注明詩人被舍棄的情況。為此我手動(dòng)添加了他們:


還有部分詩人的別稱比較尷尬,屬于唐詩中的常用詞,需要手動(dòng)去除。如下:

經(jīng)過這一番篩選,全唐詩中原本的2609位作者,只剩下了762位。這就夠了,著名的詩人都在這個(gè)列表當(dāng)中,接下來我們只關(guān)心這762位詩人之間的關(guān)系。

2 搜索詩人之間的引用關(guān)系

利用上面的詩人及別稱列表,我們在全唐詩中來搜索詩人之間的引用關(guān)系。
規(guī)則是:詩的標(biāo)題和正文中只要提到過對(duì)方,那么兩者之間的引用關(guān)系加1。一首詩如果提到多次對(duì)方,只算一次引用。
經(jīng)過計(jì)算機(jī)一番運(yùn)轉(zhuǎn),最終得到了引用關(guān)系表。

2.1 李白和杜甫之間的引用關(guān)系

首先來檢查一下李白和杜甫之間的引用關(guān)系:

不錯(cuò),杜甫寫了12首與李白有關(guān)的詩,李白則只有3首與杜甫有關(guān)的詩。李白這種朋友,確實(shí)差勁了一點(diǎn)啊。。
從這張圖也可以看出,我們的程序能夠識(shí)別出詩人的別名,比如杜甫的《寄李十二白二十韻》和李白的《魯郡東石門送杜二甫》都沒有直接提到對(duì)方的名字。

2.2 引用關(guān)系排名

我給詩人之間的引用關(guān)系排了個(gè)座次,下面顯示了排名前三十的引用關(guān)系:

我們看到,全唐詩中排名第一的好基友絕對(duì)是陸龜蒙和皮日休。這兩位互相提到對(duì)方的次數(shù)都在百次以上,這是因?yàn)殛扆斆珊推と招萏貏e喜歡唱和,你寫一首送我,我再回一首贈(zèng)你,跟現(xiàn)在微博大V之間的互動(dòng)差不多。這兩位常年唱和,最后將往來的唱和詩作編寫了中國文學(xué)史上的第一本唱和詩集:《松陵集》。為了不辜負(fù)他們之間的友誼,文學(xué)史上通常將兩者合稱為“皮陸”。

并列第二的則是白居易和劉禹錫、白居易和元稹。白居易和劉禹錫同年(772年)出生,從政道路都是各種被貶謫。兩人都很長壽,劉禹錫71歲時(shí)去世,白居易則活了75歲。白居易在得知?jiǎng)⒂礤a去世的消息時(shí),寫下了千古名句:

四海齊名白與劉,百年交分兩綢繆
同貧同病退閑日,一死一生臨老頭

白居易和元稹我不想多寫了,大家只要知道二人在文學(xué)史上被合稱為“元白”,就能想見二者的親密關(guān)系了。
從排名前三十的引用關(guān)系來看,白居易絕對(duì)是唐朝詩人朋友圈中的明星,是大V中的大V。

3 引用關(guān)系的可視化

只有引用關(guān)系列表豈不是有些干巴巴的,接下來才是本文的重頭戲。我將使用ECharts來可視化詩人之間的引用關(guān)系,最終得到詩人們的社交網(wǎng)絡(luò)。

3.1 全唐詩人社交網(wǎng)絡(luò)圖

因?yàn)橐还灿?62位詩人,為了避免畫出的圖太擁擠,看不清,我只將前一百的引用關(guān)系圖示化,如下圖:

可能會(huì)看不清,請(qǐng)大家放大后再看。圖中:

  • 箭頭表示詩人們之間的引用關(guān)系。比如說白居易引用了元稹,那么就有白居易指向元稹的箭頭,元稹引用了白居易,相應(yīng)的也有元稹指向白居易的箭頭。

  • 箭頭的粗細(xì)程度則表示了詩人們之間引用關(guān)系的強(qiáng)弱。白居易引用元稹的數(shù)量為167次,元稹引用白居易的數(shù)量為88次,那么白居易指向元稹的箭頭就要粗一些。

圖中清晰的顯示除了唐朝詩人的兩個(gè)大型朋友圈:杜甫-李白朋友圈、白居易朋友圈。沒錯(cuò),他們分別是盛唐和中唐兩個(gè)時(shí)期的核心詩人。
雖然只畫出了排名前一百的引用關(guān)系,但還是很擁擠。文學(xué)史上將唐詩根據(jù)時(shí)間劃分為4個(gè)階段:初唐、盛唐、中唐、晚唐。接下來我們就分別畫出這四個(gè)階段的社交網(wǎng)絡(luò)圖。

3.2 初唐詩人社交網(wǎng)絡(luò)圖


從箭頭的粗細(xì)來看,初唐詩人中關(guān)系最好的是宋之問和沈銓期。這兩位正是宮廷詩人的代表,他們兩位確定了近體詩的格律,對(duì)仗等規(guī)則。粗略的說,近體詩的規(guī)則就是他們倆發(fā)明出來的。對(duì)了,他們倆在文學(xué)史上一般也合成“沈宋”哦,看來要成為好基友,沒有文學(xué)史的認(rèn)證是不行的。

3.3 盛唐詩人社交網(wǎng)絡(luò)圖


注:為了制圖清晰,盛唐詩人社交網(wǎng)絡(luò)只畫出了引用數(shù)大于等于2的關(guān)系。

盛唐詩人的核心無疑是“李杜文章在,光焰萬丈長”中提到的李白和杜甫了。我們再次看到,杜甫指向李白的箭頭比李白指向杜甫的箭頭要粗得多。而且盛唐的詩人們明顯分為兩群,一群以李白-杜甫為核心,一群以皇甫冉和劉長卿為核心,為什么有這樣的局面?我也不知道,有沒有對(duì)文學(xué)史比較了解的朋友,請(qǐng)?jiān)谠u(píng)論里賜教。

3.4 中唐詩人社交網(wǎng)絡(luò)圖

注:為了制圖清晰,中唐詩人社交網(wǎng)絡(luò)只畫出了引用數(shù)大于等于2的關(guān)系。

中唐詩人社交網(wǎng)的特征很明顯,各位詩人緊緊的團(tuán)結(jié)在以白居易、元稹、劉禹錫為核心的文壇政治局周圍,勠力同心,同舟共濟(jì),為唐詩從浪漫主義向現(xiàn)實(shí)主義的偉大轉(zhuǎn)折做出了歷史性貢獻(xiàn)。

3.5 晚唐詩人社交網(wǎng)絡(luò)圖



晚唐詩人的社交網(wǎng)絡(luò)比較散亂,沒有明顯的核心。其中最重要的就是李商隱和杜牧了,他倆得到了文學(xué)史認(rèn)證的“小李杜”好基友稱號(hào)。

4 總結(jié)

這篇文章寫到這里,我突然意識(shí)到,即使一個(gè)人對(duì)唐詩沒有任何了解,他只要看這些社交網(wǎng)絡(luò)圖,就能立刻發(fā)現(xiàn)哪位詩人是同時(shí)代詩人的核心,哪位詩人的影響最大。這些都是很有用的信息。

而我們可以用計(jì)算機(jī)來分析任何時(shí)代的人物關(guān)系。中國恰好是歷史文獻(xiàn)最全的國家,如果能對(duì)這些文獻(xiàn)統(tǒng)一做系統(tǒng)的分析,豈不是可以做出隨著時(shí)間變化的歷史人物關(guān)系圖?

這在以前是不可能的事,現(xiàn)在隨著計(jì)算機(jī)技術(shù)的發(fā)展和古典文獻(xiàn)的數(shù)字化進(jìn)程,逐漸有可能了。這當(dāng)然是很大的工作量,任何個(gè)人都不可能實(shí)現(xiàn)。我想,有沒有可能參考linux的開發(fā)過程,用開源的方式,大家一起來完成這件事。

我會(huì)在兩天后將這一篇和上一篇《當(dāng)我們讀唐詩時(shí),我們在讀什么?》用到的python源碼上傳到github上,到時(shí)候感興趣的朋友可以fork過來共同研究。我的github賬號(hào)也是mrqianjinsi,歡迎大家關(guān)注。


閱讀

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多