何 靜,宋天寶,彭煒明,朱淑琴,2,宋繼華
(1. 北京師范大學 信息科學與技術(shù)學院 北京 100875; 2. 北京聯(lián)合大學 師范學院 北京100101)
基于“詞—詞性”匹配模式獲取的古漢語樹庫快速構(gòu)建方法
何 靜1,宋天寶1,彭煒明1,朱淑琴1,2,宋繼華1
(1. 北京師范大學 信息科學與技術(shù)學院 北京 100875; 2. 北京聯(lián)合大學 師范學院 北京100101)
該文針對古漢語文本小、句簡短、模式性強的結(jié)構(gòu)特點,提出了一種基于“詞-詞性”匹配模式獲取的快速樹庫構(gòu)建方法,將句法標注過程規(guī)約為獲取候選匹配模式、制定句法轉(zhuǎn)換規(guī)則、自動生成句法樹和最終人工校對四個步驟。該方法可大大縮減人工標注工作量,節(jié)省樹庫構(gòu)建的工程成本,且所獲取的匹配規(guī)則在古漢語教學研究中具有一定的實用價值。
古代漢語;樹庫構(gòu)建;模式獲取
Abstract: An efficient approach for ancient Chinese treebank construction is proposed, which is based on "word or POS" match strategy. To deal with the ancient Chinese characterized by short-clauses and typical-patterns, it divides the Chinese treebank construction into four steps: 1) candidate match pattern generation; 2) syntactic transformation rule composition; 3) syntactic parsing; 4) manual verification. In addition to minimize the manual annotation cost in treebank construction, the match patterns obtained during this process can provide data support for the ancient Chinese teaching and research.
Key words: ancient Chinese; treebank construction; pattern acquisition
收稿日期: 2016-07-09 定稿日期: 2017-03-29
基金項目: 北京師范大學青年教師基金(2014NT39)
樹庫是帶句法結(jié)構(gòu)信息的深加工語料庫,由于標注成本相對較高,漢語樹庫通常都帶有很強的現(xiàn)代應(yīng)用目的,主要為NLP自動句法分析以及以語料庫語言學為背景的語法教學和研究。漢語樹庫構(gòu)建的大部分生語料均取材于新聞文本,主要為現(xiàn)代漢語語料。但在漢語的語言教學和研究中,古代漢語(文言)也是不可忽視的一個方面,對深入理解中國文化和探究漢語發(fā)展源流具有重要意義。由于古漢語在詞匯和句法層面都與現(xiàn)代漢語有著特定的系統(tǒng)差異,現(xiàn)代漢語樹庫的現(xiàn)有成果和構(gòu)建方法不能直接移植到古漢語中。因此,古漢語的語言資源建設(shè)要遠遠滯后于現(xiàn)代漢語,具體而言,目前古漢語語料庫加工多停留在分詞和詞性標注階段,未見有成規(guī)模樹庫構(gòu)建的研究。
當前構(gòu)建古漢語樹庫,明確以下兩點至關(guān)重要。
(1) 古漢語的核心文本,即傳統(tǒng)典籍中的文言,是一個靜態(tài)、有窮的封閉集合。在樹庫的應(yīng)用方面,并不以實現(xiàn)通用的古漢語自動句法分析器作為主要目標;在構(gòu)建策略上,也應(yīng)著眼于最小化特定范圍內(nèi)語料標注的工程成本,采用“自動句法分析+人工校對”方法未必如基于規(guī)則的針對性策略有效。
(2) 古漢語不同于現(xiàn)代漢語的顯著特點之一是: 小句簡短且具有較強模式性。通過對35本上古漢語典籍統(tǒng)計發(fā)現(xiàn),小句的平均長度為4.05個詞長,可推斷小句的句法結(jié)構(gòu)相對簡單、種類較少。因此,這種“強模式”特征可以考慮被用于古漢語樹庫構(gòu)建。
構(gòu)建漢語樹庫依賴于經(jīng)分詞、詞性標注的詞法語料庫,由于古漢語信息處理研究開展得并不廣泛,目前從事這方面研究并構(gòu)建了大規(guī)模語料庫的主要有四處: (1)臺灣《中央研究院》語言所自1990年起構(gòu)建了古漢語語料庫(the academia sinica ancient Chinese corpus, ASACC),包括上古漢語和中古漢語兩個子庫[1]; (2)英國謝菲爾德大學為研究漢語歷時變遷而構(gòu)建了謝菲爾德中文語料庫(the Sheffield corpus of Chinese, SCC)[2],同樣劃分為上古漢語和中古漢語兩部分; (3)南京師范大學陳小荷教授主持構(gòu)建了以25種先秦傳世文獻為主的古漢語語料庫,該庫服務(wù)于先秦詞匯統(tǒng)計和知識檢索,在構(gòu)建過程中采用了基于CRF的分詞標注一體化方法[3]; (4)北京師范大學語言與文字資源研究中心以古今漢語平行語料庫項目為背景,構(gòu)建了以《十三經(jīng)》為主的分詞標注語料庫[4]。其中,前兩者的詞類標記粒度較細,許多詞類已細化到語義層面,標記集都在50個以上;后兩者采用學界普遍認可的詞性,標記集大小分別為21和15。以上語料庫在生語料層面有很大重疊,但分詞和詞性標注卻存在不少差異,這反映出在古漢語語法上的語言學爭議同樣存在。
不同于現(xiàn)代漢語的樹庫構(gòu)建[5-9]和句法分析[10-14]等研究的廣泛開展,目前古漢語的句法標注資源極少,基本都是小樣本集上的嘗試,如香港城市大學John Lee等構(gòu)建的唐詩依存樹庫[15]、北京大學計算語言所彭煒明等選取《論語》《唐宋八大家文鈔》語料構(gòu)建的圖解樹庫[16]。在此前提下構(gòu)建古漢語樹庫顯然是處在資源的原始積累階段,大量的人工標注和校對不可避免。目前有益的工作是探索一種基于規(guī)則的句法標校輔助方法,以最大限度地減少人工機械重復(fù)的工作量。為了減少詞性標注先驗知識對本文方法的干擾,我們選取詞性標記最為通用的北師大語料作為實驗語料。
針對古漢語小句簡短、模式性強的結(jié)構(gòu)特點,我們將句法標注過程規(guī)約為對“小句”的成分分析。句法樹庫的分析單位通常是以句號(。)、問號(?)、嘆號(!)等切分所得的“整句”,而“小句”是用逗號(,)對整句做進一步切分所得的標點句。需要說明的是,此處的小句與語言學意義上的小句并不一定吻合,比如,逗號出現(xiàn)在句首狀語之后,這樣切分得到的“小句”只是一個狀語成分。這種情況下該“小句”除了作內(nèi)部成分分析之外,還需整體標記為狀語,在最后階段再統(tǒng)一并入小句。
本文的快速構(gòu)建方法主要是解決小句的成分分析問題。由于小句長度不大,句法樹結(jié)構(gòu)通常也不復(fù)雜,在同一批語料中具有較高的整體復(fù)現(xiàn)率。因此,在實際標注中找出特定的能代表一批小句的若干“詞/詞性”序列,從而將去重后的待分析小句全集劃分為若干子集通過為“詞/詞性”序列制定轉(zhuǎn)換規(guī)則的方式,將它們進行批量的標注。我們將這種特定序列稱為“匹配模式”(matching pattern),相關(guān)形式化定義如下:
? CS(小句,clause): W1/P1W2/P2… Wi/Pi… Wn/Pn,其中Wi表示小句中第i個詞,Pi為相應(yīng)的詞性;
? CMP(候選模式,candidate matching pattern): U1U2… Ui… Un,其中Ui為某一具體詞形或詞性;
? Match: 對長度均為n的CMP{Ui}和CS{Wi/Pi},如果Ui=Wi或 Ui=Pi,i∈[1, …,n],則稱CMP Match CS;
? CS_Set(CMP的匹配集): {CS | CMP Matches CS};
? CMP_Set(CMP的等價集合): {CMP | 對應(yīng)相同CS_Set的CMP},因此CMP_Set與CS_Set是一一對應(yīng)的關(guān)系;
? MP(匹配模式,matching pattern)和SS(句法骨架,syntactic skeleton): 若某個CS_Set共享相同的句法骨架,則稱與其對應(yīng)的CMP_Set中所有CMP都是MP,相應(yīng)句法骨架為SS(圖1)。在具體實現(xiàn)時,SS的結(jié)構(gòu)類型不限,短語結(jié)構(gòu)或依存結(jié)構(gòu)均可。如果一個待分析的CS能夠與一個MP匹配,那么將SS中占位符“*”逐個替換為對應(yīng)的詞,即可得到該CS的句法結(jié)構(gòu)。
圖1 基于DP和PSG的SS樣例
CMP由語料庫中CS采樣生成,每個位置或取詞形,或取詞性。CMP取詞形越多,匹配的CS就越少,成為MP的可能性就越大;反之,取詞性越多,匹配的CS就越多,成為MP的可能性就越小。對于樹庫構(gòu)建而言,CMP_Set的優(yōu)劣與兩個因素有關(guān): (1)對應(yīng)的CS_Set中各CS的樹結(jié)構(gòu)越趨同越好(理想情況下樹結(jié)構(gòu)全同,此時CMP_Set中各CMP均為MP); (2)在(1)的前提下對應(yīng)的CS_Set越多越好。本文古漢語樹庫構(gòu)建的流程如圖2所示。
圖2 樹庫構(gòu)建總體流程
其中步驟(1)、(3)由程序自動完成,步驟(2)、(4)由人工完成。(1)是本算法的核心,將在第四節(jié)詳述。由(1)生成CMP隊列的大小將決定(2)的具體工作量。通過(1)的篩選,CMP對應(yīng)的CS_Set在樹結(jié)構(gòu)上具有較高的趨同性。手工制定SS時,可從CS_Set隨機選取不超過十個的CS,快速判斷多數(shù)CS共享的樹結(jié)構(gòu),并制定從CMP到SS的轉(zhuǎn)換規(guī)則。
4.1 建立CS_Set和CMP_Set對應(yīng)組 ? CSCMP: 所有CS都用來生成CMP。在長度為n的經(jīng)過分詞、詞性標注的CS中,每個位置或取詞,或取詞性,理論上可以生成2n個CMP(如圖3中步驟①),考慮到計算復(fù)雜度,生成CMP時限制如下: 若某一詞形Wi在語料庫中的總頻次小于3,則CMP中該詞所在位置均設(shè)為詞性,即Ui=Pi;
圖3 CS_Set和CMP_Set對應(yīng)組構(gòu)建示意圖
以下步驟用于選出那些CS_Set享有相同句法結(jié)構(gòu)的對應(yīng)組的CMP_Set。以圖3為例,因為(a)、(f)和(g)三個CS具有相同的句法結(jié)構(gòu),(c)和(e)具有相同的句法結(jié)構(gòu),(b)是另一種句法結(jié)構(gòu)(句法結(jié)構(gòu)見圖4),所以排除A、D(包含不同的句法結(jié)構(gòu))和E、F、G、H(不是最大的組),因此B、C、I和J這四個對應(yīng)組的CMP_Set在以下步驟中應(yīng)該被選出。
4.2 賦權(quán)CMP組
對每一個CMP_Set(或者對應(yīng)的CS_Set),定義如式(1)(W值大的CMP組在樹庫構(gòu)建時應(yīng)優(yōu)先考慮應(yīng)用)所示。
(1)
第三節(jié)中給出評判CMP_Set優(yōu)劣的標準: (a)所匹配的CS_Set的SS種類越少越好; (b)在(a)的前提下匹配的CS越多越好。對于(a),用|CMP_Set|(CMP_Set的集合大 小)的 值 來 表 征,因為|CMP_Set|與CS_Set的SS種數(shù)呈反比(圖3),|CMP_Set|越大表明其中CMP的模式性越強;對于(b),由|CS_Set|(CS_Set的集合大小)的值來表征,|CS_Set|越大表明覆蓋CS越多。又因為|CMP_Set|是一個指數(shù)級的增長過程,在相比較的兩個CMP_Set之間,它們的|CMP_Set|的差異常常遠大于|CS_Set|的差異,因此公式中對前者采用對數(shù)函數(shù)來抑制其變化趨勢,并用α來微調(diào)。為了避免W=0的情況,又采取加1操作。α是待定的參數(shù),在第六節(jié),通過與金標準樹庫Treebank-Gold對比,來得到一個最佳范圍。
圖4 相似CS的不同依存樹結(jié)構(gòu)
4.3 刪減CMP組
CS_Set之間存在大小不等的交集。在圖5中,每個圓形表示一個CS_Set,它們中有些具有包含關(guān)系,如A-B, A-I, D-I。
圖5 CS_Set重疊關(guān)系示例
為了減少一個CS_Set被另一個CS_Set覆蓋的情況,需對其中一些CS_Set進行消減,主要是消除其中的包含關(guān)系。首先定義兩個集合:
? SC: CS_Set的保留集,初始時為按大小降序排列的CS_Set全集。
? GC: CS_Set的刪除集,初始時為空集。
按以下順序執(zhí)行刪減和恢復(fù):
(1) 從SC中選出兩個具有包含關(guān)系的CS_Set(按SC順序選取),比較其W權(quán)值,權(quán)值小的CS_Set標記為“待刪”。
(2) 將所有標記為“待刪”的CS_Set從SC移至GC。此時SC中剩余CS_Set的CS覆蓋率將大大降低。假設(shè)存在一種情況: 若W(B)>W(A),刪A;若W(A)>W(C),刪C,但是C與B沒有交集,因此不應(yīng)該被刪除。以下步驟(3)將解決此問題。
(3) 將GC中的CS_Set按W值降序排列,依次考察其是否與SC中某一CS_Set存在交集,如果不存在,則將該CS_Set重新移回SC中。
SC中剩下的CS_Set所對應(yīng)的CMP_Set即為這一步驟的最終結(jié)果。
4.3 產(chǎn)生CMP優(yōu)先隊列
將SC中的CMP_Set按W權(quán)值降序排列,并從每個CMP_Set中選出含詞形數(shù)最多的一個作為該組的代表(根據(jù)以上CMP_Set定義,其中的CMP因為匹配的CS_Set都相同,故對該語料庫來說都是等同的),加入優(yōu)先隊列。此外,對上述步驟中造成的少數(shù)未被CMP覆蓋的CS,生成單獨的全詞CMP,加在優(yōu)先隊列的末尾。
若優(yōu)先隊列中CMP均為MP,則通過SS批量標注的結(jié)果完全正確,不需要額外工作量。這意味著相對于逐句標注,本方法手工成本可以從小句總量降至優(yōu)先隊列的大小。若CS_Set存在結(jié)構(gòu)歧義,則需對其中CS逐一檢查,并修改錯誤的樹結(jié)構(gòu),改正的成本稍大于從零標注。綜合起來,針對某一CMP采用SS批量標注并檢查、校正的成本與其CS_Set內(nèi)不同結(jié)構(gòu)樹分布的混亂度(熵值)相關(guān),可用如下公式來衡量。
其中,Tree(CS_Set)表示CS_Set內(nèi)CS的不同SS的概率分布(需要人工構(gòu)建的金標準樹庫Treebank-Gold)。
所有語料的樹庫構(gòu)建成本,如式(4)所示。
(4)
6.1 實驗一: 《儀禮》 實驗一采用從北京師范大學《十三經(jīng)》分詞標注語料中節(jié)選的八篇《儀禮》文本,各篇語料規(guī)模分布如表 1所示。如此選擇是出于這樣的考慮: 所選語料在內(nèi)容方面盡量存在相關(guān)性,這樣有利于找到更多的匹配模式。例如,《士昏禮》和《聘禮》都是關(guān)于婚嫁的,《士喪禮》和《既夕禮》是關(guān)于喪葬的,《鄉(xiāng)射禮》和《大射》都是關(guān)于射箭的。語料中所有句子經(jīng)過“逗號”切分后得小句數(shù)為8 251。
為了獲得效果最好的α參數(shù)值,我們讓α依次取從1到100的整數(shù),并分別計算各自Cost值,如圖6所示。
表1 語料規(guī)模分布(實驗一)
續(xù)表
圖6 α參數(shù)與Cost變化圖(實驗一)
最好的α參數(shù)值為18,此時Cost(Treebank)=4039.43。此時,與Treebank-Gold比較可知Treebank-α18構(gòu)建過程中的如下參數(shù):
? 所有CMP數(shù): 3 081,共覆蓋8 198條CS。如果用所有CMP來分析句子,意味著需要手工編制3 081條SS,所得句法分析結(jié)果為: 準確率96.89%,覆蓋率99.36%;
? 覆蓋CS數(shù)大于1的CMP數(shù): 780,共覆蓋5 898條CS。如果用覆蓋CS大于1的CMP來分析句子,意味著需要手工編制780條SS,所得句法分析結(jié)果為: 準確率95.68%,覆蓋率71.48%;
? 有效MP(CMP無結(jié)構(gòu)歧義且覆蓋CS數(shù)大于1)數(shù): 734,共覆蓋CS數(shù)為2 985。
前十條CMP及其Tree(CS_Set)的分布如表 2所示。
表2 α=18時前十CMP示例(實驗一)
續(xù)表
第一條CMP中,939句的SS為主謂結(jié)構(gòu),僅有兩句“白/v 質(zhì)/n”、“赤/v 質(zhì)/n”與其他句子的SS是不一樣的,這是因為“白”、“赤”詞性標注有誤,應(yīng)該標為形容詞,因此,若詞性標注正確,這一條CMP對應(yīng)的CS的SS都是一致的。
第三條CMP中,569句的SS均為動賓結(jié)構(gòu),僅有13句為狀中結(jié)構(gòu)(古漢語中的名作狀現(xiàn)象)。第8條CMP中,432句的SS均為主謂賓結(jié)構(gòu),僅兩句“左手/n 執(zhí)/v 前/n”、“右手/n 執(zhí)/v 項/n”為狀謂賓結(jié)構(gòu)。這兩個CMP對應(yīng)的SS雖然不是唯一,但是也相對收斂。該方法基本上可以保證大部分句子被分析正確,且是高效的。
由圖6可知,當α∈[18, 29]時,Cost在最小值附近小幅波動。為了驗證α的上述范圍在更多語料中的適應(yīng)性,我們在《左傳》部分語料上進行了重復(fù)實驗。
6.2 實驗二: 《左傳》
實驗二采用從北師大《十三經(jīng)》分詞標注語料中節(jié)選的兩篇《左傳》文本,語料規(guī)模分布如表3所示。語料中所有句子經(jīng)過“逗號”切分后得小句數(shù)為6 791。
表3 語料規(guī)模分布(實驗二)
同上,讓α依次取從1到100的整數(shù),并分別計算各自Cost值,結(jié)果如圖7所示。
圖7 α參數(shù)與Cost變化圖(實驗二)
圖7中,當α∈[12, 31]時,Cost在最小值附近小幅波動。這個范圍與實驗一基本吻合,說明了α∈[18, 29]在不同語料上具有一定的適應(yīng)性。
本文提出的匹配模式獲取方法在古漢語信息處理中具有較強的針對性和實用價值。在古漢語樹庫構(gòu)建的原始積累階段,可以大大縮減人工標注工作量,節(jié)省工程成本。構(gòu)建過程中所得的大量MP可為古漢語句式教學和研究提供數(shù)據(jù)支持。小句簡短、模式性強是本方法可適用語料的特征條件,而這正是古漢語文本的典型特征。
限于詞法語料庫的獲取權(quán)限,本文僅以北師大語料《儀禮》《左傳》部分語篇為例進行實驗。若詞性標注粒度細化至如Sinica語料庫,則匹配模式獲取效果將更值得期待,這也是本文進一步工作的規(guī)劃。
[1] 魏培泉, 譚樸森, 劉承慧,等. 建構(gòu)一個以共時與歷時語言研究為導(dǎo)向的歷史語料庫[J]. 中文計算語言學期刊, 1997, 2(1): 131-145.
[2] Hu X, Williamson N, Mclaughlin J. Sheffield corpus of Chinese for diachronic linguistic study[J]. Literary and Linguistic Computing, 2005, 20(3): 281-293.
[3] 石民, 李斌, 陳小荷. 基于 CRF 的先秦漢語分詞標注一體化研究[J]. 中文信息學報, 2010, 24(2): 39-45.
[4] 宋繼華, 胡佳佳, 孟蓬生,等. 古今漢語平行語料庫的語料構(gòu)建[J]. 現(xiàn)代教育技術(shù), 2008, 18(1): 92-99.
[5] 陳鳳儀, 蔡碧芳, 陳克健,等. 中文句結(jié)構(gòu)樹資料庫(Sinica Treebank)的構(gòu)建[J]. Computational Linguistics and Chinese Language Processing, 1999, 4(2): 87-104.
[6] 周強. 漢語句法樹庫標注體系[J]. 中文信息學報, 2004, 18(4): 2-9.
[7] Xue N, Xia F, Chiou F-D, et al. The penn Chinese treebank: phrase structure annotation of a large corpus[J]. Natural language engineering, 2005, 11(02): 207-238.
[8] 李正華, 車萬翔, 劉挺. 短語結(jié)構(gòu)樹庫向依存結(jié)構(gòu)樹庫轉(zhuǎn)化研究[J]. 中文信息學報, 2008, 22(6): 14-19.
[9] 邱立坤, 金澎, 王厚峰. 基于依存語法構(gòu)建多視圖漢語樹庫[J]. 中文信息學報, 2015, 29(3): 9-15.
[10] Levy R, Manning C. Is it harder to parse Chinese, or the Chinese treebank?[C]//Proceedings of the 41st Annual Meeting on Association for Computational Linguistics-Volume 1, 2003: 439-446.
[11] 曹海龍. 基于詞匯化統(tǒng)計模型的漢語句法分析研究[D].哈爾濱工業(yè)大學博士學位論文, 2006.
[12] 馬金山. 基于統(tǒng)計方法的漢語依存句法分析研究[D]. 哈爾濱工業(yè)大學博士學位論文, 2007.
[13] Zhang Y, Clark S. Transition-based parsing of the Chinese treebank using a global discriminative model[C]//Proceedings of the 11th International Conference on Parsing Technologies, 2009: 162-171.
[14] Che W, Spitkovsky V I, Liu T. A comparison of Chinese parsers for Stanford dependencies[C]//Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics: Short Papers-Volume 2, 2012: 11-16.
[15] Lee J, Kong Y H. A dependency treebank of classical Chinese poems[C]//Proceedings of the 2012 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, 2012: 191-199.
[16] 彭煒明, 何靜, 宋繼華. 句本位語法圖解析句系統(tǒng)的設(shè)計與實現(xiàn)[C].第四屆數(shù)字典藏與數(shù)字人文國際研討會, 2012.
何靜(1986—),博士研究生,主要研究領(lǐng)域為自然語言處理。
Email: hejing8@mail.bnu.edu.cn
宋天寶(1988—),博士研究生,主要研究領(lǐng)域為自然語言處理。
Email: songtianbao@mail.bnu.edu.cn
宋繼華(1963—),通信作者,博士,教授,博士生導(dǎo)師,主要研究領(lǐng)域為語言信息處理、計算機教育應(yīng)用。
Email: songjh@bnu.edu.cn
An Efficient Approach to Ancient Chinese Treebank Construction Based on “Word or POS” Match
HE Jing1, SONG Tianbao1, PENG Weiming1, ZHU Shuqin1,2, SONG Jihua1
(1. College of Information Science and Technology, Beijing Normal University, Beijing 100875,China; 2. Teacher’s College, Beijing Union University, Beijing 100101,China)
1003-0077(2017)04-0114-08
TP391
A