唐朝詩人最大的兩個(gè)朋友圈是杜甫-李白朋友圈、白居易朋友圈。他們分別是盛唐和中唐兩個(gè)時(shí)期的核心詩人
我還在念中學(xué)的時(shí)候,每當(dāng)心情不好,就靠讀詩詞來排遣,慢慢讀得多了,就發(fā)現(xiàn)唐朝詩人之間存在微妙的關(guān)系。比如杜甫非常喜歡李白,到了做夢(mèng)都想見李白的地步:三夜頻夢(mèng)君,情親見君意(《夢(mèng)李白》)。而李白向孟浩然也表白過:吾愛孟夫子,風(fēng)流天下聞(《贈(zèng)孟浩然》)。孟浩然的好基友則是王昌齡:數(shù)年同筆硯,茲夕間衾裯(《送王昌齡之嶺南》)。
出于好奇心,我一度想理清楚他們之間的關(guān)系。但是全唐詩一共四萬多首,再加上詩人之間經(jīng)常稱呼對(duì)方的別稱,整理起來非常麻煩,慢慢地就絕了這個(gè)念頭。前不久,又想起來這段15年前的心事。事不宜遲,拖了這么多年的愿望,不能再拖了。這次,我將用編程的方式完成這件事。
要完成這件事需要解決的主要問題有兩點(diǎn):全唐詩數(shù)量太多,一共四萬多首。詩人的別稱太多,比如杜甫,按字稱為子美,按排行稱為杜二,按官職稱為杜工部。
至于第一點(diǎn),我們現(xiàn)在用計(jì)算機(jī)來做,再多也無所謂。第二點(diǎn)解決起來則稍微費(fèi)事些,我們使用哈佛大學(xué)編纂的《中國歷代人物傳記資料庫》(CBDB),CBDB記錄了中國歷代名人的傳記資料,并保存在關(guān)系型數(shù)據(jù)庫中。
利用CBDB查找詩人的別名
由于CBDB收羅的歷史人物太多,重名現(xiàn)象非常嚴(yán)重。經(jīng)過一番探索,我們最終設(shè)置了如下的排除重名策略。
第一,如果人物生卒年俱全,那么只要生卒區(qū)間和唐朝持續(xù)時(shí)間有交集即可。如果存在這樣的詩人,那么直接把這個(gè)人作為全唐詩中的作者。第二,如果人物只有生年或者卒年,那么生年或卒年必須在唐朝的持續(xù)時(shí)間內(nèi)。將這樣的人加入候選人列表。第三,如果人物生卒年都不詳,那么舍棄之。
經(jīng)過這三條判斷之后,如果候選人列表為空,那么說明CBDB中沒有目標(biāo)人選,就舍棄這位詩人。如果候選人多于一個(gè),則說明排除重名失敗,舍棄這位詩人。這種策略并不完美,可能存在部分著名詩人被舍棄的情況。對(duì)此,我就手動(dòng)添加了他們。還有部分詩人的別稱比較尷尬,屬于唐詩中的常用詞,需要手動(dòng)去除。
經(jīng)過這一番篩選,全唐詩中原本的2609位作者,就只剩下了762位。其實(shí)這就夠了,著名的詩人都在這個(gè)列表當(dāng)中,接下來我們只關(guān)心這762位詩人之間的關(guān)系。
從引用關(guān)系排名看詩人間的互動(dòng)
利用上面提到的詩人及別稱列表,我們?cè)谌圃娭兴阉髟娙酥g的引用關(guān)系,規(guī)則是:詩的標(biāo)題和正文中只要提到過對(duì)方,那么兩者之間的引用關(guān)系就加1分。一首詩如果多次提到對(duì)方,只算一次引用就可以。經(jīng)過計(jì)算機(jī)的一番運(yùn)轉(zhuǎn),最終得到了引用關(guān)系表。
比如,李白和杜甫之間的引用關(guān)系是:杜甫寫了12首與李白有關(guān)的詩,很多都成為傳世名句,比如,杜甫的《飲中八仙歌》描述的李白極具魅力:
李白斗酒詩百篇,長安市上酒家眠。
天子呼來不上船,自稱臣是酒中仙。
李白則只有3首與杜甫有關(guān)的詩。李白這種朋友,確實(shí)差勁了一點(diǎn)啊……
我們的程序能夠識(shí)別出詩人的別名,比如杜甫的《寄李十二白二十韻》和李白的《魯郡東石門送杜二甫》都沒有直接提到對(duì)方的名字,但在系統(tǒng)中也可以檢索出來。
我給詩人之間的引用關(guān)系排了下座次,排出了前30位的引用關(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去世的消息后,寫下了千古名句:
四海齊名白與劉,百年交分兩綢繆。
同貧同病退閑日,一死一生臨老頭。
白居易和元稹的關(guān)系則不必多說,大家只要知道二人在文學(xué)史上被合稱為“元白”,就可以想見二人的親密關(guān)系了。從排名前30的引用關(guān)系來看,白居易絕對(duì)是唐朝詩人朋友圈中的明星,是大V中的大V。
引用關(guān)系的可視化
在進(jìn)行這項(xiàng)工作中,我想,如果只做出一個(gè)引用關(guān)系列表,豈不是有些太干巴巴了。于是,我使用ECharts來可視化詩人之間的引用關(guān)系,最終得到詩人們的社交網(wǎng)絡(luò)。因?yàn)槲覀兊慕y(tǒng)計(jì)中一共有762位詩人,為了避免畫出的圖太擁擠、看不清,我只將其中的前一百位詩人的引用關(guān)系進(jìn)行圖示化。
最后,我們得出的圖清晰地顯示出唐朝詩人最大的兩個(gè)朋友圈分別是:杜甫-李白朋友圈、白居易朋友圈。他們分別是盛唐和中唐兩個(gè)時(shí)期的核心詩人。
雖然只畫出了排名前一百的引用關(guān)系,但圖片看起來還是很擁擠。文學(xué)史上將唐詩根據(jù)時(shí)間劃分為4個(gè)階段:初唐、盛唐、中唐、晚唐。接下來,我們又分別畫出這四個(gè)階段的社交網(wǎng)絡(luò)圖。
初唐詩人中關(guān)系最好的是宋之問和沈銓期。這兩位是宮廷詩人的代表,他們兩位確定了近體詩的格律、對(duì)仗等規(guī)則。粗略地說,近體詩的規(guī)則就是他們倆發(fā)明出來的。對(duì)了,他們倆在文學(xué)史上一般也合稱“沈宋”,看來要成為好基友,沒有文學(xué)史的認(rèn)證是不行的。
盛唐詩人的核心無疑是“李杜文章在,光焰萬丈長”中提到的李白和杜甫了。在我們的圖上,我們用指向?qū)Ψ降膱D片表示此詩人在詩句中提到對(duì)方的次數(shù),而杜甫指向李白的箭頭比李白指向杜甫的箭頭要粗得多。盛唐的詩人們明顯分為兩群,一群以李白-杜甫為核心,一群以皇甫冉和劉長卿為核心,為什么會(huì)有這樣的局面?我本人也不清楚,對(duì)文學(xué)史比較了解的朋友歡迎賜教。
中唐詩人社交網(wǎng)的特征很明顯,各位詩人緊緊團(tuán)結(jié)在以白居易、元稹、劉禹錫為核心的文壇政治局周圍,勠力同心,同舟共濟(jì),為唐詩從浪漫主義向現(xiàn)實(shí)主義的偉大轉(zhuǎn)折做出了歷史性的貢獻(xiàn)。
晚唐詩人的社交網(wǎng)絡(luò)比較散亂,沒有明顯的核心。其中最重要的就是李商隱和杜牧了,他倆得到了文學(xué)史認(rèn)證的“小李杜”好基友稱號(hào)。(文/前進(jìn)四先生)