陳佩輝
人文資料電子數(shù)據(jù)庫自誕生以來,在得到越來越多人文學者好評的同時,也受到不少來自文獻學、史學研究者的質(zhì)疑與批評,這些質(zhì)疑在數(shù)據(jù)庫方面集中在數(shù)據(jù)的準確性與全面性上。王瑞來從版本學的角度對數(shù)據(jù)庫中的一些書籍的版本選擇提出批評,認為有些書目的版本選擇有誤,而這會給研究者帶來很多誤解,進而影響研究論文的質(zhì)量[1]。包偉民對數(shù)據(jù)庫選取信息的整全性以及可行性提出質(zhì)疑,認為提取數(shù)據(jù)時建設者的史學修養(yǎng)非常重要,如果不明了選取對象的多種表述方式,就會出現(xiàn)各種漏選,基于數(shù)據(jù)庫研究的準確性自然會令人質(zhì)疑。此外,很多歷史信息的關聯(lián)會隨著研究的不斷深入而凸顯,本來數(shù)據(jù)庫是為了方便研究,而在甄別數(shù)據(jù)的過程中就已經(jīng)完成了相關研究,那么是否還有必要建設數(shù)據(jù)庫就成了新的問題[2]。兩位學者都強調(diào)人文基本功的重要性,認為計算機不可能代替人文學者。其實這是對數(shù)字人文的一個常見誤區(qū),數(shù)字人文本質(zhì)上依然是人文,計算機不可能替代人文研究者,除非人工智能可以像人一樣思考。兩位學者并非完全拒斥數(shù)據(jù)庫,而是保持一定的開放態(tài)度,包偉民認為面對數(shù)字人文,新時代人文學者應該學會使用信息技術[2]。
面對數(shù)字人文對傳統(tǒng)人文學的挑戰(zhàn),兩位學者實質(zhì)上是基于歷史文獻信息的復雜性對數(shù)據(jù)庫建設提出了挑戰(zhàn)以及可能改進的方向。本文即是基于筆者在實際數(shù)據(jù)庫建設過程中的經(jīng)驗,嘗試探討人文學者如何在數(shù)據(jù)庫建設中發(fā)揮其主導作用①。由此既可以解決來自數(shù)字人文時代對史學研究者的挑戰(zhàn),也可以回應歷史文獻研究者對數(shù)據(jù)庫建設的質(zhì)疑。
中國歷代人物傳記資料庫(China Biographical Database Project,CBDB)在建設數(shù)據(jù)庫時主要采用的方法是標記(tagging),即先利用正則表達式提取文獻中的信息,再通過人工審核補充標記。在數(shù)據(jù)庫建設中,人文學者負責審閱文本相關信息,找出古代漢語常見的表述規(guī)則,并在信息技術專家的指導下撰寫簡單的正則表達式,信息技術專家主要負責校正正則表達式和編程。在分工上,人文學者與信息技術專家基本是分開的,彼此不熟悉對方的專業(yè)領域。當研究對象的語言表述較為簡單時,如此分工并不影響數(shù)據(jù)挖掘的質(zhì)量,但當研究對象的語言表述較為復雜時,就很可能會影響信息提取的全面性和準確性。筆者在提取《全宋文》墓志銘親屬信息時,就是按這一分工進行的。不過,在工作過程發(fā)現(xiàn)了非常棘手的問題,即計算機無法識別人名。與官名不同,人名所用的詞匯量很大,無法僅僅根據(jù)詞頻與常見語法結構有效確定其為人名;但在長輩親屬姓名提取中,這個問題并不明顯,因為有許多關鍵詞如諱、曰、娶、氏和句尾標點等可以作為人名的提示信息,計算機可以根據(jù)這些特征提取人名。比如,墓志銘中常見的表述方式為“親屬關系+ 諱(曰)+ 名字”,那么相應的正則表達式(曾祖|祖父|祖等親屬關系)(諱 |曰)([^,。]{0,5})[,。]就可非常簡易地提取出相關信息。但是,在提取子孫等晚輩姓名時,計算機無法識別人名的問題就會嚴重影響數(shù)據(jù)挖掘的準確性和效率。比如下面這則信息:
孫男二十人:長仲俶,右武衛(wèi)大將軍、眉州刺史;次仲誘,右武衛(wèi)大將軍、茂州刺史;次仲虺,右武衛(wèi)大將軍、春州刺史;次仲罃,右監(jiān)門衛(wèi)大將軍;次仲沃、仲芮、仲雪、仲敔、仲靡,并右千牛衛(wèi)將軍;次仲頎、仲霤、仲吟、仲醻、仲逢,并太子右監(jiān)門率府率;次仲誥、仲諲、仲慥,并太子右內(nèi)率府率;餘未命。[3]
無論用長、次還是分號“;”等作為提示詞,都無法提取出所有的人名信息,其中至少一半的人名信息將被忽略。也就是說,雖然發(fā)現(xiàn)了這些常見的表述結構,但無法運用簡易的正則表達式準確地提取人名信息。
仔細審視這段文字所包含的信息,會發(fā)現(xiàn)其大量的信息是關于地名和官名的,如果剔除或者替代這些信息,那么人名是否會較容易被識別出來呢?以下是剔除了這些干擾信息之后的結果:
孫男二十人:長仲俶,、;次仲誘,、;次仲虺,、;次仲罃,;次仲沃、仲芮、仲雪、仲敔、仲靡,并;次仲頎、仲霤、仲吟、仲醻、仲逢,并;次仲誥、仲諲、仲慥,并;餘未命。
顯然,親屬名字就比之前更容易識別,如果再對個別詞匯作進一步處理,就很容易提取相關人名信息。
人名信息雖然不是以有規(guī)律的方式呈現(xiàn)的,但人名周邊的信息是以某種有規(guī)則的方式出現(xiàn),如官名、地名、并、余。而對有規(guī)則的表述,就可以利用計算機的工具進行處理。我們可以把段落中的官名地名信息替換掉,實質(zhì)上與正則表達式提取信息有異曲同工之妙。前者反向凸顯人名信息,先刪除有規(guī)則的表述,然后再提取人名,而后者根據(jù)人名的有規(guī)則表述直接提取人名信息。然而,這種思路適合全部的墓志銘信息嗎?
為驗證該方法是否對整個《全宋文》墓志銘有效,進行隨機抽樣(抽取全體中的百分之十),并進行官名地名以及標點的替換。熟讀關于孫男的墓志銘信息,得到“孫男.{0,2}人[,:][^女孫].{0,50}”這一正則表達式[4]。在visual studio code 中運行該式,在全部墓志銘中發(fā)現(xiàn)787個相關結果。檢索到的信息有四種典型形式。
(1)孫男二人:長應運,登丙戌進士第,儒林郎、兩浙轉運司物料官,即亨之也;次應龍,習舉子業(yè)。[5]
(2)孫男五人:汝直、汝敦、汝平、汝功、汝能、皆業(yè)進士。[6]
(3)孫男六人:曰夷仲,曰虞仲,曰於仲,曰南仲,曰武仲,曰延仲。[7]
(4)孫男二十人:長仲俶,右武衛(wèi)大將軍、眉州刺史;次仲誘,右武衛(wèi)大將軍、茂州刺史;次仲虺,右武衛(wèi)大將軍、春州刺史;次仲罃,右監(jiān)門衛(wèi)大將軍;次仲沃、仲芮、仲雪、仲敔、仲靡,并右千牛衛(wèi)將軍;次仲頎、仲霤、仲吟、仲醻、仲逢,并太子右監(jiān)門率府率;次仲誥、仲諲、仲慥,并太子右內(nèi)率府率;餘未命。[3]
顯然,第二種是比較規(guī)則的句子,可以利用正則表達式直接提取。第一種和第三種經(jīng)過后期程序編寫也可以提取。第四類比較難以提取,要經(jīng)過比較復雜的編程才可以提取出人名。同一個正則表達式尋找到的結果在二次編程處理時有著不同的難度,需要進行不同的處理。再看抽樣的結果:
將新的正則表達式“孫男.{0,2}人([w|/]+([^孫女]{1,10})/*)+”在visual studio code 中運行,選擇全字匹配和正則表達式,提取87個結果,約等于從全部墓志銘中提取結果(787)的11%,這與上面的正則表達式提取結果基本一致。不過,再排除官名、地名后,剩余的信息為人名的可能性很高,數(shù)據(jù)的精確度得到了保證。上面的句子在替換后轉變?yōu)椋?/p>
(1)孫男二人/wm/長應運/wsep/登丙戌/no_noc/第/wsep//no_noc//wsep/兩 浙②/no_noc//wsep/即亨之也/wsep/次應龍/wsep/習舉子業(yè)
(2)孫男五人/wm/汝直/wsep/汝敦/wsep/汝平/wsep/汝功/wsep/汝能/wsep/皆/vno//no_noc/
(3)孫男六人/wm/曰夷仲/wsep/曰虞仲/wsep/曰於仲/wsep/曰南仲/wsep/曰武仲/wsep/曰延仲
(4)孫男二十人/wm/長仲俶/wsep//no_noc//wsep//ns//no_noc//wsep/次仲誘/wsep//no_noc//wsep//ns//no_noc//wsep/次仲虺/wsep//no_noc//wsep//ns//no_noc//wsep/次仲罃/wsep//no_noc//wsep/次仲沃/wsep/仲芮/wsep/仲雪/wsep/仲敔/wsep/仲靡/wsep/并/no_noc//wsep/次仲頎/wsep/仲霤/wsep/仲吟/wsep/仲醻/wsep/仲逢/wsep/并/no_noc//wsep/次仲誥/wsep/仲諲/wsep/仲慥/wsep/并/no_noc//wsep/餘未命
雖然也出現(xiàn)了不是人名的其他詞匯,如“皆”“曰”“長”“次”,但都比較規(guī)則,很容易編寫程序進行排除。顯然,將官名地名信息替代后再提取信息,會減少后期編程的復雜性,使整個提取流程變得更加有效率。
從上述思路出發(fā),筆者嘗試改進數(shù)據(jù)庫建設流程,并將其再造為更能準確提取信息的、人文學者能充分發(fā)揮其作用的數(shù)據(jù)庫建設流程③。在這一嘗試中,重點探討人文學者如何在該流程改進中承擔人文責任和一定的技術責任。
根據(jù)筆者對《全宋文》墓志銘的觀察,幾乎所有特定親屬關系的表述都在同一個句子中表述。這樣,就可以通過提取關鍵句子來確定信息提取的范圍。
第一步:句子壓縮,將《全宋文》墓志銘中含有親屬關系的句子提取出來。這一步是信息技術專家提出的,但由于文本標點有時不規(guī)范,特定親屬信息并不在同一個句子中,會造成信息漏選。然而,后面人工審核查漏補缺的流程基本上能夠保證信息的全面性,所以這一步并不會帶來難以解決的困難。在這一步,需要制作一個所有《全宋文》墓志銘中出現(xiàn)的親屬關系的親屬關系表,并清楚地界定各個親屬關系的含義,這就需要人文學者發(fā)揮主要作用,因為歷史知識基礎決定了關系表的準確性和完備性?;贑BDB 原有的親屬關系表,進行補充和編碼,建立了新的關系表。除了“祖”“考”“子”“男”④等直接表示親屬關系的詞匯外,還需要將“娶”“配”“嫁”“歸”“適”等表示嫁娶的詞匯收入其中,因為這些詞間接指向女性親屬如祖妣、妻子,或者男性親屬如女婿、孫婿等。但在處理“配”“歸”“適”這些詞匯時,要消除歧義,因為表示嫁娶只是它們眾多含義中的一個。它們在墓志銘中可能以嫁娶之外的含義出現(xiàn),如“適”有去往某地之義。因此,在選取含有這些詞匯的句子時,需要加上其他條件,如句子中必須同時包含“氏”“夫人”“女”“女孫”等詞匯中至少一個時才能選取。如果不加限制條件,那么自動提取結果的錯誤率將會非常高,會增加很多審核工作,由此可見人文學者在確定句子信息壓縮方面有著非常重要的作用。當然,在處理古代史信息時,不能為了提高數(shù)據(jù)的精確性而犧牲數(shù)據(jù)的選取數(shù)量,這一點與社會學、經(jīng)濟學的數(shù)據(jù)處理方式不同。后者往往擁有巨量數(shù)據(jù)以至于只能抽樣選取,少選取一定數(shù)量并不影響分析的準確性,而古代史的數(shù)據(jù)尤其是宋代之前保存下來的信息并不多,因此要盡可能全部選取。
第二步:字典詞匯替換,將句子中的官名和地名分別替代為no_noc 和ns。與第一步類似,對CBDB 中宋代的官名表和地名表進行修改與補充,創(chuàng)建新的官名表和地名表。必須指出,如果沒有宋代的官名表和地名表,這項工作就會很受影響,整個新流程也將會變得不如之前方便、高效,這顯示出數(shù)據(jù)累積的重要性。在編輯官名表和地名表時,盡可能不要出現(xiàn)僅有一個字的官名或地名,比如“令”“守”等有歧義的詞匯。但有些含義比較單一的詞匯可以保留,如表示通判的“倅”。需要特別指出的,有些地名或官名與親屬關系名稱用詞相同,這部分官名、地名也需要考慮是否刪除。比如“長子”這個地名,如果作為地名全部替換,就會出現(xiàn)將大量作為親屬關系名稱的“長子”被替換為ns,必然會影響親屬信息提取的準確性。此外,表示親屬關系的“庶子”與表示官名的“太子”“庶子”,表示縣名的“盧氏”與表示姓氏的“盧氏”雖然可能混淆,但這樣的重合非常少,以致可以忽略。此外,本研究還建立官職前常用委任詞表(權、遷、授、贈等)。在建立各種表之后,就要運行相應的替換。在編寫程序時要注意其替換順序,一般以字數(shù)長短為優(yōu)先級,長字符串優(yōu)先替換,同時地名表要先于官名表。
第三步:編輯正則表達式與編寫程序。這里不討論那些能夠直接提取到信息的親屬信息,因為這些工作不需要人文學者提出特殊的要求或建議。但在子孫、女、女婿等親屬信息提取上則需要人文學者的參與,才能較有效地提取相關有效信息。還以前述四則信息為例,分析如何在人文學者引導下提取有效信息。在地名和官名信息被替換后,發(fā)現(xiàn)還有一些干擾詞匯,這些干擾詞中有很多是共通的,大概有以下幾類⑤:
表示次序:長,次,幼,曰,季曰,伯曰,仲曰,叔曰⑥,長即,也,次即。
表示科舉:貢,等,第,及第,中第,中舉,舉子,登,科。
表示就任官職的動詞:今,今以,今爲,授,事,都,轄,新,知,舊,監(jiān),倉,庫,起,終,故,前,後,左,右。
表示行政區(qū):州,軍,路,郡,縣,府。
表示地名:江淮,兩浙,寺。
表示官職:尉,某官,官,稅務,支鹽。
表示社會身份:士族,士人。
提示職業(yè)的詞匯:俱,業(yè),習。
提示兩人以上的詞匯:皆,並,并,餘,俱,竝。
表示人生過程的詞匯:未,未冠,未仕,未官,未命,先歿,先亡,先公,早夭,早亡,早世,夭,卒,幼,尚,尚幼,未名,前卒,先卒,蚤卒,俱有,早,早卒,喪,早喪。
表示仕宦:未仕,未銓,左銓,司戶,戶部,戶。
其他固定搭配:一,一人,二,二人,一尚,二尚,三尚,三,三人,三曰,四人,等。
由于計算機無法識別表示名字的詞匯,所以需要把這些詞匯在編程中進行批量處理,這與前面的替換在原理上是一致的。把這些詞匯刪除之后,再看這四個句子的情況:
(1)孫男二人/wm/應運/wsep/丙戌/no_noc//wsep//no_noc//wsep//no_noc//wsep/即亨之/wsep/應龍/wsep/
(2)孫男五人/wm/汝直/wsep/汝敦/wsep/汝平/wsep/汝功/wsep/汝能/wsep//vno//no_noc/
(3)孫男六人/wm/夷仲/wsep/虞仲/wsep/於仲/wsep/南仲/wsep/武仲/wsep/延仲
(4)孫男二十人/wm/仲 俶/wsep//no_noc//wsep//ns//no_noc//wsep/仲誘/wsep//no_noc//wsep//ns//no_noc//wsep/仲 虺/wsep//no_noc//wsep//ns//no_noc//wsep/仲 罃/wsep//no_noc//wsep/仲 沃/wsep/仲 芮/wsep/仲 雪/wsep/仲敔/wsep/仲靡/wsep//no_noc//wsep/仲頎/wsep/仲霤/wsep/仲吟/wsep/仲醻/wsep/仲逢/wsep//no_noc//wsep/仲誥/wsep/仲諲/wsep/仲慥/wsep//no_noc//wsep/
在刪除干擾詞匯后,除第一個句子中的“丙戌”被誤認為名字外(“即亨之”由于超過兩個字而不會被認為名字,因為這里的名字略去了姓,而古代的人名極少出現(xiàn)一個姓氏后面加三個字的情形),所有其他詞匯都是人名。而正則表達式的功能就不再是精確提取人名,而是在程序中被當作親屬信息的表述結構提示。如果說在前兩步中,人文學者主要承擔文獻辨析責任,那么在這一點上,人文學者承擔起更多的技術責任,改變了技術的作用方式和組合方式。這也是整個流程改造非常重要的兩個點之一,甚至是最重要的一個點。因為在官名地名替換后,計算機不能準確定位人名的問題依舊存在,運用正則表達式提取人名依然問題重重。只有將所有的干擾信息盡可能刪除后,才能保證人名提取的準確性。這部分內(nèi)容與詞典替換有相似之處,但并非完全相同,不可并為一表,因為有些內(nèi)容一旦被標準化替換,就會出現(xiàn)各種具體語境的替換錯誤。那么這些表示子孫的正則表達式相比于未替換或未刪除干擾信息就簡化了很多,最主要的表達式如下:
[^女]?(曾孫|孫)([^男女]{0,3}?)人(/.+)
[^女]?(孫子|子)([^男女]{0,3}?)人(/.+)
(子|孫|孫|曾孫)男(.{0,3}?)人(/.+)
[^子孫孫]男(.{0,3}?)人.{0,50}
(子|孫|曾孫|曾孫男|男|孫男|子男|孫男|孫)[一二三四五六七八九十]/
(子|孫|曾孫|曾孫男|男|孫男|子男|孫男|孫|女|婿)曰[^/].{0,50}
生[一二三四五六七八九十][男|子][^女孫].{0,150}
[^第][一二三四五六七八九十][男|子][^女孫].{0,150}?/wm/
以上幾個正則表達式幫助我們找到4000 條左右的子孫信息,如果按照每個信息有二到三個人名,那么將會得到10000 條左右的親屬信息。關于女兒女婿的信息也可以通過類似的方法提取,不再贅述。
第四步:人工審核。與此前審核需要通看全文查漏補缺不同,在壓縮句子時就已經(jīng)將眾多的信息刪除,方便人工審核時快速找到信息。在輸出結果形式上,采用Excel 表格,便于批量刪除,大大提高人工審核階段的效率。由于在Excel 表格中能直觀地看到大量的數(shù)據(jù),也便于發(fā)現(xiàn)存在問題的規(guī)律,有利于反饋給相關信息技術專家,以進行正則表達式的修正或者干擾詞匯的刪除,這一技術創(chuàng)新是人文學者提出并由信息技術專家實現(xiàn)的??紤]到宋代歷史信息比較稀缺,還需繼續(xù)采用文本人工標記的方法,雙重審核,以保證數(shù)據(jù)的全面性和準確性。
前面提到,之所以采用壓縮替代的方法進行人名提取,是因為目前的分詞算法還無法有效識別人名。造成這種現(xiàn)象的原因可能是人名的規(guī)律還沒被足夠地認識,也可能是人名的命名本身并無規(guī)律可循,或者較有命名規(guī)律的名字占比較小。
命名有規(guī)律可循嗎?答案是肯定的。商代諸王的命名中有很多天干地支詞匯,尤其是天干(甲、乙、丙、丁、戊、己、庚、辛、壬、癸)[8]。面對南北朝人名中大量“之”的現(xiàn)象,陳寅恪指出,由于清代考據(jù)大師錢大昕等人的誤讀并認為名字中“之”等字的道教信仰背景,因此王羲之的兒子可以叫王獻之,并且“之”字在書寫中可以省略也不用避諱[9]。同樣,和尚道士的法號名字更是有規(guī)律,如和尚的姓自釋道安以后很多為“釋”。白惇仁對中國及周邊地區(qū)的命名現(xiàn)象進行了考察,認為先秦時期命名中就有五行相生思想的滲入,在宋代有進一步擴散的趨勢。依據(jù)五行進行排行,不一定與常見的排行字重合,如明代宗室的命名[10]。朱孟臻在《宋代姓名文化研究》中也考察了宋代的數(shù)字名現(xiàn)象[11]。這些研究充分說明了古代命名具有一定的規(guī)律,而信息技術專家對人名命名規(guī)律的忽視,則可能會造成其分詞算法僅僅根據(jù)人名出現(xiàn)的規(guī)律,如詞頻或者常見的語法結構(時間、官名、地名等組合)來設計[12]。張海鷗考察宋代的名字說現(xiàn)象,認為由于宋儒復興古禮,因此對于命名非常重視[13]。
受前人研究啟發(fā),筆者對近萬個子孫輩名字進行考察,發(fā)現(xiàn)宋人名字背后的幾個常見現(xiàn)象。
第一類是偏旁部首相同或者同用一個行列的名字。這一類現(xiàn)象最多,比如王安石的兄弟輩(安道、安石、安世、安禮、安上)與子輩(雱、旉、旁、瓬、防、斿、旂、放)。
第二類是引用四書五經(jīng),主要是周易卦名以及儒家圣賢名字以及常用修身用語。比如,蘇才翁的孫輩(之顏、之閔、之冉,之孟、之偃、之友、之恂、之悌、之邵、之楊、之南、之烈、之點)和曾孫輩(開、憲、潔、商、若、赤、仕)大部分取法孔門弟子名字,且孔門弟子都是孔子的第一代弟子,在一定意義上破除了尊卑之差。
第三類是按照五行命名,比如邵潛(水旁,五行屬水)之子輩(材、梂、梃、榑,木旁,五行屬木)與孫輩(勳、然、熊、熹、藨、譙、點、羔,灬旁,五行屬火;這里必須指出“勳”字簡體字為“勛”,一旦簡化就無法發(fā)現(xiàn)其中的五行屬性),朱熹的父親為朱松也屬于此類現(xiàn)象。
第四類是名字中包含伯仲叔季等序列詞,比如伯奮、叔獻、季仲。
上述命名規(guī)則只是筆者略微觀察而得,再次證明運用信息技術獲得大量相關人名信息,將有助于人文學者開展其專業(yè)研究。另外,雖然發(fā)現(xiàn)的規(guī)則尚未窮盡,但對于信息技術專家進行分詞研究具有重要的意義。也就是說,不能僅僅依據(jù)人名出現(xiàn)的規(guī)律進行人名的分詞研究,還應該根據(jù)命名規(guī)律,比如漢字的偏旁部首以及其五行屬性或者它們的組合類型來進行研究,甚至要結合漢字的筆畫數(shù)來發(fā)現(xiàn)和運用名字背后的規(guī)則。那么信息技術專家能否按照這一思路重新進行分詞,進而較為有效地完成相關人名的直接提取工作,目前尚在探索中。筆者將會與相關信息技術專家合作進行進一步的考察,相關結果會另撰一文。再次需要強調(diào)的是,有些在信息技術專家看來很難高效解決的問題,經(jīng)過人文學者的重新思考,能夠發(fā)現(xiàn)新思路新方法,為更高效地開展人文方面的數(shù)據(jù)挖掘奠定方法論基礎。
人文學者從文本出發(fā)嘗試與信息技術專家共同進行數(shù)據(jù)挖掘,不斷向信息技術專家提出問題,在信息技術專家的幫助下學會數(shù)字思考,進而嘗試提出可能的解決思路。在這一合作過程中,發(fā)現(xiàn)無論哪種標記方法本質(zhì)上都是利用自然語言表述中的固有規(guī)則來提取所需要的信息。經(jīng)過句子壓縮,節(jié)省了時間和成本,高效地利用正則表達式標記所需的信息。正則表達式也不再僅限于標記一些表述結構比較簡單的信息,擴大了其應用的范圍。同時,在某種程度上改變了其本來的意義,即不再是作為準確信息提取的工具而是成為提示信息出現(xiàn)的工具,與編程相配合,高效地解決了復雜表述中的信息標記問題。在人名分詞方面,人文學者也提出了新的方法與思路,對開展進一步的數(shù)據(jù)挖掘具有重要意義。當然,如果沒有信息技術專家,人文學者的想法不可能得以實現(xiàn),二者是不可或缺的。
筆者還發(fā)現(xiàn),從數(shù)據(jù)準確性的角度看,數(shù)據(jù)庫建設應當以人文學者為中心;從數(shù)據(jù)庫建設效率的角度看,數(shù)據(jù)庫建設當以信息技術專家為中心,但人文學者也發(fā)揮著重要作用。歷史人文數(shù)據(jù)庫的特點又決定了人文學者的思考在數(shù)據(jù)庫建設過程中更加重要。在合作中,不斷改進數(shù)據(jù)挖掘流程,最終產(chǎn)生出新的方法,提高數(shù)據(jù)庫建設的效率和準確性。由此可見,新流程的探索,既離不開信息技術專家的思考,也離不開人文學者的不斷思量與發(fā)問。人文學者與信息技術專家在建設數(shù)據(jù)庫過程中雖有分工,但更應該彼此合作,互相熟悉,加強交流與溝通,尤其是作為研究者和數(shù)據(jù)庫建設參與者的人文學者更應熟悉信息技術,由此才能使比較成熟的信息技術為建設數(shù)據(jù)庫服務。當前,數(shù)字人文的本質(zhì)還是人文,人文學者應該更加積極地面向信息技術,向信息技術專家學習,在數(shù)據(jù)庫建設中承擔起技術責任,為技術的改進做出應有貢獻。
致謝 本文在撰寫過程中得到美國哈佛大學中國歷代人物傳記資料庫(CBDB) 項目經(jīng)理馬季先生和王宏甦先生的指導,謹致謝忱!
注 釋
①已有學者對此問題進行更加全面和理論化的論述,本文側重于人文學者在參與數(shù)據(jù)庫建設中的具體思考與反思。參見:王宏甦.跨學科合作中的人文學者.第九屆上海國際圖書館論壇論文,2018.
②由于宋代地名表中沒有兩浙,在這里就沒有被替換。又因這樣的例子很少,沒有必要添入地名表進行替換。
③本文提及的所有文本、表格和詳細的Python 代碼以及各種輸出結果已在網(wǎng)上發(fā)布,參見:https://github.com/cbdbproject/CBDB_Laxmi/tree/master/quan_song_wen.
④考、子、男等除表達親屬關系之外,還有其他意思,尤其是子,在古代還有個常用含義是先生、老師的尊稱,由此引申,一些偉大的思想家在后世就以姓氏加上“子”的形式被尊稱,如孔子、孟子、老子、莊子。因此,要做一個仔細的審查與排除,將這些專有名詞刪除。還有一類常見的親屬關系表述是兩個不同親屬連稱,如父母、父子、男女、兄弟。它們所在的句子往往并沒有親屬的人名信息,因此也要對其進行排查與刪除,以減少后期審查工作的強度。最后一種常見的是親屬關系言說某些話,比如“母曰:”而非“母曰+名字”,這類表述也不包含需要提取的信息,也需要將其排除在外。為此,需要建立排除與刪除表以供后期編程參考。
⑤這些詞匯首先根據(jù)正則表達式提取的文本進行總結,然后運行編程得出結果,再進行進一步的修正。
⑥伯仲叔季四個字的每個字都不能單獨刪除,因為古代中國的名字中不少會出現(xiàn)伯仲叔季,比如第三和第四則信息就出現(xiàn)了“仲”,且出現(xiàn)了23 次之多。但是,“伯曰”“仲曰”表示長幼次序的可以刪除而不影響結果。