曾淑琴,吳揚揚
(華僑大學 計算機科學與技術學院,福建 廈門361021)
語義相關度的研究是自然語義處理NLP(Natural Language Processing)的基礎,廣泛用于語義消歧、信息檢索、文本分類、文本聚類等領域。本文將其作為數據空間[1]研究課題的基礎性內容來研究,旨在從內容上發現數據空間中的數據源之間的關聯。
關于語義相關度的研究在國外較多,目前的方法一般分為兩類[2]:一種是統計方法,另一種是基于語義詞典方法。Jiang和Conrath利用Wordnet圖的上位關系,通過合并概念c1和c2的信息內容以及最小的共同類屬者,綜合基于邊以及結點的技術,再用語料庫統計作為輔助因素進行矯正[2];Banerjee和 Pedersen在 Wordnet的英文語境下,將單詞的解釋中重疊的單詞數量的平方,及含有上下文等關系類型的詞語的單詞重疊的數量的平方之和,共同作為最后詞語相關度的值[2]。
國內在語義相關方面的研究還較欠缺,且大多數選擇英文環境,主要基于HowNet、詞林、維基百科等知識庫[3-5]。參考文獻[3]根據知網中的特征文件下位義原和上位義原擁有的屬性以及縱向語義聯系和實例信息計算詞語的相關度。參考文獻[4]通過挖掘直接或間接的關系而提出的新的語義相關度計算模型,適用于類似知網的知識體系。總結基于語義詞典度量語義相關度所考慮的因素,即最短路徑長度、局部網絡密度、結點在層次中的深度、連接的類型、概念結點的信息含量以及概念的釋義,將上述6個因素歸為三大類:結構特點、信息量和概念釋義。
本文在綜合了參考文獻[3]中所提到的基本義原相似度和關聯度以及其他相關研究的基礎上定義了一個詞語相關度算法模型,實現計算同種詞性、不同詞性詞語之間的相關度。
中國人民大學的董振東教授等人編寫的《知網》以漢語和英語的詞語所代表的概念為描述對象,包含豐富詞匯,反映概念的共性和個性,是以揭示概念與概念之間以及概念所具有的屬性之間的關系為基本內容的常識知識庫。
知網中的語義通過義原描述,共有1 618個義原被分成 10大類,每一類都是由一個樹結構來存儲,而不同類之間的義原構成一個網狀結構,它們通過解釋義原關聯起來。知網中的詞語關系類型[6]如表1所示。
定義1語義相似度是指兩個詞在不同的上下文中可以互相替換使用而不改變文本的句法語義結構的程度[7]。
定義2詞語關聯度是指詞語在概念解釋上所存在的語義關系的程度。
定義3詞語相關度是指詞語間含有表1中的關系類型或存在詞語隱含傳遞等相互關聯的特性,即兩個詞語相互關聯的程度從側面反映了兩個詞語在同一個語境中共現的可能性,其影響因素有詞語的相似性以及關聯性等。
鑒于目前國內還沒有對相關度判斷的標準和類似的專門人工判斷的詞集,本實驗中對相關度的判斷主要從兩個方面來界定:一是依據上文的定義;二是通過對比參考文獻[3]中相關度的實驗結果,改進其中一些明顯不合理的實驗結果來確認本方法的改進性。
通過對知網結構的分析,根據如下幾個因素計算語義相關度:
(1)詞語的相似度
知網中的詞語通過一個記錄來表示,其中有一項語義表達式DEF對該詞語進行描述,語義表達式由概念和義原組成。知網中義原有3個類別,另有一些關系符號對概念的語義進行描述的義原,因此,可以將義原分為基本義原、其他義原、關系義原以及關系符號義原。詞語的相似度可以通過這4種義原類型求得。
采用下列方法計算兩個詞語之間的相似度:將兩個詞語的語義表達式中的義原抽取出來,計算對應義原類型的相似度。如果某一義原類型的對應項為空,則將任何義原 (或具體詞)與空值的相似度定義為一個比較小的常數;如果某一義原類型包含多個義原,則將各個義原的相似度加權平均作為該類型義原的相似度[7]。
第一基本義原即主要特征義原,兩個詞語的這一部分的相似度采用式(1)計算:

