教你如何不讀書
文/陳松(美國哈佛大學東亞語言與文明博士)
我們中國人常常把知識分子稱為「讀書人」,又把上學做研究叫做「念書」。不過,今天我想談談如何「不讀書」還能做研究,而且也能取得有趣的研究成果。
做研究雖然要看書,但是沒有研究者能看完所有的書。斯坦福大學英語文學系的教授Franco Moretti說,文學作品不能一本一本地讀。為什麼呢?因為太多了,讀不完。他說「光是19世紀的英國就有三萬部小說,總共也許有四萬、五萬、六萬部,沒人全部讀過、今後也沒人能全部通讀一遍。此外,還有法國小說、中國小說、阿根廷小說、美國小說……」要是把這些小說都讀一邊才能研究世界文學,那世界文學就沒人能研究了。
那麼怎麼辦呢?Moretti建議,只能要麼只讀名家名著,要麼只讀一個國家一個地域的作品。但無論怎樣,都有畫地為牢、見樹不見林的危險,難以把握一個時代整體的文學樣貌,更無法看清不同國家的文學作品之間的關聯。
就像莊子說的,「吾生也有涯、而知也無涯,以有涯隨無涯,殆已。」就是說,書太多了,我們的生命有限、記憶力和語言能力也都有限,所以,算了吧,別折騰了。你還不如不讀。
不過,Moretti還是和莊子不同。雖然他們不鼓勵我們拚命死讀書,這並不妨礙他們對知識的追求。但是「不讀書」,怎麼追求知識呢?
不讀書,還想獲得知識,就要用到一種叫做「數字人文」的方法。
數字人文的方法很多,這裡先談一個數數的辦法。數數是什麼呢?對研究英語文學的學者來說,就是數單詞,就是看看每個單詞在一篇文章或者一本書中出現了多少次。當然,這不是讓你一個字一個字地數,而是利用計算機去數。計算機在做這種簡單重複勞動的時候,比人準確有效得多。數完之後,我們就可以按照每個單詞出現的次數(詞頻)把所有單詞放在一起排個序,然後根據高頻詞來推測這部作品的主題和風格。
當然,這個推論的部分,計算機是無法代勞的。要做出合理的推論,研究人員還是要對相關作品有一定的背景知識,而且最好是對多部作品同時進行高頻詞分析,在相互參照中發現每部作品的突出特徵。
幾年前,紐約時報就用這種方法分析了1789年到2009年之間所有美國總統的就職演講,讓讀者一目了然地看到在美國200多年的歷史進程中,總統關心的核心問題是如何變化的。比如,最早的幾位美國總統在就職演說中最常提到的都是跟政治結構、公民權利、公共利益相關的詞(如「政府」、「憲法」、「立法機構」、「公民」、「公共」、「義務」、「利益」等)。到了20世紀中葉,美國總統就職時最愛說的則變成了和美國的世界領袖地位及其意識形態相關的辭彙(「世界」、「力量」、「自由」等)。20世紀80年代以後,總統就職演說的重點又發生了變化了,他們開始把「工作」、「世代」、「夢想」之類的詞掛在了嘴邊。
美國總統約翰·亞當斯在1797年的就職演說(來源:紐約時報)
美國總統哈里·杜魯門在1949年的就職演說(來源:紐約時報)
美國總統貝拉克·奧巴馬在2009年的就職演說(來源:紐約時報)
這種不讀書的方法,我們可以把它叫做「詞語口袋法」。叫它「詞語口袋法」,意思就是說它好象是把一篇文章一個詞、一個詞地剪下來,扔進一個口袋裡,完全不管上下文和語法語序,只是去數每個詞出現了多少次。在這個方法里,「我打他」和「他打我」完全沒有區別,反正都是「我」、「他」、「打」三個字各出現了一次。
這個方法最大的問題是,它過分簡化了語詞和語義之間的複雜關係。比方說,「我打他」和「我打球」中都出現了一個「打」字,但是含義是明顯不同的。「我打了他」和「俺揍了那傢伙」表面上看起來,遣詞造句的重合度不高,但是語義卻是很相近的。這麼一來,大家可以看到,這種「不讀書」的方法就顯得有些不靠譜了。
這個時候我們就要反思一下,問問我們自己到底是怎麼判斷出「我打他」和「我打球」中的「打」字具有不同含義的。顯然,我們是根據賓語的不同推斷出來的。換言之,一個詞的語義在很大程度上是由它的上下文(也就是和它相鄰的詞)來定義的,有點兒像俗話里說的「欲知其人,先觀其友」。
在一段話或者一篇文章里,總是和一個詞扎堆兒出現的就是這個詞的朋友,我們可以根據它的這些朋友來推測這個詞在這段話或這篇文章里的含義。這樣一來,計算機就又能幫助我們了。
當然,這次它要做的工作複雜了一些。它不能只去數數了,它得看哪些詞語是扎堆兒出現的。它得把那些和「籃球」、「操場」、「運動員」等詞語扎堆兒出現的「打」字跟這些友詞分為一組,再把跟那些和「受傷」、「生氣」、「流血」等詞語一同出現的「打」字分在另外一組。每個分組就代表了一個特定的主題,前一個是跟運動有關的,後一個是跟暴力有關的。這樣,我們就能更加準確地判斷出一篇文章或者一本書中有哪些主題了。
當然,我這裡說的比較簡單,在實際操作中其實是一個引入了概率模型和迭代演算法的複雜程序,我們把它叫做主題模型法(topic modeling),可以看作是詞語口袋法的一種延伸。
這種「不讀書」方法,能讓我們獲得什麼樣的成果呢?
Jockers是一位研究19世紀末、20世紀初的愛爾蘭文學和愛爾蘭裔美國文學的學者。有好些年,他在斯坦福大學和Moretti合作辦了一個斯坦福文學實驗室(Stanford Literary Lab)。五年前,他出版了一部名為《宏觀分析》(Macroanalysis)的書。雖然這部書的研究對象是19世紀英語國家的文學作品,而非世界文學,但是在很大程度上算是把Moretti的想法付諸實踐了。
本書研究的範圍,不是一部、兩部19世紀的英語文學作品,而是把斯坦福文學實驗室收集到的3346部作品放在一起研究。Jockers想知道這些19世紀英語文學作品在主題和風格上都有哪些特徵,他想看看這些特徵會不會因為作家的性別、國籍不同而有所不同。
不過,正如Moretti所說,Jockers不可能把這3346本小說全部通讀一遍。那怎麼辦呢?Jockers決定他不要讀書,他要讓計算機去幫他讀,他只負責設計演算法、寫程序、做解讀。主題模型法就是他使用的主要方法之一。通過主題模型法,他在3346部作品中識別了幾百組扎堆兒出現的辭彙,每組辭彙都代表了一個特定的主題。比如下面這個包含了「印第安」、「印第安人」、「酋長」、「野蠻人」、「來福槍」、「戰爭」、「荒野」、「獨木舟」等辭彙的詞群,我們就可以把它理解為一個有關美洲土著(即印第安人)的主題。
「美洲土著」主題(來源:Matthew Jockers, Macroanalysis)
通過分析不同主題在這3346部作品中的分佈,Jockers得出了一些很有趣的結論。譬如說,女作家喜歡討論「情感與幸福」、「時尚」、「嬰兒」這些主題,而男作家喜歡寫「混蛋與叛徒」、「爭吵與決鬥」之類的東西。再譬如說,美國小說常常討論奴隸制度、印第安人、城市和邊疆,蘇格蘭小說動不動就說到商人與貿易、巫師與巫婆、金銀財寶、君主和騎士,而愛爾蘭小說則經常寫到關於地主與佃農的事情(這個傾向在19世紀上半葉尤為明顯)。此外,愛爾蘭小說家也比其他國家的同行們更關注個人品質、幽默感、人物的喜怒哀樂。
不同性別小說家的作品中「情感與幸福」主題出現的比例(來源:Matthew Jockers, Macroanalysis)
不同性別小說家的作品中「混蛋和叛徒」主題出現的比例(來源:Matthew Jockers, Macroanalysis)
最重要的是,Jockers不可能通過一本一本地讀書獲得這些發現,他甚至也不可能通過對十幾部或者幾十部作品的仔細研讀、深入分析獲得這些發現並且說服讀者的。換句話說,雖然說書籍是知識的海洋,你不先放棄傳統的閱讀方式,是不能獲得這樣的知識的。
細心的你也許已經發現,那就是這些扎堆出現的詞群里基本上都是名詞、動詞、形容詞之類的實詞,其他的如人稱代詞、冠詞、介詞等都被排除在主題模型之外了。道理很明顯:代詞、冠詞、介詞跟一部作品的主題沒多大關係。——但是,這些詞仍然值得引起我們的注意。為什麼呢?因為這些詞往往跟作品的風格息息相關。
有些文學體裁往往較多地使用跟方位有關的介詞和指示代詞,而某些作家的個人風格則是不喜歡用冠詞和某些標點符號。
Jockers也對此也進行了分析——他仍然是藉助計算機程序,本質上仍然是數數,當然具體的演算法會有些不同。一句話,自己「不讀書」,讓計算機讀書。通過演算法,Jockers對三千多部英語小說在主題、作品風格等方面進行了系統的、詳盡的研究,並對照作家的國籍和性別進行了交叉分析。這個分析是量化的,所以結果是Jockers給每部作品都算出了一組數。每組數中包含578數值,分別定義了這部作品的主題和風格的方方面面(比如這部作品有多大比例是關於情感主題的、有多大比例是關於決鬥主題的、在多大程度上傾向於使用不定冠詞和分號等等)。根據這些數值,他就能計算出任何兩部作品之間的相似度。
這個有點像我們在地圖上測量兩個地點之間的距離。只要我們知道了每個地點的經度和緯度,我們就能知道它們在地圖上的什麼地方,就能把它們之間的距離給算出來。
不同的是,在Jockers這裡,地理位置變成了文學作品,而每個文學作品的位置不是由經度、緯度這麼兩個數值確定的,而是由578個數值共同確定的,但是道理是一樣的(用科學術語來說,地圖是一個二維空間,而Jockers構建的是一個578維的空間,每個作品都是這個空間里的一個點,它在每個維度上都有一個值,它的578個值共同定義了它在這個多維空間里的位置,而不同作品之間的相似度就可以理解為它們在這個多維空間里的距離,距離越近、相似度就越高)。
當Jockers算出任意兩部作品的相似度之後,他就畫了一幅圖。這個圖裡面,每個點就是一部小說,相似度越高的小說在圖上的距離就越近;他還給每個點上了色,男作家的作品用藍色、女作家的作品用紅色,結果我們看到這些小說自動就扎堆兒了。換句話說,男作家的作品彼此之間相似度很高,它們都群聚於這幅圖的上半部分,而女作家的作品彼此之間相似度也很高,聚集於這幅圖的下半部分。不同性別作家的作品彼此之間,則通常是差異極大、涇渭分明的。
不同性別小說家的作品中主題與風格的差異(來源:內布拉斯加大學官網)
然後,Jockers又給這些作品按出版日期重新著了一次色,出版日期越早,顏色就越淺。於是,我們看到了下面這幅圖。顯而易見,即便在19世紀這一百年中,主題和風格隨著時間的推進也有著明顯的變化,而出版時間接近的作品在主題和風格上的相似度一般也是較高的。
19世紀不同年代的作品中主題與風格的演變(來源:內布拉斯加大學官網)
談了這麼多19世紀的英語小說,也該談談漢語作品了。用主題模型法分析漢語文獻有一個特殊的困難——那就是「分詞」的問題(這裡我說的不是標點符號里的那個分詞,是指用計算機將漢語文本以詞為單位逐詞分開)。我們知道英語的每個單詞之間都是用空格隔開的,但是漢語文獻中沒有空格。我們要麼就以字為單位進行分析(也就是說,數數每個漢字在不同的書里各出現了多少次,這樣的話,「陛下」就要拆開成「陛」和「下」這麼兩個字來數)。要麼我們就得先對漢語文獻預先進行分詞處理,這就增加了難度。
儘管有這些困難,這些年還是有學者另闢蹊徑,陸續做出了些有意思的成果來。我拿德龍(Donald Sturgeon)的研究做個例子。德龍還在讀博士的時候就憑一己之力做出了一個巨大的線上開放電子圖書館,雖然名字叫作「中國哲學書電子化計劃「,但是事實上它收藏了超過三萬部中文著作,從先秦到民國,凡所應有、無所不有,總共有五十億字之多。
德龍很喜歡研究中國古人的「剽竊」現象。他發現中國文獻中——尤其是先秦和秦漢文獻中——經常有不少「相似段落」,有的時候是幾個字,有的時候則是一大段話。有時候,我們的老祖宗會註明出處,坦白地告訴我們他們在引用哪本書里的東西,但是有時候他們就三緘其口、秘而不宣了。
一般來說,一部作品總是傾向於引用跟自己觀點相近的其他作品,那麼通過對不同作品之間的相似段落的分析,就可以看出哪些作品是惺惺相惜的。雖然先秦兩漢的典籍沒有19世紀的英語小說那麼多,但是這個德龍也是一個不願「讀書」的人。所以他寫了一個程序,專門尋找中文文獻中的相似段落,還把這個工具掛在了他的電子圖書館裡,供大家免費使用(有興趣的話,大家可以點這裡去用用看)。
他的方法和主題模型法關係不大,但是他也是通過比較不同文本的遣詞造句來度量它們之間的相似度。計算完了相似度之後,他也繪製了一張圖,把一部部中國典籍用一個個點在圖中表示出來,相似度越高,距離就越近。為了方便讀者,他還把相似的作品群用不同的顏色區分開來。結果我們發現,這些先秦典籍自動歸隊了。
早期中國文獻的相似度(來源:中國哲學書電子化計劃官網)
大家可以看到,關於春秋時期歷史的春秋三傳聚到了一起,周圍是跟先秦歷史有關的其他古籍,比如《絕越書》、《吳越春秋》、《竹書紀年》之類。字典類的《說文解字》、《爾雅》等也聚到了一起,法家、兵家、道家、儒家、算書、醫書等等也都各從其類。不過,我個人看這幅圖,覺得最有趣的是《孟子》和《荀子》的位置。晚唐北宋以前的很長一段時間裡,荀子在儒家裡面的地位其實高於孟子的,直到宋代道學興起了,孟子的地位才得到擡昇,「孔孟之道」才成為口頭禪。在德龍的這張圖裡,很有趣的是,《荀子》和《禮記》等書是聚在一起的,和法家、老莊之流的作品距離也不遠。倒是《孟子》和《論語》相似度相當地高,並且與《尚書》、《周易》、《春秋》等西周或春秋時代的儒家典籍成了鄰居。不知道像二程、朱熹那樣尊孔孟、抑荀子的道學家看到這幅圖,會不會笑得從墓里坐起來?
數字人文另一個方法是「挖礦」。所謂「挖礦」,準確地說,叫作數據挖掘(data mining)。它是把一個文本當作一個蘊藏了豐富數據的大礦山,數據就是裡面的礦藏。研究人員的任務就是要把這些數據從文本中挖掘出來。
這些數據可以分為兩類,一類是描述實體本身的屬性的,另一類則是描述實體之間的關係的。什麼是實體呢?一個「實體」可以指任何東西,它可以是具體的,也可以是抽象的。我們可以把地點作為一種實體,也可以把官職、人物、著作、時間或者其他任何有形或無形的東西作為一種實體。每種實體都會有很多屬性,頭銜、級別就是官職這個實體的屬性,姓名、字型大小、年齡就是人物這個實體的屬性,而地名、行政層級、經緯度則是地點這個實體的屬性。我們可以把世界上發生的事情理解為實體之間的關係。比如,「慶曆五年以歐陽修知滁州」(用我們今天的話說,就是在1045年歐陽修被任命為滁州知州)。這件事就可以理解為歐陽修這個人物實體、知州這個職官實體、滁州這個地點實體、還有慶曆五年這個時間實體之間發生了關係。數據挖掘的任務就是要利用計算機識別和解讀文本中對這些實體及其相互關係的描述,把這類信息提取出來。
這種數據挖掘通常需要用到兩個技術,一個是關鍵詞搜索,一個是模式搜索(pattern search)。要把文本中提到的各類實體挖出來,在演算法上是相對容易的。很多時候,只要我們準備好一套關鍵詞列表(比如一份人名表、一份年號表、一份地名表),然後讓計算機用這些關鍵詞一遍一遍地在文本中搜索,就可以把其中提到的人名(歐陽修)、年代(慶曆五年)、地名(滁州)找出來了。
但是計算機怎麼知道這三個不同實體之間的關係呢?這時我們就需要使用更加複雜的模式搜索了,關鍵詞就沒用了。
由於我們的語言是遵循著一定的法則的,我們根據這些法則把辭彙組織起來,用以表達特定的含義。上述的例子用的就是文言文中表達官員任命的一個常見句式:時間+以+人名+知+地名。這個句式就是我們這裡講的「模式」。通過把這個句式用計算機演算法表達出來,讓計算機在文本中搜索這樣的句式,我們就能在相關時間、人名、地名之間建立起正確的關係了。
當然,我們的語言表達方式是相當靈活和豐富的,同樣的意思也可以通過不同的句式表達出來(如「歐陽修貶知滁州,時慶曆五年也」等等)。這無疑增加了模式搜索的難度。不過,由於常用句式的數量是相當有限的,因此我們通常可以通過很少的幾種模式識別和提取文本中描述的大量的實體關係,這些既包括人物與職官、任職地之間的關係,也包括人物與其籍貫地之間的關係,還包括人物與人物彼此之間的親屬、師友、舉薦等等社會關係。
通過大量的數據挖掘工作,我們就可以將浩如煙海的描述性文字轉變為海量的數據,並在此基礎上,構建出一個強大的資料庫。近些年由哈佛大學包弼德教授牽頭、在包括北京大學和中央研究院在內的中外諸多學術機構通力合作下建構起來的中國歷代人物傳記資料庫(CBDB),就是這樣的一個例子。
一個高度簡化的中國歷代人物傳記資料庫的數據結構模型
當我們利用計算機代替我們去閱讀史料、提取了數據並建立了資料庫以後,我們就可以直接向資料庫提出我們的研究問題了。譬如,我們可以探討在中國歷史上像歐陽修這樣擔任知州的中高層官員都是來自哪個地域啊,他們彼此之間是不是親戚啊,諸如此類。這樣的問題可以引導我們發現中國歷史長河中的宏觀變化。
下面這兩張地圖就是筆者在CBDB開發團隊通過「挖礦」得到的大量歷史數據的基礎上繪製出來的,第一張圖展示的是1040年代擔任知州的宋代官員來自哪些地域,而第二張圖則展示了1210年代擔任知州的宋代官員的出身地。
1040年代北宋知州的出身地 (來源:陳松,「Governing a Multicentered Empire」)
1210年代南宋知州的出身地 (來源:陳松,「Governing a Multicentered Empire」)
通過這兩張圖的對比,我們看到在北宋中期(1040年代),以這些知州為代表的北宋政治精英主要來自開封府和河南府(也就是北宋的東京和西京——即下圖正中間的兩塊深藍色區域),這一點和唐代政治精英聚集於長安、洛陽兩京的情形頗為相似。而到了南宋時期(1210年代),大量的知州出身於沿海各州府,行在臨安府(今杭州)出身的官員則並未表現出明顯的優勢。這個現象出現的原因非常值得探討。非常可能的解釋是,這意味著北宋中期以來科舉的興盛和東南沿海地區經濟文化發展給這些地區的家庭帶來了前所未有的政治機會。
所以,這裡說的「不讀書」並非是什麼書都不讀,而是藉助計算機技術用一個新的方式去讀書。Franco Moretti把這個叫做「遠距離閱讀」(distant reading)。我們古人有句話說道,「不識廬山真面目,只緣身在此山中」。遠距離閱讀有個好處,就是讓我們跳出親身體驗這個廬山,讓我們憑藉計算機技術飛上雲端,鳥瞰19世紀的文學作品、中國早期的文獻資料或者其他圖書典籍,從而發現那些光靠精讀、細讀難以發現的文獻特徵。
這是近年文史哲領域方興未艾的一個新方向,叫做「數字人文」(digital humanities)。藉助於演算法,我們可以看到文史哲文獻中很多用傳統閱讀法無法看到的東西。


※為什麼每個女孩都該讀讀林燕妮
※慘劇面前,我們最不應該做的恰恰是急於做些什麼
TAG:騰訊大家 |