鄭文良,關世杰,尹安琪,劉旭東
(1.沈陽理工大學 a.發(fā)展規(guī)劃處,b.信息科學與工程學院,沈陽 110159;2.營口職業(yè)技術學院 機電工程學院,遼寧 營口 115002)
隨著大數據時代的到來,信息數據優(yōu)勢已經滲透到政府、企業(yè)以及高校等各個行業(yè),數據的及時性與準確性已成為提升本行業(yè)的利器,數據分析在制定決策的過程中作用日益顯著。如何在海量檢索數據中提高語義相關性,已成為一個重要課題。本研究在基于P2P技術的分布式搜索引擎架構基礎上[1],在應用層Search Pocket模塊引入了基于WordNet語義關系的因素空間展開與收攏算法,可大幅提高檢索的準確性。
基于P2P技術的分布式搜索引擎系統(tǒng)主要由智能代理服務器(Intelligent Agent Server)和檢索系統(tǒng)Search Pocket組成。智能代理服務器可為檢索用戶提供信息注冊,Search Pocket為檢索系統(tǒng)的核心部分,包括應用層、控制層和數據層。其中,應用層為用戶上傳檢索信息的部分;控制層采用分級B-tree結構,將檢索的信息由多維空間上的相似度度量問題轉化成在一維度量空間上的間隔問題;數據層則對關鍵節(jié)點進行取舍[1]。
當對一個本體進行分析時,可以從與其相關的因素進行考察,即本體o與因素f相關,且本體與因素之間的映射關系用f(o)表示。與因素相關的概念如下。
概念1子因素:若因素g是因素f的真子集,記作f>g,如果X(g)是X(f)的真子集空間,即存在著非空的集合Y,使X(f)=X(g)*Y,稱g是f的子因素,記作f≥g。
Ф表示一種空狀態(tài),則對于任一狀態(tài)x,都有(x,Ф)=(x)。
概念2因素的析?。喝粢蛩豩是因素f和因素g的析取因素,記作h=f∧g,如果X(h)是X(f)與X(g)的公共子空間,Y是X(f)與X(g)的公共子空間,則Y一定是X(h)的子空間。如果X(g)是{x(ft)}(t∈T)的最大公共子空間,則因素g是{ft}(t∈T)因素族的析取,記作g=∧t∈Tft。
概念3因素的合取:若因素h是因素f和因素g的合取,記作h=f∨g,如果X(f)和X(g)是X(h)的子空間,并且空間中的最小者。如果{x(ft)}(t∈T)是X(g)的子空間,并且是空間中最小的因素,則因素g稱為因素族{ft}(t∈T)的合取,記作g=∨t∈Tft。
概念4因素的減法:若因素f與g之差是因素h,記作h=f-g,如果(f∧g)∨h=f。若f∨g存在,則
X(f∨g)=X(f-g)×X(f∧g)×X(g-f)
(1)
在進行相似度分析時,可通過類相似度進行構造語義空間,空間向量中的每個元素都表示類與類之間的相似度。在機器學習的過程中,本研究引入了WordNet為本體類構造層次化相似度。在WordNet中一個基本的語義概念包含多個同義詞,構成同義詞集合,這些集合通過語義關系聯(lián)系在一起,形成一個個詞匯網絡。名詞網絡中的層次主要體現(xiàn)的是蘊含關系,如上位關系與下位關系、整體與部分關系、繼承關系等。詞與詞之間的距離越近,則兩者之間的語義關系就越相似。在樣本學習中,對已知類別和未知類別可以抽取其在WordNet中的最小公共上位子集,使用路徑長度計算每個物體與上位子集中所有類的相似度,這些相似度所組成的向量是層次化語義嵌入向量[2]??梢酝ㄟ^以下三個公式進行相似度的計算。
simjc=2×IC(mscs(c1,c2))-IC(c1)-IC(c2)
(2)
(3)
simpath=minp∈pth(c1,c2)len(p)
(4)
式中:c1、c2表示兩個不同的類別標簽;mscs表示c1、c2的公共父節(jié)點;IC(c)表示信息量,常用的IC值計算模型為IC=-logp(c),p(c)表示c出現(xiàn)的概率;pth(c1,c2)表示c1和c2之間的路徑集合;len表示路徑長度。
因素空間的展開與收攏是WordNet上下位關系的一種,不同的語義進行因素空間的展開后得到的下位詞不同。本研究根據WordNet給出的例子(如圖1所示),對因素空間的展開與收攏進行闡述[3-4]。
圖1 WordNet示意圖
因素空間的展開是因素合取得一種算法,根據因素的上下位關系將因素空間進行展開,具體定義如下:
概念5因素空間的展開:現(xiàn)有因素g、因素f、因素s分析樣本o,樣本與因素之間的映射關系用A(o)表示,因素合取可表示為A(o)→g+f+s。分析樣本時,增加分析視角的維度,將多個因素相結合,使綜合程度加大,考慮的范圍更廣,使問題思考的更加全面,多個因素在決策過程中共同發(fā)揮作用。
如:property展開后為magnitude;magnitude展開后有size、volume、dimension、degree、extent;將size展開后得到circumference、largeness、smallness、distance;將dimension 展開后得到height、length、width;將length展開后得到longness、shortness。將因素根據上下位進行展開后,因素更加具體,上位因素包含下位因素。本研究采用自上而下樹狀結構的層次聚類算法,如圖2所示。
圖2 層次聚類算法的結構
給定的數據集樣本X=(x1,x2,…,xm),在層次聚類時首先對數據進行初始化處理,數據集中每個數據樣本在初始時是單獨的一個簇;接著計算出兩個樣本簇之間的距離,將距離相近的兩個簇進行合并后得到一個新的簇;再計算新的簇之間的距離,直到將所有的簇歸為同一類。層次聚類與其他聚類算法相比不需要預先設置聚類的類別數量。層次聚類的終止取決于所設置的類別之間的閾值,不同的閾值可以得出不同的聚類結果。通過聚類算法對因素空間中的因素和屬性進行聚類[5]。
因素空間的收攏是因素減約的一種算法,具體定義如下。
概念6 因素空間的收攏:對于給定的因素fj及其所取的轉態(tài)su,記,
(5)
如果[su]中結果因素g具有相同的狀態(tài)活等級tu,使
[tu]={ui|g(ui)=tu}?[su]
(6)
則稱[su]是因素fj的一個決定類。所有決定類的合集稱為該因素fj對結果的決定域。
因素fj的決定域所占行數h與表的行數(即全體對象個數)m之比稱為其對結果的決定度,記作
d(fj)=h/m
(7)
因素空間的收攏是把視角的維度減少,進行語義降維,提取出關鍵因素,確保對結果有重要影響的因素進入經驗推理系統(tǒng),影響不大的因素在決策的過程中自動地被舍棄。在因素約減過程中確保重要因素不被約減掉的同時降低了算法的時間的復雜度,推進了算法的進程[3]。其過程是因素空間展開過程的逆過程,具體執(zhí)行過程如:將highness和lowness進行收攏后得到height,將circumference、largeness、smallness、distance進行收攏后得到size。將下位因素進行收攏后得到上位因素,因素更加具有概括性。
基于WordNet的相似度計算是基于上位詞層次結構中相互連接的概念之間的最短路徑在0~1范圍的打分。無路徑返回0,同義詞與自身比較返回1。
利用WordNet提供的接口函數,從WordNet的同義詞集(synet)、屬類詞(class word)和意義解釋(sense explanation)三個集合中抽取候選同義詞,然后進行特征提取,計算出feature(SW)。
feature(SW)={{Ws},{Wc},{We}}
(8)
式中:{Ws}為WordNet中概念W的所有的同義詞;{Wc}為WordNet中概念W的所有的相關的屬類;{We}為WordNet中概念W的解釋中所有的實詞。
根據上面對詞匯語義特征的描述,兩個概念之間的相似度可以通過計算其在三個不同意義特征空間中的距離來得到。距離越小,相似度越大。根據意義相似度就可以容易的計算出WordNet中兩個詞語之間的相似度[3]。
意義相似度:
(9)
式中:No(SW)為W意義的順序,如,the first sense=1,the second sense=2等;IDF(wi)為從WordNet中訓練得到的構建WordNet時出現(xiàn)某個wi的文檔的個數;Ks為同義詞特征的權重;Kc為類屬特征的權重;Ke為意義解釋的權重;QU為出現(xiàn)wi的指標集;QV為出現(xiàn)wj的指標集。
詞語相似度的計算公式為
(10)
式中:|SW1|是W1的詞義的個數;|SW2|是W2的詞義的個數。
本研究采用了NLTK(Natural Language Toolkit,自然語言工具包),即Python的第三方庫,可以很方便的完成很多自然語言處理的任務,包括分詞、詞性標注、命名實體識別及句法分析。語料庫調用NLTK語料庫??梢圆榭匆粋€單詞的同義詞集(synet),描述為一個三元組(單詞.詞性.序號)。
將因素空間展開與收攏算法嵌入到Search Pocket模塊中,在模擬參數(表1)的網絡中進行測試[1],隨機抓取400篇網頁,得到相關度計算準確率為90%(表2)。
表1 模擬參數
表2 測試結果
基于P2P技術的分布式搜索引擎架構基礎,在應用層Search Pocket模塊引入了基于WordNet語義關系的因素空間展開與收攏算法,大幅提高檢索的準確性。進一步深入語義相關性及利用因素合取與約減提高零樣本圖片檢索的準確性,是下一階段研究方向和重點。