[7]中提到的第一基本義原直接用path的倒數計算,不夠逼近相關度的實際曲線。本文的思想來源于BP神經網絡的S型函數,該函數所劃分的區域是一個非線性的超平面組成的區域,是比較柔和、光滑的任意界面,因而它的分類比線性劃分精確、合理,且容錯性較好,取值范圍在[0,1]之間,其圖像更加逼近相關度的實際曲線,故而將其作為第一基本義原的表達式。
其他義原即語義表達式中除第一基本義原以外的所有其他義原(或具體詞),其值是一個特征結構:sim2(p1,p2)[6]。
關系義原即對應于所有關系義原描述式,其值是一個特征結構,記為:sim3(p1,p2)。

表1 知網中的關系類型
關系符號義原即對應于關系符號描述式,其值是一個特征結構,記為:sim4(p1,p2)。
于是,兩個概念(義項)語義表達式的整體相似度為[6]:

其中 β1+β2+β3+β4=1,βi的值依次遞減, 反映了這 4 類義原對整體的相似度所起到的作用是依次遞減的。
詞語的相似度:sim(w1,w2)=maxC_sim(ci,cj)
(2)詞語的關聯度計算
知網的每類義原都用一個樹結構來存儲,形成上下文的層次結構,而每個義原和不在同一個義原樹中的義原彼此也可能存在關系,這樣就表現出義原之間的橫向聯系,也就是關聯關系,從而使整個義原體系形成一個網狀結構。
本文通過對HowNet層次網絡結構的分析,找到義原和解釋義原之間的重疊部分,從而獲取詞語關聯度的計算模型。
①義原之間的關聯度
義原p1和p2的關聯度可以表示為:


其中 qi、qj是常數,p1i表示 p1的第 i個解釋義原,p2j表示p2第 j個解釋義原,dis(p1i,p2)是分別求 p2與 p1的解釋義原的基本義原的相似度之和,dis(p1,p2j)是分別求p1與p2的解釋義原的基本義原的相似度之和,n和m分別是p1和p2解釋義原的個數。
②義原之間的相關度
義原的相關度由義原的相似度及其關聯度共同決定,表示為:

其中,s1與s2為動態分配權值,其和為1。
③義項(概念)之間的關聯度
每個詞語可能有幾個義項,而義項是通過義原來描述的,故而義項的關聯度要從義原的相關度上來計算,而詞語的關聯度則是從義項的關聯度上來計算。

式中,pi、pj分別是 c1、c2中的解釋義原。 其中 i≤size(c1),j≤size(c2)。
④詞語之間的關聯度
每個詞語可能有幾個義項,故而可以將詞語之間的關聯度表示為:

式中,ci,cj分別表示 w1的第 i個概念和 w2的第 j個概念。
(3)實例因素
實例因素模型即義項的實例單詞的集合,實例因素對相關度的影響[3]:

其中,pei為第i個義項的實例單詞集合的任意一個詞的義項,用pi的實例中詞的義項與pj計算相似度,取最大值。
(4)詞語的相關度計算
詞語的相關度就是將語義相似度與相關度結合起來,同時考慮實例因素,共同構成詞語的相關度:

式中 q1+q2+q3=1,若式(7)的第 3項值為 0,這時應把q3的值按比例分配給 q1、q2。
本實驗的數據來源于知網的數據文件,實驗中所設置的計算相似度的參數與參考文獻[3]和參考文獻[7]中是一致的,所以存在可比性。此外,其他一些參數是隨程序自動調整使得結果達到最佳效果。
關于第一義原的改進,通過與參考文獻[7]的實驗進行對比,結果如表2所示。

表2 詞語相似度實驗結果
從表 2可知,“中國”和“美國”在參考文獻[7]中的相似度特別高。主要是它用其距離的倒數作為其第一義原,會出現分類不明確的情況,本文采用的S型激活函數所劃分的區域,分類比線性劃分精確合理,所計算值也更合理。“男人”和“父親”的相似度為 1,“香蕉”和“蘋果”也為1,顯然太過粗糙,這種劃分分類的方法確實存在著許多缺陷,且算出的值在客觀事實之外,本文通過修改第一義原的定義和計算,所得出的相似度分別為0.408 88和0.525 797,相比而言更合理。
上述實驗都是同種詞性的相似度,而相似只是相關的一個方面,故而進行下面實驗,進一步量化同種詞性和不同詞性之間的相關度,通過對比參考文獻[3]的結果進行說明。結果如表3所示。

