楊 泉
(北京師范大學(xué)漢語文化學(xué)院,北京 100875)
詞語相似度計算在人工智能、知識管理、自然語言處理等諸多領(lǐng)域都有著廣泛應(yīng)用,其主要任務(wù)是研究用什么方法來計算或比較2個詞語的相似度[1]。詞語相似度是隨著計算語言學(xué)發(fā)展而產(chǎn)生的一個概念,指一種語言中任意2個詞語之間相似或相關(guān)的程度,其中“相似度”是指意義相同或相近的同義詞之間的相似程度;而“相關(guān)度”是指非同義詞之間相互關(guān)聯(lián)的程度。例如“轎車”與“汽車”是同義詞,在語義層面是相似關(guān)系,應(yīng)計算其相似度;而“轎車”與“旅游”是非同義詞,在語義層面是相關(guān)關(guān)系,應(yīng)計算其相關(guān)度。關(guān)于中文詞語的相似度計算也受到了重視[2],詞語相似度計算逐漸成為自然語言處理中的基礎(chǔ)性工作,準(zhǔn)確簡潔的詞語相似性計算方法在更高層次的語言學(xué)應(yīng)用中起著重要作用。
在語言學(xué)領(lǐng)域中,詞語辨析和比較的范圍一般是在同義詞之間展開的,大多會從語義、語法、語用等多個層面進行對比。受語言學(xué)研究及中文信息處理發(fā)展水平所限,目前在自然語言處理的大部分實際應(yīng)用中,詞語相似度計算主要是語義層面的計算,即語義相似度計算,它是指一種語言中任意2個詞語之間在語義層面上相似或相關(guān)的程度。文獻[3]認(rèn)為自然語言的詞語之間有著非常復(fù)雜的關(guān)系,在實際的應(yīng)用中,有時需要把這種復(fù)雜的關(guān)系用一種簡單的數(shù)量來度量,而語義相似度就是其中的一種。語義相似度值是詞語的語義相似度的量化:值越大,2個詞語間的語義越相近;反之,則2個詞語間的語義差別越大。一般來說語義相似度的取值范圍為[0,1]:當(dāng)取值為1時,說明2個詞語的語義完全相同,但是從語言經(jīng)濟原則的角度來看,一種語言中幾乎不可能同時存在2個相似度為1的同義詞,2個詞語總是會在某個層面存在差異,以體現(xiàn)其存在的價值;當(dāng)取值為0時,說明2個詞語的語義完全不同,而且在意義上也毫不相關(guān),但是眾所周知語言是思維的物質(zhì)外殼,而詞語是概念的表達方式,在萬物互聯(lián)的時代,一種語言中幾乎不可能存在2個完全不相關(guān)的詞語。因而從理論上來看,一種語言中既不存在2個相似度為1的詞語,也不存在2個相關(guān)度為0的詞語,2個詞語之間總是或大或小地存在著一定的相似度,或多或少地存在著一定的相關(guān)度,其具體的相似度數(shù)值對于人類認(rèn)識世界及訓(xùn)練計算機模擬人類思維都起到至關(guān)重要的作用。
目前對于語義相似度計算方法公認(rèn)分為2類:一類基于知識本體(Ontology)或分類體系(Taxonomy)進行計算;另一類基于大規(guī)模語料庫或詞向量進行計算?;谥R本體的方法依據(jù)人類對于世界知識的認(rèn)識對詞語之間的相似程度進行計算,一般都具有較強的理論依據(jù),計算結(jié)果反映的是知識本體中蘊含的詞語相似度信息;基于詞向量的計算方法其結(jié)果反映的是訓(xùn)練語料中蘊含的詞語相似度信息,因此2種方法各有優(yōu)勢,不能相互替代。文獻[3]認(rèn)為基于知識本體的方法簡單有效,無需用語料庫進行訓(xùn)練,比較直觀,但結(jié)果受人的主觀意識影響較大,有時并不能準(zhǔn)確反映客觀事實?;谡Z料庫的方法比較客觀,但是對語料的依賴性較大,需要在大規(guī)模精確標(biāo)注語料的基礎(chǔ)上進行,計算量大,計算方法復(fù)雜,比較依賴于訓(xùn)練時所用的語料庫,計算結(jié)果受數(shù)據(jù)稀疏和數(shù)據(jù)噪聲的干擾大?;谡Z料庫的方法中,其基本假設(shè)是語義相似的詞語,其上下文語境也會比較相似,因此會結(jié)合上下文信息進行相似性計算。隨著深度學(xué)習(xí)方法的發(fā)展,特別是在更接近應(yīng)用層面的任務(wù)中,使用大規(guī)模語料庫經(jīng)訓(xùn)練后得到的詞向量表示可以重復(fù)利用,其計算和操作也十分方便,因此該方法在目前的研究應(yīng)用中也較為廣泛[4-8]。但在具體的詞語語義相似度計算層面,2種方法各有特點和不同的典型應(yīng)用場景。
根據(jù)文獻[9]的研究結(jié)果,目前基于知識本體的語義相似度計算方法分為:1)基于本體的語義拓?fù)湎嗨贫扔嬎惴椒ǎ?)基于WordNet“IS-A”注釋的計算方法;3)基于本體的詞向量計算方法。第1種基于本體的語義拓?fù)湎嗨贫扔嬎惴椒ㄓ址譃椋孩倩诼窂降恼Z義相似度計算模型;②基于信息內(nèi)容的語義相似度計算模型;③基于特征的語義相似度計算模型;④基于圖的語義相似度計算模型。WordNet是普林斯頓大學(xué)研制開發(fā)的大型英語詞匯數(shù)據(jù)庫,國外很多語義相似度測量方法是使用WordNet作為底層參考知識本體來實現(xiàn)和評估的。例如文獻[10]在“IS-A”分類體系基礎(chǔ)上提出了一種基于共享信息內(nèi)容概念的語義相似度計算方法;文獻[11]在WordNet層級結(jié)構(gòu)中深度分布的基礎(chǔ)上,提出了一種最近公共節(jié)點的概念下位詞子圖量化法。與國外以WordNet作為知識本體的語義相似度計算方法類似,國內(nèi)研究漢語相似度的思路大多也是以某個漢語的語義詞典作為知識本體,采用前述基于知識本體的某種算法進行漢語語義相似度計算。詞語相似度的計算在更高層面的語言處理中的應(yīng)用也逐漸受到重視,文獻[12]將詞語相似度的計算結(jié)果嵌入到詞向量中,用于計算文本的情感傾向。
漢語可用的知識本體主要有《知網(wǎng)》和《同義詞詞林》等,其中《同義詞詞林》是由梅家駒等人于1983年編撰的可計算漢語詞庫,經(jīng)哈爾濱工業(yè)大學(xué)研究人員擴展成為《哈工大信息檢索研究室同義詞詞林?jǐn)U展版》,本文簡稱其為《詞林》。文獻[3]較早地對《知網(wǎng)》的知識描述語言進行形式化表達,并給出了一個判定語義相似度的計算模型。但也指出《知網(wǎng)》的框架與WordNet框架有著根本性的不同,這也給相似度計算帶來了很大的困難。漢語知識體系中,《詞林》層級體系與WordNet框架更為接近,其最大共同點是:概念是描寫詞義的最小單位,每個概念都是這個層次體系中的節(jié)點。運用基于知識本體的方法計算語義相似度時采用《詞林》作為底層框架更具可操作性。事實上,國內(nèi)相關(guān)研究人員也提出了很多基于《詞林》的語義相似度計算模型。然而《詞林》與WordNet在層次設(shè)計上也有很大不同,《詞林》中所有葉子節(jié)點與根節(jié)點距離都具有相同的深度,而WordNet中卻具有不同的深度。因此直接使用基于WordNet的計算公式,就會出現(xiàn)得到的相似度只能取到幾個有限值的情況,無法體現(xiàn)詞對與詞對之間的差異,為解決這個問題,研究者提出了各種應(yīng)用于《詞林》的基于深度和距離的改進方法。文獻[13]利用《詞林》的編碼及結(jié)構(gòu)特點,結(jié)合詞語的相似性和相關(guān)性,實現(xiàn)了一種基于《詞林》的詞語相似度計算方法。文獻[14]在《詞林》詞語路徑與深度的計算中引入邊權(quán)重的概念,對不同層次的邊分別賦予不同的權(quán)重。文獻[15]根據(jù)《詞林》中2個詞語最近公共父節(jié)點的深度分別賦予不同的權(quán)值,結(jié)合2個義項在最近公共父節(jié)點中的分支間距設(shè)計模型,并且在深度和距離中又引入適當(dāng)?shù)恼{(diào)節(jié)參數(shù)。文獻[16]認(rèn)為《詞林》編碼體系是按從左到右依次遞增的關(guān)系排列分支,距離越近的概念分支間隔越小,編碼距離也越近,由此根據(jù)每個分類節(jié)點下面的分支節(jié)點順序及編碼規(guī)律設(shè)計了計算模型。
以上這些計算模型在結(jié)果與其文中的判斷標(biāo)準(zhǔn)Miller人工判別值還存在一定的差距。其主要原因在于這些模型在改進過程中主要考慮如何調(diào)整路徑與深度的參數(shù),而對于《詞林》義項編碼一般都是從數(shù)學(xué)計算的角度直接利用,沒有從詞匯學(xué)角度充分利用《詞林》中的語言學(xué)知識,因此在語言學(xué)方面的可解釋性不強。事實上《詞林》作者在編著過程中就已經(jīng)融入了世界知識及對漢語同義詞的分類信息,其義項編碼中含有大量語言學(xué)和詞匯學(xué)知識,對于這些信息則應(yīng)該充分解析并做形式化處理后告訴計算機。比如,“轎車”的語義編碼是“Bo21A04=”,從語義的角度來看,第1位編碼是“B”,大類屬于“物”類;第2位編碼是“o”,中類屬于“機具”類,第8位編碼是“=”,說明原子詞群中還有與其意義相同的其他詞語,查詢《詞林》后,該詞所在的原子詞群中有“轎車、臥車、小車、小轎車、小汽車”這5個詞語?!捌嚒钡恼Z義編碼是“Bo21A26#”,從語義編碼上看“汽車”和“轎車”的前5位義項編碼相同,也屬于“機具”類,且2個詞語在同一個詞群,只是分屬于不同的原子詞群。而“旅游”的語義編碼是“Hj48B01=”,第1位編碼是“H”,大類屬于“活動”類;第2位編碼是“j”,中類屬于“生活”類,“旅游”從第一位語義編碼開始就與“轎車”不同,因此從語義的角度來看,“轎車”與“汽車”的相似度一定大于“轎車”與“旅游”的相似度。從語法的角度來看,“B”大類多屬于名詞,“轎車”與“汽車”都是名詞;而“H”大類多屬于動詞,“旅游”是動詞。“轎車”與“汽車”詞性相同,語義相近,是語言學(xué)意義上的同義詞,可以計算其相似性;而“轎車”與“旅游”詞性不同,語義也不相近,并不是語言學(xué)意義上的同義詞,計算結(jié)果主要是其相關(guān)性。
《詞林》在結(jié)構(gòu)上的主要特點是節(jié)點深度最終決定詞對之間語義相似度的不同,以深度為變量的相似度函數(shù)變化趨勢與Logistic函數(shù)的變化趨勢非常接近,相似度的取值范圍又介于[0,1]之間,因此從函數(shù)與變量的關(guān)系及取值范圍等角度來看,Logistic函數(shù)非常適合用來計算語義相似度。因此本文在充分解析《詞林》義項編碼信息內(nèi)容的基礎(chǔ)上,運用Logistic函數(shù)計算詞語之間的語義相似度。
經(jīng)哈工大擴展后的《詞林》體系將詞語分為5個層級:大類、中類、小類、詞群和原子詞群,上面4層節(jié)點都代表詞語的類別,第5層葉子節(jié)點上是原子詞群,每個原子詞群可以用一個8位編碼唯一表示,表1詳細展示了《詞林》中的義項編碼情況,參見《哈工大同義詞詞林?jǐn)U展版》網(wǎng)站:http://www.ltp-cloud.com/download。
表1 《詞林》義項編碼表
經(jīng)統(tǒng)計,《詞林》共有77456條詞語,分為12個大類,95個中類,1428個小類,4026個詞群和17817個原子詞群。在大類中,A、B、C類多為名詞,D類多為數(shù)詞和量詞,E類多為形容詞,F(xiàn)、G、H、I、J類多為動詞,K類多為虛詞,L類是難以被分到上述類別中的一些詞語。各大類具體代碼含義如表2所示[17]。
表2 《詞林》大類代碼含義表
《詞林》結(jié)構(gòu)安排中,大類和中類的排序遵照從具體到抽象的原則,如E大類下面又分為6個中類,從“外形”到“境況”,具體見圖1所示。
圖1 《詞林》E大類語義場
從語言學(xué)角度看《詞林》各層級上的節(jié)點與其分支節(jié)點都構(gòu)成一個語義場,語義場理論是德國語言學(xué)家特里爾(J.Trier)等人提出的,其核心任務(wù)是研究詞語所表達的概念與概念之間的關(guān)系。語義場把相互關(guān)聯(lián)的詞匯或短語組織起來,某些詞語可以在一個共同概念的支配下形成一個語義場,顯示其間的相互關(guān)系。在同一個語義場中,表達共同概念的詞稱為上義詞(superordinate),是這個語義場的核心語義;受上義詞支配的若干個詞語稱為下義詞(hyponym),下義詞之間在語義上是相近或相關(guān)的關(guān)系[18]。從語義場理論的觀點來看,《詞林》體系就是由不同層級語義場構(gòu)成的詞語分類體系。在第一層級結(jié)構(gòu)中,每個大類代碼都表示一類不同的事物,如“A”代表“人”;“B”代表“物”;其他具體見表2,由此可以把每個大類都看作一個語義場,每個大類的代碼含義就是這個語義場的核心語義。如果把E大類看作一個語義場,那么其上義詞是“特征”,下義詞是“外形、表象、顏色、性質(zhì)、德才、境況”。在第五層級結(jié)構(gòu)中,每個葉子節(jié)點上的原子詞群都是一個語義場,一般來說原子詞群中的第一個詞語可以看作這個語義場的上義詞,所有詞語是這個語義場的下義詞。另外根據(jù)末位義項編碼的不同,每個原子詞群語義場內(nèi)部的詞語間有相似、相關(guān)和獨立3種關(guān)系。比如,編碼為“Ae07A01=”的原子詞群構(gòu)成的語義場如圖2所示。
圖2 《詞林》葉子節(jié)點“Ae07A01=”的語義場
由語義場理論可以為《詞林》體系得出以下幾個結(jié)論:
1)2個詞語所在的大類對二者的語義相似度具有決定性作用?!对~林》體系中,每個大類是最大的語義場,如果2個詞語的最近公共父節(jié)點在第一層級,那么2個詞語所在的最小語義場就在第一層級,2個詞語的語義可能是同義或相關(guān)的關(guān)系;如果2個詞語不在同一個大類下,那么這2個詞語的最近公共父節(jié)點就是根節(jié)點,2個詞語不在同一個語義場中,2個詞語的語義可能相關(guān),但一定不具有同義關(guān)系。
2)每個葉子節(jié)點上的原子詞群都是一個最小的語義場,其中的詞語相似度最大。在目前的《詞林》層級體系和本文算法中如果2個詞語在原子詞群中,它們所處的語義場最小,公共父節(jié)點的深度最大,因此語義相似度也最大。
3)《詞林》在編碼時分類是漸近變化的,編碼相近的詞語其分類往往也是相近的,因此義項編碼越接近的語義場其核心語義越接近,相似度就越高,所以使用分支節(jié)點的數(shù)量和信息具有重要的語言學(xué)意義。
4)《詞林》體系中每個非根節(jié)點都是一個語義場,2個詞語的最近公共父節(jié)點的深度越大,說明它們公共父節(jié)點的層級越低,2個詞語所在的語義場越小,則2個詞語的語義相似度越大。節(jié)點中的分支信息不能否定結(jié)論3中根據(jù)語義場理論及最近公共父節(jié)點深度的相似度計算結(jié)果。而且無論其父節(jié)點分支數(shù)量及間隔數(shù)量如何,公共父節(jié)點深的詞語其相似度必然高于父節(jié)點淺的詞
Logistic函數(shù)是機器學(xué)習(xí)領(lǐng)域中較為常用的一種S型函數(shù),定義域為(-∞,+∞),值域為(0,1)[19]。它可描述物種數(shù)量隨時間變化的情況,當(dāng)一個物種遷入到一個新生態(tài)系統(tǒng)中后,假設(shè)該起始數(shù)量小于環(huán)境的最大容納量,其數(shù)量就會隨時間發(fā)生變化。初始階段增長較慢,數(shù)量達到一定規(guī)模時增長較快,大致呈指數(shù)增長;然后隨著種群數(shù)量開始變得飽和,增加再次變慢。Logistic函數(shù)的一種表示形式如下:
(1)
其中,P0為初始值,K為終值,r是衡量曲線變化快慢的標(biāo)準(zhǔn)。這個函數(shù)的曲線很像一個“S”型,所以又叫“sigmoid曲線”(S型曲線)。
《詞林》根據(jù)其編碼規(guī)律,可以映射為一個5層的樹狀結(jié)構(gòu),所有原子詞群都處在樹形結(jié)構(gòu)的葉子節(jié)點上,為了計算方便,本文在大類上面加一個根節(jié)點R,深度就是某個節(jié)點到根節(jié)點的距離,也是度量相似度的決定性因素。一般相似度函數(shù)S(s1,s2)的取值介于[0,1]之間,相似度越高的2個詞語其語義相似度函數(shù)的取值越接近于1,相似度越低的2個詞語,其語義相似度函數(shù)取值越接近于0。根據(jù)前面的分析,在《詞林》中2個詞語的語義相似度主要取決于其最近公共父節(jié)點的深度,公共父節(jié)點深度越大,說明2個詞語所在分支分開得越晚,因此就具有更高的相似度,反之最近公共父節(jié)點深度越小,說明2個詞語的語義相似度越低。因此語義相似度函數(shù)S(s1,s2)的主要部分可以看作(s1,s2)最近公共父節(jié)點深度d的函數(shù),且d越大,S(s1,s2)的取值就越大,d越小,S(s1,s2)的取值就越小。
《詞林》采用層層分類的方法對語義進行組織和編碼,使得語義的編碼意義更加清晰和明確,使詞語的組織架構(gòu)更加簡潔。但這不可避免地帶來了節(jié)點深度取值變化較少,無論2個詞語的位置關(guān)系如何,其公共父節(jié)點的深度僅能取到少數(shù)幾個數(shù)值,因此當(dāng)采用深度的函數(shù)表達式來計算語義相似度時,函數(shù)的值域是一個取值有限的集合。這也就出現(xiàn)了相似度僅能取得幾個有限值的情況,這種情況在基于WordNet的語義相似度計算中一般不會出現(xiàn),而在《詞林》中就難以避免。從某種意義上講,之所以出現(xiàn)這樣的現(xiàn)象也正是《詞林》建立者所要表達的對詞語相似度的觀點。但這種僅取有限值的情況,在一定程度上也說明在《詞林》中深度和路徑所承載的信息,無法提供更精確的語義相似度計算結(jié)果。
為得到更精確的語義相似度,研究者需要從《詞林》中提取更多的信息,加入到語義相似度計算模型中。首先人們能夠想到的是給連接《詞林》中2個節(jié)點之間的邊上添加權(quán)重,如果每條邊都有專屬的權(quán)重,則對任意2組不同的詞語,即使其路徑長度相同,其加權(quán)后的路徑也可能不同;其最近公共父節(jié)點的深度雖然相同,但加權(quán)后的深度也可能不同。因此這樣就能夠得到不同的加權(quán)路徑和深度,從而得到不同的相似度值以便更好地刻畫不同詞對的語義相似度之間的差異。然而這樣做的主要困難是在《詞林》體系中的邊上并沒有權(quán)重信息,要給邊加入權(quán)重信息,沒有明確的度量標(biāo)準(zhǔn)和規(guī)則,同時也是一個與建立《詞林》同樣浩大的任務(wù)。所以前人文獻中常見的折衷方案是對每一層級的邊分別賦予不同的權(quán)重,而對同一層級的邊賦予相同的權(quán)重,這樣對《詞林》的樹形結(jié)構(gòu)僅需賦予5個不同層級的權(quán)重。對不同層級的邊賦予不同的權(quán)重,就是在不同的分類層級中賦予其對相似度不同的影響力,這從語言學(xué)上具有重要的合理性,而且在操作上也有很高的可行性。但仔細分析后可以發(fā)現(xiàn),僅靠增加邊的權(quán)重信息,然后用加權(quán)距離和深度的函數(shù)來計算語義相似度,并不能改變語義相似度取值有限的情況。因為對于路徑距離相同的不同詞對,其加權(quán)路徑距離和加權(quán)最近公共父節(jié)點深度仍然相同,因此無論這2組詞對所處的位置如何,采用相同語義相似度計算函數(shù)得到的語義相似度值必然也相同。
為避免詞林中深度取值有限引起的相似度計算不夠準(zhǔn)確的問題,可加入節(jié)點處的分支情況信息。根據(jù)《詞林》的特點,語義越近的詞對其所在分支的間隔越小,因此把計算相似度的信息定義為:
(2)
其中,d為節(jié)點深度,N為節(jié)點分支總數(shù),k為2個語義所在分支的間隔。
根據(jù)相似度函數(shù)取值介于[0,1]之間的性質(zhì)以及h越大相似度越高的關(guān)系可知,相似度函數(shù)的取值范圍及變化趨勢與Logistic函數(shù)非常類似,因此本文給出基于《詞林》的Logistic函數(shù)相似度計算模型:
(3)
其中,h如式(2)所示,為2個詞語(s1,s2)最近公共父節(jié)點的深度和節(jié)點信息的組合,S0為初始值,M為終值,r為待定參數(shù)。根據(jù)Logistic函數(shù)的性質(zhì),該函數(shù)的取值介于[0,1]之間,且函數(shù)值隨d單調(diào)遞增。在Logistic函數(shù)中當(dāng)h取0時,函數(shù)值為S0,此時2個詞語所對應(yīng)的最近公共父節(jié)點為根節(jié)點,且其深度為0,此時2個詞語的語義具有最小的相似度,即S0,它是該模型計算出的語義相似度最小值。當(dāng)h→+∞時,函數(shù)極限為M,所以M是函數(shù)取值的上界,且應(yīng)保證h取最大值時P(h)小于1。r為調(diào)節(jié)函數(shù)變化快慢的參數(shù),通過r可以調(diào)節(jié)除R及葉子節(jié)點外節(jié)點的函數(shù)值。
上述分析說明,在使用基于深度和節(jié)點信息進行語義相似度計算時,深度起決定性作用,節(jié)點信息能起到輔助作用,使得對相似度的描述更加準(zhǔn)確。計算公式是真實語義相似度的一個近似形式,但語義相似度隨h的變化,特別是在最初和最末的緩慢變化階段,其變化速度并不對稱。為了使計算公式更好地符合語言學(xué)規(guī)律,本文采用分段函數(shù)的思想,分段設(shè)計語義相似度計算公式。根據(jù)相似度隨深度的變化規(guī)律,對不同深度采用不同的變化系數(shù),本文給出如下分段的語義相似度函數(shù):
(4)
其中,P1(h)、P2(h)是系數(shù)不同的Logistic相似度計算函數(shù),h是深度與節(jié)點信息結(jié)合后的相似度計算變量。在公式(4)中根據(jù)h取值范圍,取介于最大值和最小值間的2.5為分界點,在兩側(cè)分別設(shè)計不同的相似度計算公式。通過對人工判定測試和相似度深度的觀察和分析,詞語相似度在深度值較大和較小時變化都比較平緩,而在中間位置變化較快,雖然整體符合S型函數(shù)的規(guī)律,但深度較大部分和深度較小部分其變化趨勢還是存在較大差異。因此本文提出了分段表示相似度計算函數(shù)的思想,以更好地表示詞林中深度蘊含的原理,從理論上能得到更好的計算結(jié)果。
在基于知識體系的漢語詞語相似度計算中,Miller與Charles發(fā)布的30個詞對(以下簡稱MC30)的人工語義相似度判斷結(jié)果常作為比較的標(biāo)準(zhǔn),這30個詞對中有10對詞語的語義具有高相似性,有10對詞語的語義具有中相似性,還有10對詞語的語義具有低相似性[20]。本文采用MC30作為測試對象,主要是因為對這30個詞對的相似度具有公認(rèn)的相似度結(jié)果,方便本文結(jié)果與該標(biāo)準(zhǔn)結(jié)果通過計算皮爾遜系數(shù)及均方根誤差等進行比較;另外前人的相關(guān)研究中很多也都是以此作為測試對象,方便將本文計算結(jié)果與前人的結(jié)果進行對比。本文將公式(3)和公式(4)得到的詞語相似度計算結(jié)果和文獻[14-15]列出相關(guān)計算結(jié)果中的最優(yōu)者進行了比較。其中公式(3)中的系數(shù)分別為:
M=0.3603,S0=0.1265,r=0.9689
公式(4)中P1(h)中的系數(shù)為:
M=0.6638,S0=0.8268,r=0.1688
P2(h)中的系數(shù)為:
M=0.2819,S0=0.1090,r=0.6138
表3列出了不同方法對MC30的語義相似度計算結(jié)果與人工判定值的皮爾遜相關(guān)系數(shù)和均方根誤差。
表3 MC30詞對實驗結(jié)果對比表
為了更好地測試本文所提算法的有效性,本文使用公式(4)計算了更多詞對的相似度,計算結(jié)果均能較準(zhǔn)確地反映出詞對的相似度,但需要與具有廣泛認(rèn)可度的公開標(biāo)準(zhǔn)結(jié)果進行比較,才能更加客觀地評價本文算法的計算結(jié)果。前面計算中使用的30對Miller&Charles發(fā)布的英語普通名詞數(shù)據(jù)集來源于Rubenstein&Goodenough發(fā)布的65對名詞數(shù)據(jù)集(簡稱RG65)[21],因此本文又選取了RG65對詞語中剩余的35對詞語的相似度計算結(jié)果進行測試,其完整計算結(jié)果及相關(guān)評價標(biāo)準(zhǔn)如表4所示。
表4 RG65剩余35個詞對計算結(jié)果
從計算結(jié)果可以看出,無論是對已有文獻中廣泛使用的30對詞語的相似度計算還是對剩余的35對詞語進行相似度計算,本文提出的算法都能取得很好的計算結(jié)果,與標(biāo)準(zhǔn)結(jié)果的相關(guān)系數(shù)和均方根誤差均達到較高標(biāo)準(zhǔn)。這是因為Logistic函數(shù)模型,其函數(shù)的取值隨深度變化能很好地描述語義相似度隨節(jié)點深度的變化情況。Logistic函數(shù)能夠準(zhǔn)確反映深度、節(jié)點信息與相似度取值之間的關(guān)系,符合《詞林》中蘊含的詞語相似度規(guī)律,且表達式具有較為合理的語言學(xué)解釋性。
本文提出的基于深度和節(jié)點信息的語義相似Logistic模型,在深度較小的詞對相似度計算方面,其語義相似度計算結(jié)果仍有進一步提升的空間。因為根據(jù)深度和節(jié)點信息結(jié)合后的取值不同,對較大取值和較小取值分別采用了不同的Logistic模型參數(shù),使得計算公式能更好地表示詞語相似度。計算結(jié)果表明,改進后模型的皮爾遜系數(shù)和均方根誤差均優(yōu)于文獻[14]中的最好結(jié)果,該文獻中給出的計算結(jié)果是基于《詞林》和《知網(wǎng)》2個知識體系的計算結(jié)果。該文獻中給出計算結(jié)果的皮爾遜系數(shù),就筆者目力所及是已有關(guān)于中文MC30詞對相似度結(jié)果中最高的。本文還隨機生成大量的詞對并計算它們的相似度,在筆者看來,這些結(jié)果都比較符合基于語言學(xué)知識的判斷,但沒有可對比的標(biāo)準(zhǔn)結(jié)果,在此不再一一列出。此外,文獻[14]和[15]中還列出了一系列其他方法的計算結(jié)果,但這些結(jié)果均不及本文所引用的這2組結(jié)果,在此不再羅列對比。
本文通過一系列計算與研究,得出以下結(jié)論:
1)語義相似度計算本質(zhì)上還是一種語言中詞語之間的對比與辨析問題,單純從數(shù)學(xué)角度去計算詞語之間的語義相似度背離了其本質(zhì)問題。如果在設(shè)計算法模型的過程中,能將語言學(xué)理論、詞匯知識、分類體系等一系列相關(guān)內(nèi)容信息融入到計算模型中去,所得結(jié)果一定會事半功倍。本文研究發(fā)現(xiàn),目前詞語相似度計算與人工判定值存在差距,知識本體中的語言學(xué)知識利用得不夠充分是一個重要原因。如果能綜合運用語義、語法、語用等多種語言學(xué)信息進行計算,則所得詞語相似度計算結(jié)果一定會更加合理。從語義的角度,可以給詞語標(biāo)注其所屬的語義場信息,如上義詞、下義詞或同義詞、反義詞等。從語法的角度,可以加入詞性信息,在詞性信息的基礎(chǔ)上再加入各類不同詞性詞語的具體特征,如名詞和動詞可以標(biāo)注其配價信息,形容詞可以標(biāo)注褒義或貶義信息,程度副詞可以標(biāo)注等級信息等。從語用的角度,可以在詞語后面標(biāo)注其語體特征,比如該詞語是口語還是書面語:如果是口語語體可以具體標(biāo)注為日??谡Z體、事務(wù)口語體、典雅口語體、論戰(zhàn)口語體等;如果是書面語可以具體標(biāo)注為新聞?wù)Z體、理論語體、應(yīng)用語體或是文學(xué)語體等。如果將這些語言學(xué)知識都加入到知識本體中,再利用數(shù)學(xué)模型計算其相似度值,所得結(jié)果一定會更為精確。由此看來,如何為詞語全面標(biāo)注語義、語法、語用信息的可用語言知識本體應(yīng)該是下一步的研究方向。
2)計算結(jié)果與人工判定結(jié)果的差異需要在語言學(xué)上有更深層的解釋。詞語相似度是計算語言學(xué)領(lǐng)域中的概念,其思想可能源于傳統(tǒng)語言學(xué)領(lǐng)域中的同義詞辨析,同義詞的辨析方法可以從同義詞語的語義屬性、語體色彩、組合關(guān)系中的不同搭配、聚合關(guān)系中的不同替換等多角度進行[22-23]。一般人在判斷同義詞的相似度時,受到的影響因素會比較復(fù)雜,可能會潛移默化地受到上述幾個方面的影響,而不是單純從語義角度去判斷2個詞語的相似度。因此僅依據(jù)語義建立的計算模型不可能與人的判斷結(jié)果完全一致,只要能從理論上認(rèn)定這種算法的合理性,對于差異的部分還是要重新審視知識本體內(nèi)部結(jié)構(gòu),而不是單純修改模型參數(shù)。
3)在語言學(xué)領(lǐng)域進行對比和辨析的通常是同一個語義場中的一組詞語,它們在語義上通常具有相近性或相關(guān)性,映射到《詞林》體系中一般是一個原子詞群內(nèi)部的詞語,也就是說計算同一原子詞群內(nèi)部詞語之間的相似度更有實踐意義。然而由于《詞林》框架設(shè)計原因,目前基于《詞林》的語義相似度算法都是針對不同原子詞群間的詞語進行的,相同原子詞群內(nèi)部詞語間的相似度判別還需要加入更多的信息內(nèi)容,如何為其添加相關(guān)信息是下一步需要重點關(guān)注和研究的內(nèi)容。
4)本文算法是在知識本體基礎(chǔ)上,對語義分類詞典——《詞林》中所蘊含的詞語相似度的數(shù)學(xué)描述。當(dāng)前本領(lǐng)域詞語相似度的計算目的更多的是作為直接應(yīng)用的基礎(chǔ)構(gòu)成部分,例如在句子相似度計算、情感分析等具體應(yīng)用場景中,用于計算其中相應(yīng)詞對的語義相似度,進而提高這些應(yīng)用中自然語言處理的整體水平。另外基于知識本體的計算方法不受具體語料的限制,具有很好的適應(yīng)性和靈活性。例如當(dāng)詞向量訓(xùn)練語料中含有同形異義詞時,可以先通過詞語相似度確定其真實意思,再進行詞嵌入訓(xùn)練,從而提高詞向量的準(zhǔn)確性。本文提出的核心算法簡單易用,可以方便地嵌入到各種基于詞向量的自然語言處理的應(yīng)用中,發(fā)揮其作用。