肖 磊,陳小荷
(南京師范大學(xué) 文學(xué)院,江蘇 南京 210097)
我國(guó)有豐富的文獻(xiàn)典籍,這些文獻(xiàn)典籍在傳抄、引用、印刻、校改過(guò)程中往往出現(xiàn)各種訛誤或替代,從而造成一種文獻(xiàn)的各版本之間或不同文獻(xiàn)相關(guān)內(nèi)容之間在字、詞、句等方面存在差異,這就是所謂異文。例如:
(1a) 三月公及邾儀父盟于蔑 (《左傳·隱公元年》)
(1b) 三月公及邾婁儀父盟于眛 (《公羊傳·隱公元年》)
(2a) 循牆而走,亦莫余敢侮 (《左傳·昭公七年》)
(2b) 循牆而走,亦莫敢余侮 (《史記·孔子世家》)
大量的異文為語(yǔ)言學(xué)、文獻(xiàn)???、史學(xué)等方面的研究提供了豐富的材料。(1)中“邾”和“邾婁”,“蔑”和“眛”兩處異文,音韻學(xué)家和歷史地理學(xué)家都感興趣。(2)是對(duì)同一鼎銘的引用,“莫余敢侮”和“莫敢余侮”這處異文顯示了從上古漢語(yǔ)到中古漢語(yǔ)的語(yǔ)法變化。
版本異文是同—文獻(xiàn)的不同版本之間在本應(yīng)相同的字句上出現(xiàn)的差異,例如(1)。其他統(tǒng)稱為非版本異文,例如(2)。版本異文和非版本異文的信息處理有所不同。研究版本異文,首先需要盡可能地找出各版本之間的不同之處,于大同中求小異。研究非版本異文,則首先需要盡可能地找出相關(guān)文獻(xiàn)中的相似部分,在這些相似部分發(fā)現(xiàn)有意義的差異。本文主要研究版本異文的信息處理,關(guān)于非版本異文的信息處理,我們將另文探討。
我國(guó)異文研究歷史悠久,古人對(duì)經(jīng)傳的注疏中就發(fā)掘了許多異文。近現(xiàn)代也有不少學(xué)者系統(tǒng)研究專書的版本異文[1-2]。語(yǔ)文學(xué)家的異文研究,主要依靠他們深厚的文獻(xiàn)功底以及“博聞強(qiáng)記”的個(gè)性特征。先天的才能可遇而不可求。后天的努力人人可以做到,但皓首窮經(jīng)實(shí)在代價(jià)太大。上世紀(jì)九十年代以來(lái),學(xué)者們已經(jīng)提出古籍和古漢語(yǔ)信息處理的任務(wù)[3-5],但尚未有人著手版本異文的信息處理。如果能夠讓計(jì)算機(jī)先列出異文候選,然后加以人工甄別,則可以收到事半功倍的效果。更進(jìn)一步,計(jì)算機(jī)應(yīng)該能夠?qū)λ蚜_到的異文按照研究者的要求進(jìn)行初步的分類和統(tǒng)計(jì),在此基礎(chǔ)上對(duì)同一文獻(xiàn)的各個(gè)版本做宏觀的比較。
本文只研究異文的自動(dòng)發(fā)現(xiàn),處理的個(gè)案是三傳春秋?!洞呵铩肥俏覈?guó)現(xiàn)存最早的一部編年體史書,相傳為孔子所著。因其過(guò)于簡(jiǎn)略,故后世詮釋之作迭出。據(jù)《漢書·藝文志》記載,為《春秋》作傳者共五家,現(xiàn)在流傳下來(lái)的有《左傳》、《公羊傳》、《谷梁傳》。三傳仍按年代順序,先列某年的春秋經(jīng),然后以經(jīng)文為綱詳述該年的重要?dú)v史事件或闡釋經(jīng)文的含義。三傳所列的春秋經(jīng)大體相同,但也有不少差異,可看做是《春秋》的三個(gè)不同版本。實(shí)驗(yàn)中所用的三傳春秋經(jīng)電子版均為GBK編碼的繁體文本,來(lái)自香港中文大學(xué)中國(guó)文化研究所中國(guó)古籍研究中心開(kāi)發(fā)的漢達(dá)文庫(kù)*http://www.chant.org/。
本文以下部分的結(jié)構(gòu):第2節(jié)概述版本異文的特點(diǎn),由此得出基本的處理步驟;第3節(jié)討論句珠配對(duì)算法,句珠配對(duì)的評(píng)價(jià)函數(shù)為句珠相似度;第4節(jié)討論異文配對(duì)算法,異文配對(duì)的評(píng)價(jià)函數(shù)主要是“同文”長(zhǎng)度;第5節(jié)是簡(jiǎn)短的結(jié)論以及對(duì)古籍信息處理特點(diǎn)的認(rèn)識(shí)。
版本異文的特點(diǎn)是文獻(xiàn)的各個(gè)版本大同小異,具體來(lái)說(shuō)有以下幾個(gè)方面:
(一) 篇章結(jié)構(gòu)大體相同,因此應(yīng)該以篇章為單位進(jìn)行處理,以免異文配對(duì)發(fā)生跨越篇章界限的錯(cuò)誤。有時(shí)某個(gè)版本可能多出一些篇章,例如《紅樓夢(mèng)》有八十回版本與一百二十回版本?!豆騻鳌泛汀豆攘簜鳌匪写呵锝?jīng)均截止于魯哀公十四年“西狩獲麟”,《左傳》所列春秋經(jīng)則記述至魯哀公十六年“孔丘卒”,顯為后人所加。對(duì)于多出的篇章,不加比較也就是了。《春秋》的一個(gè)篇章就是其中所記述的一年,從隱公元年到哀公十四年,共242篇。
(二) 篇章內(nèi)句子個(gè)數(shù)大體相同且基本對(duì)應(yīng),因此原則上可以根據(jù)標(biāo)點(diǎn)分割句子,逐句進(jìn)行比較。但是標(biāo)點(diǎn)系后人所加,各個(gè)版本的斷句或有不同*《左傳》中的經(jīng)與傳有清楚的分隔?!豆騻鳌泛汀豆攘簜鳌返慕?jīng)與傳時(shí)有交錯(cuò),這也是導(dǎo)致各版本的春秋經(jīng)斷句不同的原因之一。。當(dāng)然,完全忽略這些標(biāo)點(diǎn)也不可取,可能導(dǎo)致篇章范圍內(nèi)的異文配對(duì)錯(cuò)誤。我們的做法是先按標(biāo)點(diǎn)分割句子并隱去所有標(biāo)點(diǎn),接著將各版本中的句子拼接為“句珠”,尋找兩版本之間相似度最大的句珠配對(duì),然后在句珠中發(fā)現(xiàn)異文。
(三) 大多數(shù)句珠的文本是完全相同的,只需關(guān)注那些文本不完全相同的句珠。我們的基本方法是從句珠中去掉相同文字,遇到異文時(shí)再向后搜索相同文字以確定異文的右邊界并輸出異文,如此循環(huán)直至句珠遍歷完畢。
篇章分割比較簡(jiǎn)單。本文只討論句珠配對(duì)算法和異文配對(duì)算法。
“句珠”(sentence bead)這個(gè)術(shù)語(yǔ)是從機(jī)器翻譯雙語(yǔ)對(duì)齊研究中借用的。本文用這個(gè)術(shù)語(yǔ)指文獻(xiàn)的兩個(gè)版本中內(nèi)容對(duì)應(yīng)的句子*本文中句珠配對(duì)類似于雙語(yǔ)的句子對(duì)齊,而異文發(fā)現(xiàn)則類似于雙語(yǔ)的詞匯對(duì)齊,但對(duì)齊方法有很大不同。。如果兩個(gè)版本中的句子個(gè)數(shù)相同并且一一對(duì)應(yīng)的,則無(wú)需配對(duì)。實(shí)際上兩個(gè)版本斷句常有不同,斷句有粗有細(xì),需要將一版本的幾個(gè)短句拼接起來(lái)與另一版本的一個(gè)長(zhǎng)句進(jìn)行配對(duì)。除了“一對(duì)多”的情況之外,還可能有“多對(duì)多”等各種復(fù)雜情況。
句珠配對(duì)算法的目標(biāo)是遍尋篇章內(nèi)相似度最大的句珠,并輸出所有包含異文的句珠(以下簡(jiǎn)稱“異文句珠”)。
設(shè)兩版本某篇章的句子序列分別為SA和SB,句子個(gè)數(shù)分別為為m和n,當(dāng)前等待配對(duì)的第一個(gè)句子分別為SA[i]和SB[j],配對(duì)中最后一個(gè)句子分別為SA[p]和SB[q],則句珠配對(duì)的任務(wù)可表示為:
Bead(i,p;j,q)*
其中,i≤p≤m,j≤q≤n,SA[i..p]和SB[j..q]是句珠,Similarity是句珠的相似度函數(shù),取值范圍是0~1。相似度的計(jì)算方法在3.2節(jié)中討論。本算法的任務(wù)就是要在所有可能的配對(duì)中找出相似度最大的句珠Bead(i,p;j,q)*。
算法的輸入是來(lái)自版本A和版本B中對(duì)應(yīng)篇章的句子序列SA[1..m]和SB[1..n]。所允許的配對(duì)類型為x:y,x和y最小值均為1,最大值為K。算法在SA[i..i+K-1]和SB[j..j+K-1]范圍內(nèi)尋找相似度最大的句珠SA[i..max_p]和SB[j..max_q],若相似度小于1則為異文句珠并輸出之。在時(shí)間復(fù)雜度為O(K2) 的搜尋過(guò)程中,若發(fā)現(xiàn)將要添加的兩個(gè)句子完全相同,則終止搜尋,這樣不僅可以節(jié)省一些時(shí)間,而且可以使得到的句珠較短。句珠配對(duì)算法GetBeads偽碼如下:
GetBeads(SA[1..m], SB[1..n]) {
for(i=1, j=1; i<=m and j<=n; ) {
max_simi=0; max_p=max_q=0;
for(p=i; p<=min(i+K-1, m); p++) {
for(q=j ; q<=min(j+K-1, n); q++) {
if(p>i and q>j and SA[p]==SB[q]) goto OUTPUT;
simi=Similarity(SA[i..p], SB[j..q]);
if(simi> max_simi) {
max_simi =simi;
max_p=p; max_q=q;
}
if(max_simi==1.0) goto OUTPUT;
}
}
OUTPUT:
if(max_simi <1.0) Output(SA[i..max_p], SB[j..max_q]);
i=max_p+1; j=max_q+1;
}
}
對(duì)于本文所研究的個(gè)案,設(shè)K=3。
本算法沒(méi)有設(shè)置相似度閾值,因此即使是兩個(gè)毫不相干的句子序列也能完成句珠配對(duì),最壞情況是每個(gè)句珠的相似度均為0,且每個(gè)句珠中都只含一個(gè)句子。
句珠相似度的計(jì)算方法有以下幾種選擇:
(一) 句珠中兩個(gè)句子的相同字符個(gè)數(shù)與兩個(gè)句子的字符總數(shù)之比。這種方法簡(jiǎn)單易行,但忽略了字符的排列順序,例如下面兩個(gè)句子將被認(rèn)為是完全相同:
(3a) 宋人以齊人蔡人衛(wèi)人陳人伐鄭 (《左傳·桓公十四年》)
(3b) 宋人以齊人衛(wèi)人蔡人陳人伐鄭 (《公羊傳·桓公十四年》)
(二) 句珠中兩個(gè)句子的共同前綴、共同后綴的長(zhǎng)度之和與兩個(gè)句子的字符總數(shù)之比。共同前綴是指兩個(gè)句子開(kāi)頭的相同子串,共同后綴是指兩個(gè)句子末尾的相同子串。例如,(3a)與(3b)的共同前綴是“宋人以齊人”,共同后綴是“人陳人伐鄭”。這種方法考慮了字符的排列順序,大多數(shù)情況下是適用的。但如果異文恰好出現(xiàn)在句子的開(kāi)頭或結(jié)尾,計(jì)算結(jié)果就顯得不夠合理。例如,下面兩個(gè)句子將被認(rèn)為毫不相似:
(4a) 五月丙午及齊師戰(zhàn)于奚 (《公羊傳·桓公十七年》)
(4b) 夏五月丙午及齊師戰(zhàn)于郎 (《谷梁傳·桓公十七年》)
(三) 用1減去句珠中兩個(gè)句子的編輯距離與最大長(zhǎng)度之比。趙作鵬等提出了一種改進(jìn)的編輯距離算法,拓展了交換操作,能夠更精確地計(jì)算編輯距離[6]。但算法的時(shí)間復(fù)雜度較高,而且當(dāng)其中一個(gè)句子拼接了下一句再進(jìn)行比較時(shí),需要重新計(jì)算編輯距離。
(四) 句珠中兩個(gè)句子共有的bigram個(gè)數(shù)與兩個(gè)句子的bigram總數(shù)之比。這里bigram是指兩個(gè)相鄰字符或只相隔一個(gè)位置的兩個(gè)字符,這種方法的好處是既考慮了字符的排列順序又能將子串相似性較為充分地表達(dá)出來(lái)。例如,(3a)與(3b)共有的bigram為“宋人、人以、宋以、以齊、人齊”等等,相似度為0.87,(4a)與(4b)的相似度為0.83. 當(dāng)其中一個(gè)句子拼接了下一句再進(jìn)行比較時(shí),只需對(duì)添加的部分抽取bigram。因此,我們采用這種方法來(lái)計(jì)算句珠相似度。當(dāng)兩個(gè)句子長(zhǎng)度均小于3時(shí),無(wú)法抽取到足夠的bigram,因此相似度定義為1.0(完全相同時(shí))或0.5(共同前綴或共同后綴長(zhǎng)度為1時(shí))。
根據(jù)原有標(biāo)點(diǎn),《左傳》春秋經(jīng)1 834句(已去掉多出部分),《公羊傳》春秋經(jīng)1 761句,《谷梁傳》春秋經(jīng)1 825句。若忽略配對(duì)方向,例如1:2和2:1合并為1:2,則各種配對(duì)類型的頻次統(tǒng)計(jì)如下:
總共1 066個(gè)異文句珠中,見(jiàn)于《左傳》與《公羊傳》春秋經(jīng)428個(gè),見(jiàn)于《左傳》與《谷梁傳》春秋經(jīng)255個(gè),見(jiàn)于《公羊傳》與《谷梁傳》春秋經(jīng)383個(gè)。從這個(gè)角度看,《左傳》與《公羊傳》春秋經(jīng)的差異最大,《左傳》與《谷梁傳》春秋經(jīng)差異最小。
下面(5a)兩句處于篇末,(5a)第一句與(5b)第一句、前兩句、全部三句的相似度依次為0.28,0.59,0.78,(5a)全部?jī)删渑c(5b)第一句、前兩句、全部三句的相似度依次為0.23,0.50,0.68:
(5a) 鄭伯髡頑如會(huì)未見(jiàn)諸侯丙戌卒于鄵 (《左傳·襄公七年》)
陳侯逃歸
(5b) 鄭伯髡原如會(huì) (《谷梁傳·襄公七年》)
未見(jiàn)諸侯
丙戌卒于操
由此得到配對(duì)類型為1:3的異文句珠:
{“鄭伯髡頑如會(huì)未見(jiàn)諸侯丙戌卒于鄵”,“鄭伯髡原如會(huì)未見(jiàn)諸侯丙戌卒于操”}
下面(6a)與(6b)各有兩句,都處于篇末。(6a)第一句與(6b)第一句、全部?jī)删涞南嗨贫纫来螢?.86,0.68,(6a)全部?jī)删渑c(6b)第一句、全部?jī)删涞南嗨贫纫来螢?.72,0.87:
(6a) 十有二月己丑公及晉侯盟 (《左傳·文公十三年》)
公還自晉鄭伯會(huì)公于棐
(6b) 十有二月己丑公及晉侯盟還自晉 (《公羊傳·文公十三年》)
鄭伯會(huì)公于斐
由此得到配對(duì)類型為2:2的異文句珠:
{“十有二月己丑公及晉侯盟公還自晉鄭伯會(huì)公于棐”,“十有二月己丑公及晉侯盟還自晉鄭伯會(huì)公于斐”}
這里從信息處理的角度將異文定義為:句珠中完全不同的兩個(gè)子串。允許其中一個(gè)子串是空串,但不能都是空串。例如,“衛(wèi)人蔡: 蔡人衛(wèi)”不是一個(gè)異文,因?yàn)槠渲泻邢嗤哟叭恕?,需分解為“衛(wèi):蔡”和“蔡:衛(wèi)”兩個(gè)異文。
按照這個(gè)定義得到的異文絕大多數(shù)是單字對(duì)單字,也有些是空串對(duì)單字、空串對(duì)多字、單字對(duì)多字、多字對(duì)多字,等等。例如:
(7a) 庚寅我入祊 (《左傳·隱公八年》)
(7b) 庚寅我入邴 (《谷梁傳·隱公八年》)
(8a) 邾人伐我南鄙 (《左傳·襄公十五年》)
(8b) 邾婁人伐我南鄙 (《公羊傳·襄公十五年》)
(9a) 戊子晉人及秦人戰(zhàn)于令狐晉先蔑奔秦 (《左傳·文公七年》)
(9b) 戊子晉人及秦人戰(zhàn)于令狐晉先眛以師奔秦 (《公羊傳·文公七年》)
(10a) 九月紀(jì)裂繻來(lái)逆女 (《左傳·隱公二年》)
(10b) 九月紀(jì)履緰來(lái)逆女 (《公羊傳·隱公二年》)
從語(yǔ)言學(xué)或歷史地理學(xué)角度來(lái)看,(8)中的異文都應(yīng)該是“邾:邾婁”,按本節(jié)的定義,這個(gè)異文是“◇:婁”,因?yàn)楹?jiǎn)單的字符串匹配并不能確定應(yīng)把“邾婁”看做一個(gè)詞還是把“婁”看做衍文。類似地,(9)中的異文本應(yīng)是兩處,“先蔑:先眛”和“◇:以師”,這里被當(dāng)做是一處??梢钥紤]在本節(jié)異文發(fā)現(xiàn)算法的基礎(chǔ)之上用統(tǒng)計(jì)方法得到更具語(yǔ)言學(xué)或文獻(xiàn)學(xué)意義的異文數(shù)據(jù)。(10)中的異文該怎么算,可能依研究興趣而有所不同。從文獻(xiàn)學(xué)角度來(lái)說(shuō),應(yīng)該認(rèn)為“紀(jì)裂繻:紀(jì)履緰”是異文,從音韻學(xué)角度來(lái)說(shuō),應(yīng)該認(rèn)為有“裂:履”和“繻:緰”兩處異文。
異文配對(duì)算法的基本思想是:先去掉兩個(gè)句子的共同前綴,使得異文出現(xiàn)在串首,然后從兩個(gè)句子的串首開(kāi)始搜索相同子串。與“異文”相對(duì),相同子串可稱之為“同文”。同文之前的便是異文*之所以要從串首開(kāi)始搜索同文,是因?yàn)楫愇牡哪骋环娇赡苁强沾?。如果句珠中有多處異文,則重復(fù)上述過(guò)程。
搜索同文時(shí)可能存在多個(gè)解。例如:
(11a) ……薛人杞人小邾人城成周
(11b) ……邾人薛人杞人小邾人城成周
此時(shí)同文有許多解,例如位置2:2上的“人”,依此得到異文“薛:邾”;位置4:4上的“人”,依此得到異文“杞:薛”,等等。其中同文最長(zhǎng)的是最優(yōu)解,因?yàn)橥脑介L(zhǎng),則左邊的文字差異就越可靠。對(duì)于這個(gè)例子來(lái)說(shuō),位置1:3是最優(yōu)解,因?yàn)閺倪@個(gè)位置上開(kāi)始的同文“薛人杞人小邾人城成周”最長(zhǎng),由此得到異文“◇:邾人”。
如果存在多個(gè)最長(zhǎng)同文,則選擇位置之差最小者。為便于觀察,將例(3)重列于下:
(3a) 宋人以齊人衛(wèi)人蔡人陳人伐鄭 (《公羊傳·桓公十四年》)
(3b) 宋人以齊人蔡人衛(wèi)人陳人伐鄭 (《谷梁傳·桓公十四年》)
去掉共同前綴之后變?yōu)椋?/p>
(3′a) 衛(wèi)人蔡人陳人伐鄭
(3′b) 蔡人衛(wèi)人陳人伐鄭
搜索到最長(zhǎng)同文“人陳人伐鄭”,左邊是“衛(wèi)人蔡: 蔡人衛(wèi)”。如前所述,其中含有同文“人”,不符合我們的定義,需要遞歸調(diào)用異文發(fā)現(xiàn)算法來(lái)處理。對(duì)此,向后搜索最長(zhǎng)同文時(shí)有三個(gè)解,長(zhǎng)度均為1,即2:2(“人”)、1:3(“衛(wèi)”)和3:1(“蔡”),其中第一個(gè)解同文位置之差為0,故確定第一處異文“衛(wèi):蔡”。去掉共同前綴之后,可得到第二處異文“蔡:衛(wèi)”。
異文配對(duì)算法的輸入是句珠中的兩個(gè)句子A和B,輸出是句珠中的至少一處異文。
異文配對(duì)算法GetDiff描述如下:
GetDiff(A, B) {
while(!Empty(A) and !Empty(B) {
n=ComonPrefix(A, B); //求A和B的共同前綴的長(zhǎng)度;
if(n>0) { Delete(A, 1, n); Delete(B, 1, n); }
if(Empty(A) and Empty(B)) return;
if(Empty(A)) { Output(“◇”:B); return; }
if(Empty(B)) { Output(A:“◇”); return; }
GetMaxCommonSubstr(A, B, startA, startB, ML); //搜索最長(zhǎng)同文
if(ML==0) { Output(A:B); return; }
AL=Left(A, startA-1); BL=Left(B, startB-1); //獲取串首的異文AL和BL;
if(AL和BL中含有相同字符) GetDiff(AL, BL); //遞歸處理
else Output(AL:BL);
Delete(A, 1, startA+ML-1); Delete(B, 1, startB+ML-1);//去掉異文和最長(zhǎng)同文
}
}
GetMaxCommonSubstr的功能是從串首開(kāi)始搜索最長(zhǎng)同文在A和B中的起點(diǎn)startA和startB,最長(zhǎng)同文的長(zhǎng)度為ML,詳后。
采用窮盡搜索方法來(lái)搜索最長(zhǎng)同文。設(shè)串A和串B的長(zhǎng)度分別為m和n, startA、 startB和ML是三個(gè)輸出參數(shù)。若有多個(gè)長(zhǎng)度相等的最長(zhǎng)同文,取起點(diǎn)距離差最小者。如果串A或串B的剩余子串長(zhǎng)度小于已經(jīng)得到的ML,則盡早退出。
GetMaxCommonSubstr(A,B,&startA,&startB,
&ML) {
ML=0;
MXD=100;//MXD是最小距離差
for(i=1; i<=m; i++) {
if(ML>len(A)-i+1) break;
for(j=1; j<=n; j++) {
if(ML>len(B)-j+1) break;
if(A[i]==B[j]) {
LD=Abs(i-j); //LD是距離差
L=CommonPrefix(substrc(A,i),substrc(B,j));
if(L>ML or L==ML and LD startA=i; startB=j; ML=L; MXD=LD; } } } } } 從1 066個(gè)異文句珠中,共得到異文共560種,1 347例,其中頻率最高的是“婁:◇”126例,“◇:婁”123例。出現(xiàn)10例以上的還有:“鄫:繒”26例,“運(yùn):鄆”15例,“鄆:運(yùn)”15例,“築:筑”15例,“丑:醜”12例,“率:帥”11例,“帥:率”11例,“蒐:搜”10例。 若忽略異文配對(duì)方向的差異,560種異文可按字?jǐn)?shù)歸納為7種類型,下表中“3_”表示三字或三字以上: 異文類型異文種數(shù)異文類型異文種數(shù)0:1661:2100:2171:3_50:3272:2311:1404 三傳春秋經(jīng)兩兩比較,異文分布情況如下: 版本比較異文種數(shù)異文例數(shù)1:1異文種數(shù)《左傳》與《公羊傳》 291567221《左傳》與《谷梁傳》 208281169《公羊傳》與《谷梁傳》250499196 以上數(shù)據(jù)進(jìn)一步表明,《左傳》與《公羊傳》春秋經(jīng)的差異最大,《左傳》與《谷梁傳》春秋經(jīng)差異最小。 本文首次提出古籍版本異文信息處理的任務(wù),并實(shí)現(xiàn)了有關(guān)句珠配對(duì)和異文配對(duì)的算法。句珠配對(duì)全部正確,異文配對(duì)算法也能夠正確發(fā)現(xiàn)全部符合定義的異文。 本文定義的異文是“句珠中完全不同的兩個(gè)子串”,這個(gè)定義沒(méi)有利用任何有關(guān)具體文獻(xiàn)中的語(yǔ)言知識(shí)和其他知識(shí),因此相關(guān)的異文發(fā)現(xiàn)算法是通用的,可以用于發(fā)現(xiàn)任何中文文獻(xiàn)的版本異文,包括古代文獻(xiàn)和現(xiàn)代文獻(xiàn)。 當(dāng)然,我們關(guān)注的重點(diǎn)仍在于古籍信息處理。古籍信息處理的特殊性在于,語(yǔ)料庫(kù)是封閉的、有限的。拿先秦文獻(xiàn)來(lái)說(shuō),全部傳世文獻(xiàn)也只有大約260萬(wàn)字。因此,現(xiàn)代漢語(yǔ)文本處理的模式“訓(xùn)練—標(biāo)注”不很適用,應(yīng)該主要發(fā)展基于規(guī)則的方法,使得不需要經(jīng)過(guò)訓(xùn)練即可獲得質(zhì)量較高的處理結(jié)果。 [1] 李富孫.春秋三傳異文釋[M]. 上海商務(wù)印書館,1935. [2] 李索.敦煌寫卷〈春秋經(jīng)傳集解〉異文研究[M]. 中國(guó)社會(huì)科學(xué)出版社,2005. [3] 張普. 計(jì)算機(jī)在古籍整理研究領(lǐng)域中的應(yīng)用(綜述)[M]//張普.漢語(yǔ)信息處理研究.北京語(yǔ)言學(xué)院出版社,1992:80-103. [4] 常娥,侯漢清,曹玲. 古籍自動(dòng)??钡难芯亢蛯?shí)現(xiàn)[J]. 中文信息學(xué)報(bào),2007, 21(2):83-88. [5] 姜哲,馬少平,夏瑩.大型中文古籍《四庫(kù)全書》自動(dòng)版面分析系統(tǒng)[J]. 中文信息學(xué)報(bào),2000,14(2):14-20. [6] 趙作鵬,尹志民,王潛平,等. 一種改進(jìn)的編輯距離算法及其在數(shù)據(jù)處理中的應(yīng)用[J]. 計(jì)算機(jī)應(yīng)用,2009,29(2):424-426.4.3 異文配對(duì)結(jié)果
5 結(jié)語(yǔ)