表3 詞語相關度計算的實驗結果
由表3可以看出,用參考文獻[7]所述方法算出的相似度比較粗糙,例如面包和報紙的相似度比面包和蘋果的相似度還要高,這顯然不太合理,在義原樹中,僅僅考慮語義距離,確實“面包”和“報紙”的距離更近,分析發現,這是因為沒有考慮義原關聯度原因導致的,而本文計算出來的結果對比參考文獻[7]和參考文獻[3],結果更合理些。
在參考文獻[3]的結果中,“面包”和“巧克力”的相關度為1,這顯然與事實不符,通常認為相關度為1是完全相關,趨于同一個事物,雖然這兩個詞語同屬于“食品”范疇,關聯度方面確實很大,可是相似度方面卻相差甚遠,因此其相關度值不可能為1。此外,對事物的看法傾向于一個動賓方式,“削”和“皮”與“削”和“刀”,后者的搭配中表明用“刀”進行“削”,但是也存在用別的東西來“削”,而“削皮”這個搭配在人的直觀認知中應該更加相關,故而“削”和“皮”的相關度應該更甚于“削”和“刀”,在本文方法中前者為0.096 533,后者為0.058 880,也符合習慣使用上對相關度的主觀判斷。另外經分析可以看出,本文方法計算出來的數值都會偏小一些,且不會出現極端值問題,比較平穩,從整體上改進了參考文獻[3]中的實驗結果。
實驗所存在的不足是結果對比不夠明顯,只是改進了偏差比較大的結果,其原因有兩方面,一是對于相關度的度量確實是一個比較主觀的做法,且目前沒有基于統計的相關度的判斷標準,因此很難從微觀上細小地區分方法的優劣;其次,知網本身有待進一步完善和補充外,通過義原的相似度(相對稀疏的層次結構)來反映大量詞語之間的相似度 (相對密集)的方法本身是否存在一定的上限還需要進一步深入研究,且許多詞語的編撰的定義項存在著一些不完整的方面。
本實驗通過自適應的參數來進行調整,沒有固定權值,考慮到的是動詞間、名詞間以及名詞之間和動詞間,其所側重的因素不同,如名詞之間的相關度計算,相似度占的比重更大,而在動詞和名詞間,相似度比重應該較小,關聯度應占更大的比重,這樣才更加合理,因此,自動調整好各參數,偏向各自比較側重的因素,以便獲得更好的效果。
詞語的語義相關度研究在國內并不多,本文以知網為知識庫,在參考文獻[3]的基礎上改進算法模型,以此提出的相關度模型所得出的結果比較符合人類主觀上對相關度的認識。
今后的工作主要是將此詞語相關度模型應用到數據空間中數據源內容關聯性的發現機制中去,提出一個基于語義模式匹配的相關性匹配策略,以本文中的詞語相關度模型為依托,從而發現數據空間內部的各種數據源的聯系性。
參考文獻
[1]李玉坤,孟小峰,張相於.數據空間技術研究[J].軟件學報,2008,19(8):2018-2031.
[2]Hua Yu,Jiang Hong,Zhu Yifeng,et al.Smart Store:a new metadata organization paradigm with metadata semanticawareness for next-generation file systems[C].University of Nebraska-Liclon,Computer Science and Engineering,2008.
[3]許云,樊孝忠,張鋒.基于知網的語義相關度計算[J].北京理工大學學報,2005,25(5):411-414.
[4]王紅玲,呂強,徐瑞.一種基于知網的中文語義相關度計算模型[C].蘇州:第三屆全國信息檢索與內容安全學術會議,2007.
[5]李峰,李芳.中文詞語語義相似度計算—基于知網2000[J].中文信息學報,2007,21(3):101-107.
[6]李素建.基于語義計算的語句相關度研究[J].計算機工程與應用,2002,38(7):75-76.
[7]劉群,李素健.基于《知網》的詞匯語義相似度計算[C].臺北:第三屆漢語詞匯語義學研討會,2002.