如果史記有大數據:司馬遷的史料分析與歷史敘事
口述採集:訪問當地父老、舊臣後代,取得書面資料沒有的細節。
遺跡與實物考察:看碑刻、看廟堂、看孔子遺物,讓抽象的記載有了質感。
《史記》裡大量鮮活的細節,很可能就來自這條管道。例如樊噲在鴻門宴上「側其盾以撞,衛士仆地」這種貼身動作,是誰看見的?有學者推測,司馬遷可能訪問過樊噲的後人。這類推測無法完全證實,但它提醒我們:《史記》的資料庫裡,有一批來源是「人的記憶」,而人的記憶,是所有資料源裡最生動、也最需要打折的一種。
所以,如果要用一句話總結司馬遷的資料盤點成果:他同時掌握了官方檔案、古籍文獻、實地考察與口述傳說四條管線,並且清楚地知道這四條管線的品質不一樣。知道資料有等級,這本身就是專業素養。
二、五種資料表的設計邏輯:《史記》其實是一個關聯式資料庫
《史記》全書一百三十篇,分為本紀十二、表十、書八、世家三十、列傳七十。多數人把它當成「五種文體」,但如果換一個角度——把它當成五種不同用途的資料表——你會發現這個結構設計得相當精巧。
1. 本紀與表:時間軸與關聯表
本紀是時間軸。它以帝王紀年為主線,把事件按時間順序排好,等於給整個資料庫設定了一個「主鍵」:時間。沒有統一時間軸,戰國各國紀年、秦楚之際的混亂局面就無法對齊,這在資料處理上是很要命的問題。
而「表」則是《史記》最被低估的部分。十表之中,《三代世表》處理上古世系,《十二諸侯年表》《六國年表》處理多國並行的時間線,《秦楚之際月表》把時間粒度細化到「月」,《漢興以來諸侯王年表》《高祖功臣侯者年表》則處理漢初封建的人事與傳承。
用現代語言說,這些表就是關聯表(relational table):橫軸是時間,縱軸是國家或人物,格子裡填事件。它的好處是壓縮——把大量敘事壓成可掃視的結構,讓讀者一眼看出「哪一年、哪一國、發生了什麼」。顧炎武在《日知錄》裡曾談到史書立表的必要,正是這個道理:沒有表,就得靠傳記一篇篇去翻,檢索成本高得驚人。
如果給司馬遷一台電腦,他大概會很自然地打開試算表,把《十二諸侯年表》做成一個跨欄篩選的樞紐分析表,然後按月排序《秦楚之際月表》。他早就想這麼做了,只是竹簡不支援下拉選單。
2. 書與列傳:專題資料庫與人物檔案
「書」是制度專題:禮、樂、律、歷、天官、封禪、河渠、平準。這八篇處理的不是「誰做了什麼」,而是「制度怎麼運作」。用資料庫的術語說,這是主題資料表——它們不鎖定單一人物,而是橫向切出一個領域,把相關的制度、數據、變革集中起來。
例如《平准書》記錄漢代的財政、物價、鹽鐵、均輸平準;《河渠書》記錄水利工程與黃河改道;《天官書》記錄星象與占驗。這些篇章裡藏著大量可以表格化的資訊,甚至藏著最早的「經濟數據」與「天文觀測數據」。
「列傳」則是人物檔案,而且是一種帶有分類標籤的檔案。除了個人列傳,還有〈循吏〉〈酷吏〉〈儒林〉〈游俠〉〈佞幸〉〈滑稽〉〈日者〉〈龜策〉〈貨殖〉〈刺客〉等類傳。這種「類傳」的設計,本質上就是給人物貼標籤、做分群。而分類從來不是中性的:把某人放進〈酷吏〉還是〈循吏〉,會徹底改變後世對他的評價。這一點我們稍後再談。
3. 互見法:資料庫正規化與冗餘設計
《史記》最像資料庫工程的一個設計,是「互見法」。同一個人物、同一件事,可能同時出現在本紀、表、世家、列傳裡,但詳略不同、角度不同。蘇洵曾評論這種筆法:本傳故意含混的地方,會在別的傳記裡補充說明。
這種設計有兩個好處。第一,避免單一欄位過度承載:一個人的功過太複雜,全部塞進一篇傳記會失衡,所以拆成多處記錄。第二,形成交叉驗證:當你在不同篇章看到同一件事的不同版本,讀者就有了比對的素材。
從資料工程角度看,這其實是一種「刻意冗餘」。現代資料庫追求正規化、減少重複,但歷史資料有時候需要冗餘——因為冗餘提供了檢核點。當兩個來源互相矛盾時,矛盾本身就是資訊。
三、司馬遷的「資料清洗」:他怎麼判斷哪條史料可信?
有了資料,下一步是清洗。這一步最枯燥,也最能看出一個人的功力。司馬遷在沒有統計軟體、沒有自動化工具的情況下,靠的是三樣東西:文獻比對、實地驗證、以及一套明確的存疑規則。
1. 疑則傳疑:不確定性的標記
《史記》最迷人之處,是它會告訴你「我不確定」。寫上古史,他說「學者多稱五帝,尚矣」,又說《尚書》獨載堯以來,諸家言黃帝其文不雅馴。寫秦史,他直言「獨有秦記,又不載日月,其文略不具」。
這些話在今天的資料科學裡有個對應概念:資料品質標註。一份好的資料集,不會假裝每個欄位都完美無缺,而是會標明哪些欄位是估算的、哪些來源可疑、哪些缺失無法補齊。司馬遷做的正是這件事。他不只在正文裡標註,還常在一篇之末用「太史公曰」再做一次說明。
這種態度在當時其實很不容易。古代史官常常需要為政權背書,把不確定說成確定、把傳聞寫成事實,往往更方便、也更有政治利益。司馬遷選擇留下問號,等於是把「不確定性」當成史料的一部分交給讀者。
2. 太史公曰:版本註記與作者簽章
《史記》多數篇章末尾有「太史公曰」,內容不外乎評論、補充、感慨。從資料分析的角度看,這相當於在每一個資料表後面附上一段「資料處理說明」與「作者信心水準」。
這裡面有幾種不同類型:有的是補充來源(我從某處聽說);有的是判斷真偽(這件事恐怕不可信);有的是評價(這個人雖然有缺點,但功業不可抹滅);有的則是情感抒發(余讀某書,未嘗不廢書而歎)。
把它想成一種留言功能,你就懂了:後世讀者在讀完一整篇資料後,可以直接看到作者自己的立場。這種透明,是《史記》的重要資產。
3. 分類的難題:把項羽放進本紀、把陳涉放進世家
蒐集、清洗之後,最難的一步是分類。而《史記》最有名的一次分類爭議,就是項羽與陳涉。
項羽沒有當過皇帝,卻被列入本紀;陳涉是起義失敗的戍卒,卻被列入世家。從形式上看,這破壞了體例;從內容上看,這是一次極具膽識的判斷——司馬遷認為,秦亡之後那幾年,實際支配天下的是項羽;而陳涉雖然失敗,卻是揭開反秦序幕的關鍵。
用資料科學的話說,這是標籤體系的調整。資料本身不會說話,是分類框架在說話。同樣一批人物,放進「帝王表」還是「叛亂表」,敘事就完全不同。司馬遷的分類選擇,本身就是一種歷史判斷,也是一種價值表態。
如果真有大數據,這類爭議只會更激烈。因為資料越多,分類維度就越多:可以用權力、可以用影響力、可以用制度貢獻、可以用後世評價。每一種分類都會產生一套不同的歷史名單。而任何一套名單,都不是「客觀事實」,而是「選擇後的結果」。
四、大數據腦洞:如果《史記》真的上了雲端
好,現在讓我們放開一點。假設司馬遷的竹簡全部數位化,加上後世出土文獻、考古資料、青銅器銘文、簡牘、氣候重建數據,全部丟進一個超大資料庫。會發生什麼事?以下幾個情境,純屬腦洞,但每一個都指向同一個問題:資料變多之後,我們對歷史的理解真的會變好嗎?
1. 楚漢相爭的文本探勘
《項羽本紀》與《高祖本紀》是兩份敘事立場截然不同的文本。如果用自然語言處理工具去跑詞頻、語氣、人物稱謂、事件描述長度,大概會跑出很有趣的結果:項羽的部分動詞密度高、場景描寫多、悲劇色彩強;劉邦的部分則更多對話、更多人物互動、更多「從諫如流」的橋段。
再把《淮陰侯列傳》《留侯世家》《蕭相國世家》《曹相國世家》一起拉進來,做一張人物共現網絡圖,你會看到漢初的政治結構:劉邦是中心節點,韓信、蕭何、張良是高頻連接的樞紐,而許多功臣彼此之間存在著複雜的姻親與同鄉關係。
如果再疊上地理資訊系統,把滎陽、成皋、垓下、彭城這些地點標在地圖上,配合行軍路線與糧道,那麼「楚漢相爭為什麼拖了四年」這個問題,可能會得到比「因為項羽有勇無謀、劉邦善於用人」更細緻的答案:糧食補給線的長度、地形對騎兵的限制、諸侯中立勢力的搖擺,都可以被量化。
但這裡有個陷阱。資料可以告訴你「劉邦的補給線更短」,卻不能自動告訴你「所以劉邦必勝」。歷史不是回歸模型,變數之間的關係也不是線性的。很多時候,勝負取決於某個人在某個夜晚做的一個決定——而那個人為什麼做那個決定,數據永遠抓不到。
2. 刺客列傳的社會網絡分析
〈刺客列傳〉寫了曹沫、專諸、豫讓、聶政、荊軻五個人。如果用社會網絡分析去看,會發現一個共同結構:這五個人都不屬於權力核心,他們與委託人之間的連結,不是制度性的君臣關係,而是私人的知遇之恩。
專諸之於公子光,聶政之於嚴仲子,豫讓之於智伯,荊軻之於太子丹,都是「你把我當人看,我就把命給你」的邏輯。這是一種弱連結轉強連結的過程:原本在社會網絡邊緣的人,因為一次賞識,被拉進權力核心的衝突之中。
這樣的結構分析很有解釋力,也很容易變成套路。真正難的是問:為什麼司馬遷要把這五個人放在同一卷?他是在讚美「士為知己者死」,還是在反思這種義氣如何被權力利用?資料能告訴你結構,卻不能替你回答價值判斷。
3. 貨殖列傳與天官書:兩種最像「原始數據」的東西
《史記》裡最接近現代資料集的兩篇,大概就是〈貨殖列傳〉與〈天官書〉。
〈貨殖列傳〉記錄各地物產、風俗、商業活動,還留下一些價格與財富規模的描述。它其實是古代版的「區域經濟調查報告」。如果把歷代地理志、食貨志、考古出土的度量衡資料一起整合,也許可以重建一條相當粗糙的「漢代物價指數」。當然,樣本極少、單位混亂、記載偏重富商大賈,這些偏誤必須誠實面對。
〈天官書〉則是另一種情況。它系統記錄了星官、五星運行、彗星、日食月食等天象,並附上占驗解釋。現代天文學家有時會用古代天象記錄來比對超新星、彗星週期等問題。這篇的「資料價值」在某種程度上超過了它的「占星價值」。
這兩個例子說明一件事:《史記》裡最有「大數據潛力」的部分,往往不是最像故事的部分,而是最像流水帳的部分。但反過來說,如果《史記》只剩下流水帳,它就不會被稱為「史家之絕唱」了。
五、資料越多,敘事越難:大數據救不了的歷史判斷
前面玩了幾輪腦洞,現在該冷靜一下。因為「大數據」這個詞有一個很危險的暗示:好像只要資料夠多,真相就會自動浮現。但歷史研究恰好相反——資料越多,選擇越難,敘事責任越重。
1. 倖存者偏差:被記錄下來的,永遠不是全部
《史記》記錄了大量帝王將相、名臣遊俠,但占人口絕大多數的農民、婦女、工匠、邊疆族群,在書中幾乎是沉默的。這不是司馬遷一個人的問題,而是整個史料生產結構的問題:能被記錄的人,往往是有權力、有資源、有後人替他說話的人。
大數據會不會解決這個問題?只有在採集結構改變的前提下才會。如果新的資料來源依然是官方檔案、依然是精英書寫、依然是少數人的視角,那麼資料量再大,偏差也只會被放大,而不是被修正。
這一點對今天的我們同樣適用。社群平台上的資料看起來海量,但如果發聲的人本來就是特定群體,那麼「大數據分析」得到的結論,可能只是把既有的偏誤包裝得更精緻。
2. 相關不等於因果:演算法很會找模式,卻不懂意義
統計工具可以告訴你:某種天象記錄與某場戰爭的發生時間有相關性;某個家族的婚姻網絡與政治升降有相關性。但相關性不是因果,模式也不是解釋。
歷史敘事的核心工作,是在眾多可能性中判斷「哪一個原因更重要」,並且說明「為什麼」。這件事沒有辦法完全外包給演算法,因為它涉及價值排序:你認為政治制度重要,還是個人性格重要?你認為經濟結構是底層動力,還是偶然事件才是關鍵?
司馬遷在〈貨殖列傳〉裡說「天下熙熙,皆為利來;天下壤壤,皆為利往」,這是一個非常「結構性」的觀察。但他同時也花了大量篇幅寫個人的抉擇、尊嚴與失敗。他的敘事之所以有力量,正是因為他沒有讓任何單一因素獨占解釋權。
3. 一家之言:敘事者的責任無法外包
「成一家之言」這五個字,常被解讀為謙虛,其實它非常狂妄,也非常誠實。狂妄在於:我知道我寫的只是一家之言;誠實在於:我沒有假裝自己是中立無偏的機器。
今天我們面對大數據,最需要警惕的就是「中立幻覺」。演算法不是中立的,它反映的是設計者的選擇、資料的偏誤、以及商業與政治的目標。歷史敘事也一樣,任何一本史書都有立場。差別在於,好的敘事者會把立場說清楚,讓讀者知道自己在讀什麼。
從這個角度看,司馬遷其實比很多現代資料分析師更誠實。他從不掩飾自己的情感:他同情項羽,他敬佩屈原,他對酷吏深惡痛絕,他對遊俠抱持複雜的敬意。但他也會在〈太史公曰〉裡提醒你:這是我的判斷。
六、結語:資料庫不會自己寫故事
回到最初的問題:如果《史記》有大數據,會怎樣?
我的答案是:它會變得更完整,但也可能變得更難讀。更多的資料意味著更多的矛盾、更多的空白、更多需要判斷的地方。資料庫可以幫你記住一切,卻不能幫你決定什麼值得被記住。
司馬遷真正的了不起,不在於他掌握了多少資料,而在於他敢於在資料不足的時候下判斷,也敢於在下判斷之後承認自己的局限。他把歷史寫成一場對話:與古人對話,與史料對話,也與後世的讀者對話。
所以,與其說「如果《史記》有大數據」,不如說「《史記》本身就是一套有靈魂的資料庫」。它有欄位、有主鍵、有索引、有註解、有版本問題、有分類爭議,甚至還有後人補寫的「褚先生曰」——那簡直就是古代版的開源協作。
而我們今天讀《史記》,讀的不只是三千年的興衰成敗,更是一個人如何在資訊不完整的世界裡,努力把話說清楚。這件事,AI 還做不到,大數據也做不到。它需要一個人,坐在燈下,把竹簡攤開,然後問自己:我到底想告訴後來的人什麼?
兩千年過去了,這個問題依然沒有標準答案。但它值得我們每一個人,在自己的資料庫裡,認真地回答一次。
```
💬 想說點什麼?
歡迎到留言板分享你的想法、心得或疑問。
💬 前往留言板 →