王青海,馬?;?2,池毓煥,李 穎,董凌沖
(1. 裝甲兵工程學(xué)院 信息工程系,北京 100072; 2. 中國(guó)人民解放軍63861部隊(duì),吉林 白城 137001;3. 中國(guó)科學(xué)院聲學(xué)研究所,北京 100190; 4. 中國(guó)人民解放軍63713部隊(duì),山西 忻州 036301)
任何一個(gè)自然語(yǔ)言處理系統(tǒng)理解自然語(yǔ)言句子,首先要具備詞的知識(shí)。詞語(yǔ)知識(shí)庫(kù)已經(jīng)被廣泛應(yīng)用于機(jī)器翻譯、信息檢索、問(wèn)答系統(tǒng)、自動(dòng)文摘等領(lǐng)域,成為自然語(yǔ)言處理不可或缺的基礎(chǔ)資源。比較著名的知識(shí)庫(kù)有WordNet、FrameNet、EDR電子詞典、《知網(wǎng)》、HNC等[1]。
目前,HNC知識(shí)庫(kù)在規(guī)模上有一定的發(fā)展,但是在可擴(kuò)展性和數(shù)據(jù)庫(kù)設(shè)計(jì)上還有待改進(jìn)?,F(xiàn)有的HNC漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)相對(duì)設(shè)計(jì)簡(jiǎn)單,關(guān)聯(lián)性不足,增大了HNC符號(hào)解析的復(fù)雜程度,主要存在以下不足。
(1) 系統(tǒng)做語(yǔ)義距離計(jì)算時(shí),要進(jìn)行單獨(dú)的HNC符號(hào)解析,檢索周期長(zhǎng);
(2) 概念聯(lián)想上完全依靠程序計(jì)算,概念之間的映射關(guān)系在數(shù)據(jù)庫(kù)中沒(méi)有直接的反映。
本文通過(guò)分析HNC的編碼特點(diǎn),改進(jìn)了漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)結(jié)構(gòu),提出了新的漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)模型,并且通過(guò)實(shí)例說(shuō)明了改進(jìn)后的詞語(yǔ)知識(shí)庫(kù)在語(yǔ)義距離計(jì)算上的優(yōu)勢(shì),指出了漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)的發(fā)展趨勢(shì)和可能存在的問(wèn)題。
2.1.1 漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)模型的提出
HNC理論利用HNC1、HNC2、HNC3和HNC4將詞語(yǔ)、語(yǔ)句、句群、篇章數(shù)字化,為計(jì)算機(jī)把握語(yǔ)義提供基礎(chǔ)[2]。HNC符號(hào)有兩個(gè)重要特點(diǎn)。
(1) HNC符號(hào)是對(duì)詞義的漸進(jìn)表達(dá),給出概念聯(lián)想脈絡(luò)知識(shí)的線索,與語(yǔ)種無(wú)關(guān);
(2) HNC符號(hào)中不僅蘊(yùn)含著詞語(yǔ)層面的知識(shí),還蘊(yùn)含著語(yǔ)句和語(yǔ)境層面的知識(shí)。
根據(jù)上述特點(diǎn)可知,利用HNC處理自然語(yǔ)言,建立自然語(yǔ)言與概念空間之間的映射是關(guān)鍵。
圖1 基于HNC的漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)模型
知識(shí)庫(kù)承擔(dān)了自然語(yǔ)言與概念空間之間映射的任務(wù)。HNC符號(hào)中表達(dá)概念聯(lián)想關(guān)系的手段主要有概念矩陣、層次性節(jié)點(diǎn)、掛靠表達(dá)、組合結(jié)構(gòu)等[3]。本知識(shí)庫(kù)設(shè)計(jì)基于HNC1和HNC2,利用自上而下的建庫(kù)思想[4],如圖1所示,包括中文詞條、HNC特性、基本句類(lèi)、常用組合詞和中層特性五個(gè)實(shí)體。其中,中文詞條通過(guò)HNC特性外化它們?cè)诟拍羁臻g的關(guān)聯(lián)。此外,與本知識(shí)庫(kù)設(shè)計(jì)緊密相關(guān)的三層節(jié)點(diǎn)和五元組知識(shí)會(huì)在下面進(jìn)行簡(jiǎn)要的說(shuō)明。
2.1.2 實(shí)體設(shè)計(jì)的必要性分析
(1) 如圖1所示,將HNC特性作為一個(gè)實(shí)體,并分HNC編碼、高層特性、中層特性、底層特性、五元組特性和本體層符號(hào)六個(gè)屬性。其中,后五個(gè)屬性是HNC編碼的符號(hào)解析。與之前的單表詞庫(kù)相比,新的漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)能夠省去編程時(shí)的符號(hào)解析環(huán)節(jié),有利于概念聯(lián)想,降低文字處理系統(tǒng)程序的復(fù)雜度,減少不必要的誤差。
如圖2所示,詞語(yǔ)的HNC編碼包括高層、中層和底層,在語(yǔ)義距離計(jì)算時(shí)都有不可忽視的作用,具體方法參見(jiàn)3.1。概念的五元組特性和概念的層次性、對(duì)比性、對(duì)偶性、包含性統(tǒng)稱(chēng)概念同行關(guān)聯(lián),簡(jiǎn)稱(chēng)同行[2]。具有同行關(guān)聯(lián)性的概念有相同或相似的層次符號(hào),因而部分語(yǔ)義距離的計(jì)算問(wèn)題就簡(jiǎn)化為對(duì)數(shù)字串的逐層比較問(wèn)題。五元組是概念的外在表現(xiàn),分別描述概念的五個(gè)側(cè)面: 動(dòng)態(tài)v、靜態(tài)g、屬性u(píng)、值z(mì)、效應(yīng)r。它們可以多重組合但各有約定的內(nèi)涵。對(duì)比性、對(duì)偶性和包含性是概念局部聯(lián)想的基本特征。從一個(gè)對(duì)比性概念就能聯(lián)想到另外n-1個(gè)概念,從對(duì)偶性概念的一方可以聯(lián)想到另外一方(或兩方),從一個(gè)包含性概念就可以聯(lián)想到它的上下方,這為電腦進(jìn)行概念聯(lián)想操作提供了有效的手段[3]。所以,這里將中層特性單獨(dú)作為一個(gè)實(shí)體。
圖2 詞語(yǔ)的HNC編碼層次
本體層符號(hào)與掛靠概念相關(guān),掛靠就是把一個(gè)概念與相關(guān)概念的層次符號(hào)直接拼接在一起,是HNC符號(hào)中表達(dá)概念關(guān)聯(lián)性的一種方式[3]。在語(yǔ)義距離計(jì)算的過(guò)程中,本體層是首先要進(jìn)行判斷的。具體方法參照3.1節(jié)的實(shí)例。
(2) 通過(guò)HNC編碼,設(shè)計(jì)常用組合詞詞表,建立最常用的詞語(yǔ)之間的聯(lián)系。在語(yǔ)言理解的過(guò)程中,如果有一個(gè)詞語(yǔ)確定了HNC編碼,在知識(shí)庫(kù)中找到與它組合的常用詞,如果被找到的常用組合詞與上下文相符,則可以確定這兩個(gè)詞是一個(gè)短語(yǔ),進(jìn)而確定常用組合詞的HNC編碼;另一種情況,在合詞階段,遇到常用組合的形式,可以同時(shí)確定這幾個(gè)詞屬同一語(yǔ)義塊,并確定這幾個(gè)詞的HNC編碼。常用組合詞可以提高合詞和語(yǔ)義塊識(shí)別的效率,具體辦法參見(jiàn)3.2節(jié)。
(3) 語(yǔ)義塊是句類(lèi)的函數(shù),要理解語(yǔ)句,確定句類(lèi),必須要從語(yǔ)義塊上分解句子,以語(yǔ)義塊為單位進(jìn)行翻譯,然后進(jìn)行語(yǔ)義塊順序的調(diào)整。語(yǔ)義塊必須標(biāo)注,可以提高語(yǔ)義塊識(shí)別的效率。
2.2.1 中文詞條
(1) 中文編號(hào),是中文詞條的主碼,從數(shù)字1開(kāi)始的編號(hào)。多義詞有多個(gè)義項(xiàng),中文編號(hào)對(duì)應(yīng)唯一的詞語(yǔ)義項(xiàng)。例如,詞語(yǔ)“中央”有兩個(gè)義項(xiàng),一個(gè)是“中心的地方”,另一個(gè)是“國(guó)家或者政黨政治權(quán)利最高的地方”,這兩個(gè)義項(xiàng)要有不同的中文編號(hào)。
(2) 詞形、拼音根據(jù)《現(xiàn)代漢語(yǔ)詞典》填寫(xiě),詞形填寫(xiě)類(lèi)型是短文本,拼音填寫(xiě)類(lèi)型是字符串。
(3) 詞頻,根據(jù)已有的HNC漢語(yǔ)語(yǔ)料庫(kù)進(jìn)行統(tǒng)計(jì),填寫(xiě)類(lèi)型是數(shù)字。
(4) HNC編碼,根據(jù)HNC符號(hào)規(guī)則將詞語(yǔ)的當(dāng)前義項(xiàng)完全數(shù)字化,填寫(xiě)類(lèi)型是字符串。
(5) 可屬語(yǔ)義塊,包括四種主語(yǔ)義塊和七種輔語(yǔ)義塊,填寫(xiě)類(lèi)型是字符串。其中,主語(yǔ)義塊有特征(E)、作用者(A)、對(duì)象(B)和內(nèi)容(C);輔語(yǔ)義塊有方式(Ms)、工具(In)、途徑(Wy)、參照(Re)、條件(Cn)、因(Pr)、果(Rt)。
(6) 句類(lèi)編號(hào),是中文詞條的外碼,基本句類(lèi)實(shí)體的主碼,對(duì)應(yīng)唯一的實(shí)體基本句類(lèi),填寫(xiě)類(lèi)型是從1開(kāi)始的數(shù)字。
2.2.2 常用組合詞
常用組合詞的主碼也是中文編號(hào)。常用組合詞分四項(xiàng)屬性,緊前、緊后、隔前、隔后,每項(xiàng)屬性填寫(xiě)的都是HNC編碼。
2.2.3 基本句類(lèi)
基本句類(lèi)的主碼是句類(lèi)編號(hào),范圍是1-57,根據(jù)HNC有限的57種句類(lèi)填寫(xiě)基本句類(lèi)名和句類(lèi)表達(dá)式?;揪漕?lèi)名的填寫(xiě)類(lèi)型是短文本,句類(lèi)表達(dá)式的填寫(xiě)類(lèi)型是字符串。例句由HNC的語(yǔ)料庫(kù)提供,是完成句類(lèi)成分分析的例句,例句格式如下:
這||是||<{總結(jié)|
2.2.4 HNC特性
HNC特性的主碼是HNC編碼。同時(shí),HNC編碼也是它與中層特性聯(lián)系的外碼。不同于以往的知識(shí)庫(kù),本知識(shí)庫(kù)不僅根據(jù)HNC概念聯(lián)想脈絡(luò)對(duì)詞條進(jìn)行HNC編碼,還將詞條的高層、中層、底層以及五元組特性分開(kāi)描述,不用對(duì)HNC符號(hào)進(jìn)行分析解讀就能從高層特性直接判定這個(gè)詞條所屬的概念屬性,并且,中層特性作為單獨(dú)的實(shí)體被描述。
2.2.5 中層特性[3]
中層特性的主碼是HNC編碼,包括對(duì)比、對(duì)偶和包含三項(xiàng)屬性,填寫(xiě)類(lèi)型是字符串。
(1) 對(duì)比性概念用符號(hào)cnk或者dnk(k取值1~n)。n表示對(duì)比的總級(jí)數(shù);k表示排序中的序號(hào);c表示正序,即序號(hào)k越大值越大;d表示反序,即k越大值越小。例如:
幼u(yù)10bc51 少u(mài)10bc52 青u10bc53 中u10bc54 老u10bc5
冠軍(j00d01,l15,gvc730) 亞軍(j00d02,l15,gvc730)
對(duì)比符號(hào)在排序、信息查詢(xún)的過(guò)程中有著不可忽視的作用。
(2) 對(duì)偶性概念分為黑氏對(duì)偶和非黑氏對(duì)偶兩種,用ekm或者m表示,m取值0~7,分為0,1,2,3和4,5,6,7兩組。1、5和2、6表示對(duì)偶的雙方,0、4表示統(tǒng)一方,3、7用于表示對(duì)偶中的第三方,不同的對(duì)偶類(lèi)型可能沒(méi)有統(tǒng)一方或第三方[5]。
(3) 包含性概念的表示式中,“-”是最高一級(jí)的包含概念,“-0”表示比“-”還低一級(jí)的包含概念,“0”越多包含概念的級(jí)別越低,這對(duì)于語(yǔ)義塊的識(shí)別有很重要的參考意義。例如,對(duì)于時(shí)間短語(yǔ)“1949年10月1日”,其中“年”、“月”、“日”的HNC編碼可寫(xiě)成: 年wj10- ,月wj10-0,日wj10-00。
根據(jù)符號(hào)可判定,這三個(gè)詞具有包含的意義,屬同一語(yǔ)義塊。還有另外一種包含信息,例如,“中國(guó)”、“上?!边@兩個(gè)詞,從上??梢耘卸ǖ牡乩硇畔⒕陀兄袊?guó)這一層。
知識(shí)庫(kù)的基本設(shè)計(jì)思想是概念矩陣的近似實(shí)現(xiàn)。HNC符號(hào)對(duì)詞語(yǔ)之間概念聯(lián)想的關(guān)系脈絡(luò)給出形式化的表達(dá),以服務(wù)于自然語(yǔ)言處理的需要[3]。本著便于計(jì)算、便于語(yǔ)義塊識(shí)別,降低非專(zhuān)業(yè)用戶(hù)使用難度的原則,漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)的建庫(kù)原則[6]如下。
(1) 以消解模糊、語(yǔ)義塊識(shí)別為目的選詞。漢語(yǔ)沒(méi)有很?chē)?yán)格地、如印歐語(yǔ)言那樣的“詞”。收集詞語(yǔ)以概念和語(yǔ)義為中心,考慮詞語(yǔ)的流行性和固定性;
(2) 詞語(yǔ)義項(xiàng)的選擇需要考慮現(xiàn)代流通性;
(3) 符號(hào)編碼以句類(lèi)知識(shí)為核心,詞語(yǔ)庫(kù)中的各項(xiàng)知識(shí)都以句類(lèi)知識(shí)為綱領(lǐng);
(4) 知識(shí)庫(kù)的主要知識(shí)項(xiàng)都用HNC的符號(hào)體系表述,是完全符號(hào)化和數(shù)字化的。
漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)的應(yīng)用有很多。依據(jù)知識(shí)庫(kù)中同行優(yōu)先、常用組合、概念類(lèi)別[3]等與HNC相關(guān)的先驗(yàn)知識(shí)和已經(jīng)確定的HNC符號(hào)編碼,既可以推測(cè)上下文關(guān)聯(lián)詞的編碼,也可以開(kāi)展填空造句,或者翻譯的時(shí)候也能根據(jù)HNC編碼進(jìn)行語(yǔ)義距離計(jì)算從而確定句子最準(zhǔn)的目標(biāo)詞語(yǔ)。下面利用實(shí)例簡(jiǎn)要分析一下本文提出的漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)在語(yǔ)義距離計(jì)算方面的優(yōu)越性。
以前的單表知識(shí)庫(kù),提取高層、中層、底層信息需要專(zhuān)門(mén)的程序,改進(jìn)后卻可以直接讀取。
如表1所示,以“暫停”、“形勢(shì)”、“冠軍”、“亞軍”為例進(jìn)行語(yǔ)義距離計(jì)算,計(jì)算公式[7]如下:
SDC(H1,H2)=MAX(Sim(S11,S21), Sim(S11,S22),…,Sim(S11,S2m),Sim(S12,S21), Sim(S12,S22),…,Sim(S12,S2m),
……
Sim(S1n,S21), Sim(S1n,S22),…,Sim(S1n,S2m))
(1)
Sim(S11,S21)=Sim(S11.網(wǎng)絡(luò)符號(hào),S21.網(wǎng)絡(luò)符號(hào))*( Sim(S11.五元組,S21.五元組)+( Sim(S11.本體層符號(hào),S21.本體層符號(hào))* Sim(S11.中層符號(hào),S21.中層符號(hào))* Sim(S11.高層符號(hào),S21.高層符號(hào))+ Sim(S11.高層符號(hào),S21.高層符號(hào))*Sim(S11.底層符號(hào),S21.底層符號(hào))))))
(2)
表1 中文詞條建庫(kù)填寫(xiě)舉例
要進(jìn)行高層、底層、五元組、本體層的比較,這些比較都沒(méi)有考慮組合符號(hào)的作用,也就是說(shuō)單純的是字符的比較,計(jì)算結(jié)果用數(shù)字0~7表示[7]. 例如,(1) “暫?!迸c“形勢(shì)”的HNC符號(hào)直接可以抽取五元組信息比較的得出匹配成功,本體層完全匹配,高層部分匹配成功,Sim(S11,S21)的結(jié)果為4;(2) “冠軍”與“亞軍”的HNC符號(hào)進(jìn)行分層比較。用本文提出的知識(shí)庫(kù)進(jìn)行的只是符號(hào)讀取與順序匹配,不用對(duì)全部HNC符號(hào)進(jìn)行解析。中層符號(hào)有d01,d02,而其他層的比較都匹配,Sim(S11,S21)的結(jié)果為7,最終得到的結(jié)果是對(duì)比性概念。
影響語(yǔ)義距離計(jì)算的因素有很多。例如,語(yǔ)義距離計(jì)算的兩個(gè)詞語(yǔ)的高層概念不同說(shuō)明概念的基本類(lèi)型不同,語(yǔ)義距離會(huì)很大,但底層有交叉的可縮短它們的距離,這不是本文討論的重點(diǎn)。
本文改進(jìn)的漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)模型中,一個(gè)中文詞條的HNC編碼是確定的,高層、中層、底層也是可以分別讀出的。從程序?qū)崿F(xiàn)的角度來(lái)講,提取表格中的概念比將每個(gè)HNC編碼解析的計(jì)算量要小的多,這樣就減小了自然語(yǔ)言處理核心程序的計(jì)算量。
利用常用組合詞的合詞過(guò)程,如圖3所示。常用組合詞主要用來(lái)發(fā)現(xiàn)和分析前后詞的關(guān)聯(lián),便于語(yǔ)義塊的識(shí)別。直接給出常用組合詞,可以簡(jiǎn)化語(yǔ)義塊識(shí)別的組合判定算法,提高程序的效率。如“熱愛(ài)學(xué)習(xí)”,“熱愛(ài)”是“學(xué)習(xí)”的緊前詞,“學(xué)習(xí)”是“熱愛(ài)”的緊后詞;“處于緊張時(shí)期”,“處于”是“時(shí)期”的隔前詞,“時(shí)期”是“處于”的隔后詞。當(dāng)“學(xué)習(xí)”的HNC編碼確定時(shí),搜索到常用組合詞“熱愛(ài)”在緊挨“學(xué)習(xí)”前面的位置,可以判定它們可以組成一個(gè)短語(yǔ),增加了同屬一個(gè)語(yǔ)義塊的概率,在做語(yǔ)義塊判定時(shí)他們之間的關(guān)系優(yōu)先判定。
例如,對(duì)于句子“這是總結(jié)近代以來(lái)中國(guó)發(fā)展的歷程得出的結(jié)論?!崩帽疚母倪M(jìn)的知識(shí)庫(kù),通過(guò)合詞,可將“近代以來(lái)”劃為一個(gè)短語(yǔ)。如果 “近代”、“以來(lái)”已經(jīng)被填入知識(shí)庫(kù),常用組合詞匹配成功直接形成短語(yǔ)。如果沒(méi)有進(jìn)行常用詞組關(guān)聯(lián),可直接讀取這兩個(gè)詞HNC符號(hào)的各層編碼,利用3.1節(jié)的語(yǔ)義距離計(jì)算進(jìn)行判定。這兩種途徑都比之前用單表進(jìn)行語(yǔ)義塊判定的計(jì)算量明顯減少。
圖3 合詞流程
本文設(shè)計(jì)的HNC漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)雖然增加了建庫(kù)的復(fù)雜度,但增強(qiáng)了知識(shí)庫(kù)的程序可讀性,提高了HNC知識(shí)庫(kù)的層次性、邏輯性。尤其將HNC符號(hào)分高、中、低三層寫(xiě)入知識(shí)庫(kù)的辦法,簡(jiǎn)化了HNC符號(hào)的讀取,減小了因讀取HNC符號(hào)造成的處理誤差,同時(shí)便于簡(jiǎn)化接口程序和搜索算法,方便了知識(shí)庫(kù)的管理。
填寫(xiě)HNC知識(shí)庫(kù)的過(guò)程,是從詞語(yǔ)的文字符號(hào)向HNC的概念表述符號(hào)映射的過(guò)程,要求知識(shí)庫(kù)填寫(xiě)人員理解和掌握HNC的概念符號(hào)體系以及HNC的自然語(yǔ)言理解處理策略。所以,要建好HNC知識(shí)庫(kù),還需要大量跨接語(yǔ)言學(xué)和計(jì)算機(jī)科學(xué)的復(fù)合型專(zhuān)業(yè)人才。
[1] 宗成慶.統(tǒng)計(jì)自然語(yǔ)言處理 [M].北京:清華大學(xué)出版社,2008:48-71.
[2] 李穎,王侃,池毓煥.面向漢英機(jī)器翻譯的語(yǔ)義塊構(gòu)成變換[M].北京:科學(xué)出版社,2009.
[3] 苗傳江.HNC(概念層次網(wǎng)絡(luò))理論導(dǎo)論[M].北京:清華大學(xué)出版社,2005.
[4] 赫南達(dá)斯.數(shù)據(jù)庫(kù)設(shè)計(jì)凡人入門(mén)——關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)指南(第二版)[M].北京:電子工業(yè)出版社,2005.
[5] 李穎,池毓煥.對(duì)偶性概念的HNC闡釋[J]. 中文信息學(xué)報(bào), 2004,18(3):39-46.
[6] 苗傳江,劉智穎.基于HNC的現(xiàn)代漢語(yǔ)詞語(yǔ)知識(shí)庫(kù)建設(shè)[J].云南師范大學(xué)學(xué)報(bào),2010,42(4):15-18.
[7] 晉耀紅.HNC(概念層次網(wǎng)絡(luò))語(yǔ)言理解技術(shù)及其應(yīng)用[M].北京:科學(xué)出版社,2006: 50-61.