李 蕾,楊麗花
(南京郵電大學(xué) 江蘇省無線通信重點實驗室,江蘇 南京 210003)
詞語語義相似度計算在信息檢索[1]、基于實例的機器翻譯[2]以及數(shù)據(jù)相似度檢測等領(lǐng)域有著廣泛的應(yīng)用。目前常用的基于知網(wǎng)的詞語語義相似度計算方法大致可分為兩類:一類是利用大規(guī)模語料統(tǒng)計詞語的相關(guān)性,即基于統(tǒng)計的方法;另一類是根據(jù)某種世界知識計算相似度的方法,即基于世界知識的方法[3]。其中,基于統(tǒng)計的方法是根據(jù)詞匯上下文信息的概率分布計算詞語語義相似度,該方法計算得到的結(jié)果精確度較高,但是需要依賴于訓(xùn)練所用的語料庫,計算量比較大,計算方法也比較復(fù)雜。此外,由于數(shù)據(jù)稀疏和數(shù)據(jù)噪聲等因素對基于統(tǒng)計的方法干擾較大,故該方法一般很少使用[4]。基于世界知識的方法通常是基于某個知識完備的語義詞典中的層次結(jié)構(gòu)關(guān)系進行計算,該方法簡單有效,不需要用語料庫進行訓(xùn)練,也比較直觀和易于理解,但這種方法受人的主觀意識影響較大,有時并不能準(zhǔn)確反映客觀事實[5]。
知網(wǎng)是一個以漢語和英語詞語所代表的概念為描述對象、以揭示概念與概念之間以及概念所具有屬性之間的關(guān)系為基本內(nèi)容的常識庫和知識庫。基于知網(wǎng)的詞語語義相似度計算最終可以歸結(jié)于義原相似度計算的層面上。例如,文獻[6]提出了一種根據(jù)義原距離計算詞語語義相似度計算方法;文獻[7]在考慮義原距離的基礎(chǔ)上進一步考慮了義原深度對詞語語義相似度的影響;文獻[8]提出了一種同時考慮義原深度和義原密度的方法;文獻[9]考慮了義原間的反義對義關(guān)系及文本情感色彩對詞語語義相似度的影響;文獻[10]提出一種考慮了義原的公共節(jié)點個數(shù)和義原深度的詞語語義相似度計算方法;文獻[11]根據(jù)差異以及共有信息進行詞語語義相似度的計算;文獻[12]提出了一種考慮詞語詞性因素的詞語語義相似度計算方法;文獻[13]將關(guān)系義原和關(guān)系符號義原進行加權(quán)合并,提出補充義原是對基本義原的語義補充,并且考慮了最小公共父節(jié)點的影響[14];文獻[15]深入考慮義原之間的距離和義原層次深度的主次關(guān)系;文獻[16]提出結(jié)合知網(wǎng)與同義詞詞林兩個知識庫的詞語語義相似度算法。
然而,目前常用的基于知網(wǎng)的詞語語義相似度計算方法未深入考慮同一棵樹中的兩個不同義原的可達路徑上所有義原節(jié)點的密度對義原距離的影響,且也未考慮義原深度與義原密度的主次關(guān)系。對此,文中提出了一種改進的基于知網(wǎng)的詞語語義相似度算法。
知網(wǎng)中主要包含義項和義原兩個概念,義項是對詞語語義的一種描述,每一個詞可以表達為幾個義項,它是用一種知識表示語言來描述的。在知網(wǎng)中,每個漢語詞語的一個義項由一個四元組構(gòu)成:〈W_X=詞語 E_X=詞語例子 G_X=詞語詞性 DEF=概念定義〉,其中DEF(語義表達式)是義項的主體,由一個個結(jié)合知識描述符號的基本義原組成,每個義原使用逗號隔開,例如義項“男人”的DEF=“human|人,family|家,male|男”。
知網(wǎng)中義原對于義項的描述是通過一種結(jié)構(gòu)化的知識描述語言進行定義的,這種知識描述語言所用的詞匯叫做義原,義原是用于描述一個義項的最小意義單位,它是從所有詞語中提煉出的,并且可以用來描述其他詞語的不可再分的基本元素。義項與義原之間的結(jié)構(gòu)關(guān)系如下所示[6]
詞語語義相似度不能根據(jù)明確的客觀標(biāo)準(zhǔn)進行衡量,因此它是一個主觀性比較強的概念。文中采用文獻[6]所理解的詞語語義相似度含義,即兩個任意的詞語如果在不同的上下文中可以互相替換且不改變文本語義的可能性越大,那么兩者之間的相似度就越高,否則相似度就越低。
在知網(wǎng)中,一個詞語可以表達為幾個義項,比如:對于兩個漢語詞語w1和w2,若w1有n個義項,即s11,s12,…,s1n;w2有m個義項,即s21,s22,…,s2m,則詞語w1和w2的語義相似度可以表示為:
(1)
其中,sim(w1,w2)表示詞語之間的相似度;sim(s1i,s2j)表示義項之間的相似度。
根據(jù)式1可知,兩個詞語之間的語義相似度可以由兩個義項之間的相似度的最大值表示。而所有的義項最終是用義原來表示,因此義項之間的相似度可表示為[7]:
(2)
其中,β1(1≤i≤4)是可調(diào)節(jié)參數(shù),且滿足:β1+β2+β3+β4=1,β1≥β2≥β3≥β4。
增加網(wǎng)絡(luò)教學(xué)平臺的操作培訓(xùn),讓老師了解網(wǎng)絡(luò)教學(xué)平臺的所有功能,不僅要講解網(wǎng)絡(luò)教學(xué)資源的上傳方法,還要重點講授網(wǎng)絡(luò)教學(xué)平臺的師生互動操作,由于培訓(xùn)時間有限,老師不一定能馬上掌握,老師在教學(xué)中操作時會遇到具體問題,網(wǎng)絡(luò)教學(xué)平臺的客服應(yīng)能及時協(xié)助老師解決。
由于義項相似度是由義原相似度計算來的,因此,基于知網(wǎng)的詞語語義相似度計算最終可以歸結(jié)于義原相似度計算的層面上。
義原中提供了事件類、屬性類、實體類、屬性值類、次要特征類、數(shù)量類、數(shù)量值類、語法類、動態(tài)角色類與動態(tài)屬性類等十棵義原層次樹,它們相互之間不存在交集。對于處于同一棵樹的兩個不同義原,有且僅有一條長度為N的可達路徑,并且不同樹的義原之間沒有可達路徑,在此定義兩義原間路徑的長度為義原的語義距離,即義原距離。一般而言,義原距離越小,義原相似度越大。
文中選取了一個以“實體”為根節(jié)點的義原層次體系樹的分支(如圖1所示),并根據(jù)該圖,對三種常見的義原相似度計算方法進行分析。
圖1 以“實體”為根點的樹分支示意
劉群等提出通過計算兩義原節(jié)點之間的義原距離計算兩個義原之間的相似度[6],即
(3)
其中,p1和p2表示義原,dis(p1,p2)為p1和p2在義原層次樹中的義原距離,當(dāng)p1和p2處于不同的樹時,dis(p1,p2)將取一個較大常數(shù);α為可調(diào)參數(shù)。
該方法根據(jù)知網(wǎng)中義原之間的上下位關(guān)系對詞語語義相似度進行計算,但是計算得到的詞語語義相似度結(jié)果過于粗糙,準(zhǔn)確度不高。
文獻[13]提出一種根據(jù)義原深度和義原密度來計算義原相似度的方法。其中義原深度是指義原層次體系樹上的根節(jié)點到該義原節(jié)點的路徑長度,義原深度越小,義原表達的概念越抽象,義原深度越大,義原表達的概念越具體;義原密度是指該義原節(jié)點的兄弟節(jié)點的個數(shù)(含自身),義原密度越大,意味著分類越細致,描述越詳細,其攜帶的語義信息越豐富,位于高密度區(qū)域的節(jié)點對義原距離小。利用義原深度和義原密度獲得的義原相似度計算公式為:
(4)
其中,N是義原p1和p2之間可達路徑上的長度;level(i)為兩個義原可達路徑上邊i在義原層次樹中的層次;LCN是兩個義原在樹中的最小公共父節(jié)點[14];f(·)函數(shù)反映了當(dāng)前義原所在樹中的密度信息,其值為當(dāng)前義原的兄弟節(jié)點的個數(shù)(含自身)與樹的總節(jié)點個數(shù)的比值;weight函數(shù)是一個隨層數(shù)k遞增而單調(diào)遞減的函數(shù),表示每一條邊的權(quán)重,定義為:
(5)
其中,depth為當(dāng)前義原層次樹的樹高。
文獻[13]雖然在義原距離的計算公式中引入了一個隨層數(shù)遞增而單調(diào)遞減的邊權(quán)重函數(shù),但該函數(shù)采用的是線性遞減策略,頂部邊權(quán)重衰減過快,不符合知網(wǎng)層次結(jié)構(gòu)的特點。為了避免該現(xiàn)象,文獻[16]引入了一個正弦三角函數(shù),即
sin(θ*k*π/180))
(6)
其中,θ是調(diào)節(jié)參數(shù),與樹高depth成反比。
文獻[16]雖然改進了義原距離計算公式中的邊權(quán)重函數(shù),但卻未考慮義原密度對義原相似度的影響。
現(xiàn)有的義原相似度計算方法雖然考慮了義原樹中義原深度和(或)密度對義原相似度的影響,但僅僅只考慮了當(dāng)前所要計算的義原節(jié)點以及它們的最小公共父節(jié)點的密度對義原相似度的影響,而未考慮兩個義原節(jié)點可達路徑上所有節(jié)點的密度對義原距離的影響。為此,文中提出一種基于知網(wǎng)的詞語語義相似度改進方法,該方法基于知網(wǎng)語義詞典,通過將義原深度和義原節(jié)點間所有節(jié)點密度進行聯(lián)合,并利用權(quán)重因子來權(quán)衡義原深度和義原密度對義原相似度的影響,獲取新的義原相似度計算公式,根據(jù)義原、義項與詞語之間的關(guān)系,最終得到改進的詞語語義相似度計算表達式。
在義原樹中,影響義原距離的因素有義原深度和義原密度,一般而言,義原深度越大,義原距離越?。涣x原密度越大,義原距離越小。該方法通過在邊權(quán)重函數(shù)中引入義原可達路徑上所有義原節(jié)點密度對義原距離的影響,給出了一個新的邊權(quán)重函數(shù)表達式,即
(7)
其中,ip,q為義原p與q之間的邊,p表示當(dāng)前義原節(jié)點,q是當(dāng)前義原節(jié)點p的上一層父節(jié)點;kp為當(dāng)前義原節(jié)點p所在層的編號;θ是調(diào)節(jié)參數(shù),與樹高depth成反比,文中取θ=4;f(·)函數(shù)反映了當(dāng)前義原所在樹中的密度信息,其值為當(dāng)前義原的兄弟節(jié)點的個數(shù)(含自身);max表示當(dāng)前義原樹中所有義原節(jié)點的總個數(shù);c1和c2為權(quán)重因子,其主要是用來權(quán)衡義原深度和義原密度對義原距離的影響。
利用式8給出的新的邊權(quán)重函數(shù),得到義原p1與p2之間的距離為:
(8)
其中,G是義原p1與p2的公共父節(jié)點。再分別根據(jù)式3、式2和式1,從而最終可獲得兩詞語的語義相似度。
考慮到義原深度和義原密度對義原距離的影響不同,文中方法引進了權(quán)重因子c1和c2來權(quán)衡二者的影響。在此設(shè)置4組不同的權(quán)重因子組合來計算義原距離,通過比較義原距離,選取出符合該方法中的最佳權(quán)重因子c1和c2,實驗結(jié)果如表1所示。在表1中,當(dāng)(c1=0.4,c2=0.6)和(c1=0.5,c2=0.5)時,“獸”和“人”的義原距離要大于“動物”和“植物”之間的義原距離,這顯然和實際情況不相符合,在以“屬性和屬性值”為根節(jié)點的義原層次體系樹中,“味道”和“氣味”的義原距離要小于“酸”和“甜”之間的義原距離,這與實際情況是相符合的,但是當(dāng)權(quán)重因子分別取(c1=0.4,c2=0.6)和(c1=0.5,c2=0.5)時,兩者的義原距離都相差比較大,而權(quán)重因子取(c1=0.7,c2=0.3)時的義原距離比較適中,在以“實體”為根節(jié)點的義原層次體系樹中(如圖1所示),“走獸”和“牲畜”、“花草”和“樹”這兩對義原對同是樹中的葉子節(jié)點,因此這兩對義原對的義原距離相差不大。因此,當(dāng)c1和c2分別0.7和0.3時,得到的義原相似度更符合實際情況。
表1 不同權(quán)重因子情況下的義原距離比較
為了驗證該方法,將其與現(xiàn)有詞語語義相似度計算方法進行了仿真驗證,如表2所示。
在表2中,方法1是文獻[6]所提方法,方法2是文獻[13]所提方法,方法3是文獻[16]所提方法。在仿真中,α=1.6,β1=0.5,β2=0.2,β3=0.17,β4=0.13,γ=0.2,δ=0.2??煽闯觯椒?中“男人”(取義項“human|人,family|家,male|男”)與“女人”(取義項“human|人,family|家,female|女”)和“和尚”(取義項“human|人,religion|宗教,male|男”)的詞語語義相似度是相同的,這是因為方法1中沒有考慮義原層次樹中節(jié)點的層次深度和密度對義原相似度的影響,但在實際情況中,義原“男”和“女”與“家”和“宗教”的相似度顯然是不同的,所以方法2、方法3和文中方法比方法1更能區(qū)別不同詞語之間的語義相似度,但是其中有些詞語語義相似度的計算結(jié)果也不太合理,如方法2中“女人”和“男人”的相似度大于“和尚”和“男人”的相似度,這與人的直覺是不相符合的,因為“和尚”和“男人”都為男性,它們之間的相似度應(yīng)該比“女人”和“男人”的相似度要高,并且根據(jù)方法2和文中方法中所定義的義原相似度計算方法,義原“家”和“宗教”的相似度比義原“男”和“女”的相似度大,所以“男人”和“女人”的相似度應(yīng)該比“男人”和“和尚”的相似度要小。另外,從6-11這6組詞語對的相似度計算結(jié)果中可以看出,方法2的結(jié)果要遠大于方法1、方法3和文中方法的結(jié)果,而在方法1、方法3和新方法的詞語語義相似度的計算結(jié)果中,6-11這6組詞語對的詞語語義相似度計算結(jié)果差距較小,較為合理。因此,文中方法計算的詞語語義相似度結(jié)果更加合理和準(zhǔn)確。
表2 詞語語義相似度計算結(jié)果比較
利用義原深度與兩義原間可達路徑上所有義原節(jié)點的密度提出了一種改進的詞語語義相似度計算算法,并通過一權(quán)重因子來調(diào)整義原深度與義原密度的主次關(guān)系。實驗結(jié)果表明,該方法所計算的詞語語義相似度結(jié)果更加合理和準(zhǔn)確。