摘 要: Deep Web蘊藏著海量信息,現(xiàn)有的搜索引擎很難挖掘到其中的內容。如何充分地獲取Deep Web中有價值的信息成為一個難題。提出了基于語義相似度計算的Deep Web數(shù)據查詢方法,該方法通過語義相似度計算作為中間件,計算出關鍵詞和數(shù)據庫屬性詞典對應列的相似度,從而將關鍵詞的搜索范圍限制在一個(或多個)相關領域,最后生成相應的SQL查詢語句。試驗證明,該方法能夠有效地提高基于Deep Web的數(shù)據查詢效率。
關鍵詞: Deep Web;領域;SQL;語義相似;屬性詞典
在當今信息時代,萬維網成了主要的資源。隨著萬維網的飛速發(fā)展,使得其在全球網絡中所占的比重越來越大,其內部涵蓋的信息也越來越豐富。然而對于其內部所包含的Deep Web,卻沒有被很好地開發(fā)和利用。根據Bright Planet對Deep Web統(tǒng)計而發(fā)布的白皮書[1],截止到2011年,共有600萬個中文萬維網數(shù)據庫,并且每天都以指數(shù)級的速度增長。傳統(tǒng)意義上的萬維網數(shù)據搜索只能通過查詢接口(即HTML表單)被用戶訪問,用戶得到的反饋內容也僅僅局限于查詢接口與后臺數(shù)據庫交互之后生成的查詢頁面內容。
基于當前中文Deep Web數(shù)據庫的研究現(xiàn)狀,本文提出了基于語義相似度計算的中文Deep Web數(shù)據查詢方法。該方法旨在通過基于計算關鍵詞和屬性詞典之間的語義相似度,將用戶查詢的關鍵詞映射到具體的領域,最大程度地縮減數(shù)據庫的查詢范圍,最終提高查詢的效率。對于Deep Web數(shù)據庫,本文采用數(shù)據集成技術[2],將同一領域的數(shù)據庫表結構采用標簽的形式,形成對應的屬性詞典,從而實現(xiàn)前后臺的無縫連接。
1 理論基礎
1.1 知網體系
知網(HowNet)是一個以漢語和英語的詞語所代表的概念為描述對象,以揭示概念與概念之間以及概念所具有的屬性之間的關系為基本內容的常識知識庫。其體系架構如圖1所示。知網體系包含豐富的語義知識和相關本體知識。在知網中,所有詞匯的概念都是基于以下兩個主要概念:
(1)概念。它是對詞匯語義的一種描述,每一個詞可以表達為幾個義項。義項是用一種知識表示語言來描述的,這種知識表示語言所用的詞匯叫做概念。
(2)義原。它是用于描述一個概念的最小意義單位,從所有詞匯中提煉出的可以用來描述其他詞匯的不可再分的基本元素。
在知網體系中,每個詞匯都由一個四元組W_C=詞語;E_C=詞語例子;G_C=詞語詞性;DEF=概念定義)表示而成,并且在知網體系中,它并不像同義詞詞林那樣將所有的概念歸結到一個樹狀的概念層次體系中,而是每一個概念都是由義原采用四元組的形式加以表示。圖2顯示的是關鍵詞“北京”基于知網的語義表示形式。
1.2 屬性詞典
在Deep Web數(shù)據庫中,本文引入了屬性詞典的概念[3]。事先在數(shù)據庫中創(chuàng)建一個屬性詞典(稱之為AttrDict表),該表的作用在于保存數(shù)據庫中每一張表結構的字段和對于該字段的詳細解釋。該屬性詞典主要用于計算關鍵詞和后臺數(shù)據庫屬性列之間的語義相似度。
該AttrDict表的表結構如下:
AttrDict(columName,tableName,description)
其中,字段columName為數(shù)據列名,字段tableName為對應的表名,字段description為屬性對應的描述。
在本文的數(shù)據源中,假定其中的兩張表如下:
R1(a1,a2,a3…an)
R2(b1,b2,b3…bn)
則對應的AttrDict表對應的字段如表1所示。
2 語義相似度計算方法研究
本文在計算關鍵詞[4-5]的語義相似度時,采用基于詞語相似度的計算方法,其流程如圖3所示。計算出當前關鍵詞和屬性詞典每個屬性列的相關聯(lián)程度,設定一個起初的閾值,當相似度計算所得結果大于該閾值時,認為當前屬性列對應的領域即是當前關鍵詞對應的領域R,這樣也就確定了關鍵詞K和屬性列之間的對應關系,從而確定對應的表結構的字段集合C,最終根據生成的一個完成的SQL查詢語句,將查詢的結構反饋給用戶。
基于HowNet的詞語相似度[6]充分利用了HowNet對每個概念描述時的語義信息,但沒有考慮到在信息檢索過程中關鍵詞的相關詞的語義相似度,這樣可能減少實際上關鍵詞的相關詞的檢索范圍?;谝陨嫌^點,本文提出了一種改進的詞語相似度計算方法[7],主要工作如下:
(1)首先利用詞林(哈工大版)[8]獲得當前關鍵詞的相關詞集合;
(2)基于HowNet獲得相關詞集合的每個相關詞的概念定義(DEF);
(3)利用知網計算相關概念詞集合詞語和屬性詞典的概念相似度。
2.1 預處理關鍵詞
定義1 利用詞林(哈工大版)尋找相關詞,形成相關詞集合,用下面一個4元組構成:
KEYWORD_REALATE={ID,KEYWORD,N,RElATE_WORD}
定義2 關鍵詞概念定義(DEF)用下面一個5元組構成:
KEYWORD_REALATE_ARRAY={ID,KEYWORD,
RELATE_WORD,N,DEF_VALUE}
其中,ID表示單標識符,由系統(tǒng)自動賦予并唯一表示;KEYWORD表示當前檢索系統(tǒng)提交的關鍵詞;RELATE_WORD表示通過詞林獲得關鍵詞的相關詞;N為正整數(shù),表示提交表單中概念定義屬性的個數(shù);DEF_VALUE為概念定義屬性名/值對集合,用來表示當前關鍵詞的概念定義的詳細信息,其個數(shù)為N。
2.3 基于相似度計算的匹配算法
定義3 對于給定的閾值E,如果Sim(A,B)≥E(Sim為計算相似度的方法,詳見2.2節(jié)),則認為關鍵詞相關詞A和數(shù)據庫列屬性概念描述B相匹配,Match(A,B)=1;否則Math(A,B)=0,兩者不匹配。
為了規(guī)則化處理,假設A和B都存放在單鏈表中,A的表頭指針為HeadA,B的表頭指針為HeadB,下面是關鍵詞相關詞A和數(shù)據庫列屬性概念描述B的匹配算法過程:
/*Threshold表示設定的閾值;r、s分別表示A、B兩個單鏈表中要比較的節(jié)點;Delete(node)表示將當前節(jié)點從鏈表中刪除*/
p = HeadA;
q = HeadB ;
while(p->next!=null)(
r = p->next ;
while(q->next!=null){
s = q->next ;
if(Sim(r,s)<Threshold){
Delete(s);
}
}
q = q->next;
}
p = p->next ;
}
刪除B中不滿足條件的節(jié)點之后,剩下的都是和關鍵詞滿足一定相似度的列,基于此,下面給出了集成方法。
function getRelatedColumn(KEYWORD_RELATE,
ColumnValue);
Var i : integer
begin
//將與關鍵詞語義相關的列,放入到C鏈表中
fori:=0 to B -1 do C.add(Bi);
end
3 實驗分析與說明
Deep Web蘊含了海量的數(shù)據,受客觀條件限制不可能在整個深度萬維網上進行實驗,并且中文實驗數(shù)據樣本不多,為了簡化起見,選擇了上海師范大學某學院信息管理系統(tǒng)2012~2013年的數(shù)據進行測試,整個系統(tǒng)共包含20張表結構,數(shù)據量500 MB。實現(xiàn)的步驟主要分為以下3個部分:
(1)基于哈工大《同義詞詞林(擴展版)》計算關鍵詞的相關詞,獲取過程如圖4所示。
輸入關鍵詞"北京"進行查詢,獲取"北京"的代碼為"Di03A01=",根據參考文獻[8]中相似度計算公式,得到與當前關鍵詞處于同一層的關鍵詞分別是:"Di03A01=:北京","Di03A02=:都城","Di03A03@:陪都"。在同義詞詞林的定義中,“=”代表“相等”、“同義”,“@”代表當前該詞語在同義詞詞典中既沒有同義詞也沒有相關詞,故本實驗中,省去"Di03A03@:陪都"這一個基于同義詞詞林獲得相鄰的近義詞。
(2)基于HowNet獲得關鍵詞集合的概念定義(DEF)如表2所示,其中根據集合的原理,取其共同擁有的部分,則關鍵詞集對應的DEF={地方,國都}。
(3)基于本文提出的改進的相似度的計算方法,計算出關鍵詞DEF集和屬性詞典對應屬性列之間的語義相似度。
①創(chuàng)建后臺數(shù)據庫屬性詞典(AttrDict)
選取上海師范大學某學院信息管理系統(tǒng)后臺表2個月的數(shù)據進行試驗。根據要求,屬性詞典主要包含3個部分:表名、字段名和對應的描述文字,如表3所示。為了簡便起見,選取其中的一張表member作為展示部分。
②相似度計算方法
由DEF={地方,國都},根據HowNet逐個計算DEF值和當前AttrDict中每條記錄的相似度,如圖5、圖6所示。
根據事先設定的閾值E=0.5,當兩個詞語之間的相似度<E時,不將其考慮在查詢的訪問之內,經過處理獲得如表4所示的結果。
③限定對應的查詢領域
由表4中相似度計算所得結果,證實“北京”這一詞語可能與后臺數(shù)據庫對應的“備注”、“地址”的相關度很高,已無需查詢所有的表結構了,只需要查詢“備注”和“地址”列對應的數(shù)據,根據這一結果,動態(tài)生成相應的SQL查詢語句,并將查詢的結果返回給前臺頁面。
本文采用基于語義相似度的查詢方法進行Deep Web數(shù)據庫源的查詢,較早地探討了中文深網技術,宏觀上提出了整體解決方案,并且通過實驗過程驗證了當前方法的可用性。本文是對Deep Web 數(shù)據庫相似度的一次初探,主要研究通過計算查詢關鍵詞和屬性詞典概念之間的相似度,從而降低全表掃描帶來的系統(tǒng)資源的損耗,提高數(shù)據庫整體查詢效率。但是本文方法依然存在一些問題,下一步不僅應該深入研究相似度的改進算法,還要研究對于系統(tǒng)未登錄詞的處理,并將致力于做出全自動的屬性匹配原型系統(tǒng)。另外,針對中文深網一整套解決方案實現(xiàn)原型系統(tǒng)也是未來工作的重點。
參考文獻
[1] NOOR U,RASHID Z,RAUL A.A survey of automatic Deep Web classification techniques[J].International Journal of Computer Application,2011,19(6):43-50.
[2] 劉偉,孟小峰,孟衛(wèi)一.Deep Web數(shù)據集成研究綜述[J].計算機學報,2007,30(9):1475-1489.
[3] 馮磊,陳軍華.數(shù)據庫全文搜索方案的研究[J].上海師范大學學報(自然科學版),2010,39(2):153-155.
[4] 丁傳羽,陳軍華,夏海峰.基于關鍵詞的深度萬維網查詢[J].計算機與數(shù)字工程,2013,41(4):616-618.
[5] 范舉,周立柱.基于關鍵詞的深度萬維網數(shù)據庫選擇[J].計算機學報,2011,34(10):1797-1804.
[6] 劉群,李素建.基于知網的詞匯語義相似度的計算[C].第三屆漢語詞匯語義學研討會,臺北,2002:59-76.
[7] 王小林,王義.改進的基于知網的詞語相似度算法[J].吉林大學學報(信息科學版),2011,31(11):3076-3079.
[8] 田久樂,趙蔚.基于同義詞詞林的詞語相似度計算方法[J].計算機應用,2010,28(6):602-605.