一種xml關(guān)鍵字查詢方法
【專利摘要】本發(fā)明公開(kāi)了一種XML關(guān)鍵字查詢方法,屬于信息檢索領(lǐng)域。方法公開(kāi)了查詢語(yǔ)義BLCEA及其求解算法和對(duì)該語(yǔ)義返回結(jié)果排序的方法,BLCEA查詢語(yǔ)義基于XML文檔中的節(jié)點(diǎn)分類,將包含所有查詢關(guān)鍵字的實(shí)體子孫去掉之后,仍然滿足查詢條件的實(shí)體節(jié)點(diǎn)定義為一個(gè)有意義的BLCEA語(yǔ)義實(shí)體,保證了查全率以及查詢結(jié)果的語(yǔ)義完整性。對(duì)返回結(jié)果排序的方法結(jié)合關(guān)鍵字在結(jié)果節(jié)點(diǎn)為根的子樹(shù)中的匹配度和緊密度這兩個(gè)因素設(shè)計(jì),降低了XML關(guān)鍵字查詢的時(shí)間復(fù)雜度,保證在關(guān)鍵字模糊性存在時(shí)的查準(zhǔn)率。
【專利說(shuō)明】一種XML關(guān)鍵字查詢方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及XML關(guān)鍵字查詢方法,屬于信息檢索領(lǐng)域。
【背景技術(shù)】
[0002]由于具備可擴(kuò)展性、靈活性和自描述性,XML逐漸成為互聯(lián)網(wǎng)上數(shù)據(jù)定義,存儲(chǔ)以及交換的標(biāo)準(zhǔn),因此如何對(duì)XML數(shù)據(jù)進(jìn)行有效的存儲(chǔ)管理和檢索成為研究熱點(diǎn)。現(xiàn)有的XML查詢方法主要分為結(jié)構(gòu)化查詢和關(guān)鍵字查詢兩種,前者需要用戶了解結(jié)構(gòu)化查詢語(yǔ)言的語(yǔ)法機(jī)制以及XML文檔的模式信息,對(duì)普通用戶并不適用,而后者只需要用戶輸入簡(jiǎn)單的查詢關(guān)鍵字即可對(duì)XML文檔進(jìn)行檢索,成為XML檢索的主要手段。
[0003]目前關(guān)鍵字查詢方法主要分為兩類:不支持結(jié)果排序以及支持結(jié)果排序。其中不支持結(jié)果排序的方法主要以LCA(Lowest Common Ancestor)語(yǔ)義為基礎(chǔ)。LCA語(yǔ)義是返回所有關(guān)鍵字的最低公共祖先集合。SLCA(Smallest Lowest Common Ancestor)語(yǔ)義是對(duì)LCA語(yǔ)義進(jìn)行的改進(jìn),認(rèn)為結(jié)果節(jié)點(diǎn)為根的子樹(shù)中,關(guān)鍵字之間越緊密,對(duì)用戶越重要,故該語(yǔ)義去掉了 LCA集合中是其他節(jié)點(diǎn)祖先的結(jié)果節(jié)點(diǎn)。此外,對(duì)LCA語(yǔ)義改進(jìn)的語(yǔ)義還有MLCA、ELCA以及VLCA等。
[0004]支持結(jié)果排序的關(guān)鍵字查詢方法主要是基于Google的PageRank以及信息檢索中的TF/IDF這兩個(gè)思想進(jìn)行擴(kuò)展的,主要有XRANK和XReal等。XRANK是Connel大學(xué)的研究者提出的基于LCA語(yǔ)義的XML搜索引擎,指出XML關(guān)鍵字檢索與HTML關(guān)鍵字檢索的區(qū)別,借鑒了 PageRank算法的思想提出了用于計(jì)算元素重要性的ElemRank算法,該算法計(jì)算元素ElemRank時(shí),不僅考慮到了元素間的引用,還考慮了元素的父母以及孩子對(duì)該元素重要性的影響,即元素包含邊的正向傳播、反向傳播以及引用邊的影響。XReal把信息檢索中的TF/IDF(詞頻/逆文頻)的概念引入到XML數(shù)據(jù)庫(kù)檢索中,主張利用XML文檔中節(jié)點(diǎn)的TF/IDF相似度來(lái)對(duì)結(jié)果節(jié)點(diǎn)進(jìn)行排序。作者將搜索用戶意圖轉(zhuǎn)換為尋找目標(biāo)節(jié)點(diǎn)類型T,找到目標(biāo)節(jié)點(diǎn)類型T后,對(duì)類型T的每個(gè)實(shí)例節(jié)點(diǎn)通過(guò)TF/IDF計(jì)算出與查詢的相關(guān)度,對(duì)那些相關(guān)度比較接近的節(jié)點(diǎn),通過(guò)計(jì)算引用邊對(duì)元素的影響,進(jìn)一步確定相關(guān)度。
[0005]這些語(yǔ)義大多都會(huì)存在返回結(jié)果語(yǔ)義不完整、返回很多無(wú)意義的結(jié)果、丟失有意義的結(jié)果或不支持結(jié)果排序等問(wèn)題,導(dǎo)致查詢質(zhì)量不高。
【發(fā)明內(nèi)容】
[0006]本發(fā)明針對(duì)現(xiàn)有不足,提出一種XML關(guān)鍵字查詢方法?;赬ML文檔中的節(jié)點(diǎn)分類,將包含所有查詢關(guān)鍵字的實(shí)體子孫去掉之后,仍然滿足查詢條件的實(shí)體節(jié)點(diǎn)定義為一個(gè)有意義的BLCEA (Beside Lowest Common Entity Ancestor)語(yǔ)義實(shí)體。該查詢語(yǔ)義使得用戶能夠得到語(yǔ)義完整的結(jié)果,同時(shí)在查準(zhǔn)率和查全率方面比已有的經(jīng)典查詢語(yǔ)義有明顯的優(yōu)勢(shì)。本發(fā)明設(shè)計(jì)了一種結(jié)果排序方法,對(duì)BLCEA節(jié)點(diǎn)集合進(jìn)行排序,保證在關(guān)鍵字模糊性存在時(shí)的檢索效率。
[0007]本發(fā)明為實(shí)現(xiàn)上述發(fā)明目的采用如下技術(shù)方案:
[0008]一種XML關(guān)鍵字查詢方法,包括如下步驟:
[0009]步驟I,確定XML文檔關(guān)鍵字序列的BLCEA節(jié)點(diǎn)集合,
[0010]所述BLCEA節(jié)點(diǎn)為實(shí)體節(jié)點(diǎn),去掉BLCEA節(jié)點(diǎn)的子孫中包含所有查詢關(guān)鍵字的實(shí)體節(jié)點(diǎn)之后,剩余的子孫中仍然包含所有查詢關(guān)鍵字,
[0011]實(shí)體的定義是通過(guò)對(duì)XML文檔中的節(jié)點(diǎn)進(jìn)行分類得到,XML文檔中的節(jié)點(diǎn)分類及定義如下:
[0012]值節(jié)點(diǎn):在XML文檔中,是葉子節(jié)點(diǎn)的節(jié)點(diǎn)。
[0013]屬性節(jié)點(diǎn):在XML文檔中,只有一個(gè)值節(jié)點(diǎn)作為孩子節(jié)點(diǎn)的那些節(jié)點(diǎn)。
[0014]實(shí)體節(jié)點(diǎn):若XML文檔的模式信息可以獲得,即DTD或XML Schema存在,那么實(shí)體就是DTD中帶*號(hào)或者+號(hào)并且不是屬性結(jié)點(diǎn)的結(jié)點(diǎn);否則分析XML文檔,若節(jié)點(diǎn)與其父節(jié)點(diǎn)存在一對(duì)多關(guān)系,則該節(jié)點(diǎn)為實(shí)體節(jié)點(diǎn)。
[0015]連接節(jié)點(diǎn):在XML文檔中,若節(jié)點(diǎn)不是值節(jié)點(diǎn)、屬性節(jié)點(diǎn)或?qū)嶓w節(jié)點(diǎn),那么它就是連接節(jié)點(diǎn),連接節(jié)點(diǎn)的孩子是實(shí)體節(jié)點(diǎn)、屬性節(jié)點(diǎn)或者其他的連接節(jié)點(diǎn):
[0016]步驟1-1,初始化BLCEA節(jié)點(diǎn)集合為空;
[0017]步驟1-2,獲得所有關(guān)鍵字匹配節(jié)點(diǎn)的有序LDewey編碼集合,所述LDewey編碼包括:關(guān)鍵字匹配節(jié)點(diǎn)所處層次信息level、關(guān)鍵字匹配節(jié)點(diǎn)的祖先節(jié)點(diǎn)在各自所處層次中的位置信息ancestor、關(guān)鍵字匹配節(jié)點(diǎn)在所處層次中的位置信息locat1n, LDewey編碼結(jié)構(gòu)如下:
[0018]
level ancestor locat1n
[0019]步驟1-3,由出現(xiàn)關(guān)鍵字匹配節(jié)點(diǎn)的最高層次開(kāi)始逐層尋找BLCEA節(jié)點(diǎn):對(duì)每一層中的各節(jié)點(diǎn),當(dāng)有實(shí)體節(jié)點(diǎn)是該層中所有關(guān)鍵字匹配節(jié)點(diǎn)的公共祖先時(shí),將該實(shí)體節(jié)點(diǎn)加入BLCEA節(jié)點(diǎn)集合中,并在LDewey編碼集合中刪去以該實(shí)體節(jié)點(diǎn)為祖先的關(guān)鍵字匹配節(jié)點(diǎn)編碼;
[0020]步驟2,利用結(jié)果排序算法對(duì)以BLCEA節(jié)點(diǎn)集合各節(jié)點(diǎn)為根的子樹(shù)進(jìn)行排序,返回用戶最理想的結(jié)果:
[0021]步驟2-1,在以每個(gè)BLCEA節(jié)點(diǎn)為根的子樹(shù)中計(jì)算關(guān)鍵字匹配度,按匹配度大小對(duì)BLCEA節(jié)點(diǎn)集合中的節(jié)點(diǎn)排序。并把以BLCEA節(jié)點(diǎn)集合中所有節(jié)點(diǎn)為根的子樹(shù)都返回給用戶,在關(guān)鍵字匹配度相等時(shí)進(jìn)入步驟2-2 ;
[0022]步驟2-2,求出關(guān)鍵字在匹配度相等的BLCEA節(jié)點(diǎn)為根的子樹(shù)中的最短距離,按照最短距離遞增的順序排列各BLCEA節(jié)點(diǎn)。
[0023]作為所述XML關(guān)鍵字查詢方法的進(jìn)一步優(yōu)化方案,步驟2-1中關(guān)鍵字匹配度的計(jì)算方法如下:前一個(gè)關(guān)鍵字的文本值h等于后一個(gè)關(guān)鍵字文本值k2時(shí),在待排序的子樹(shù)中滿足前一個(gè)關(guān)鍵字的h的文本值為k2,記匹配度為1,否則,記匹配度為O。
[0024]作為所述XML關(guān)鍵字查詢方法的進(jìn)一步優(yōu)化方案,對(duì)于V為根的子樹(shù),子樹(shù)中含有的關(guān)鍵字序列Q = (k1; k2,..., kn), minDistance為v, k1; k2,..., kn之間的最短距離,minDistance越小表示關(guān)鍵字序列Q在v為根的子樹(shù)中越緊密,步驟2_2中的最短距離計(jì)算如下:
[0025]前一個(gè)關(guān)鍵字匹配節(jié)點(diǎn)Ii1、后一個(gè)關(guān)鍵字匹配節(jié)點(diǎn)k2在同一條路徑上,則最短距離:
[0026]dist (k1; k2) = LDewey (k^.1evel-LDewey (k2).level | ,
[0027]前一個(gè)關(guān)鍵字匹配節(jié)點(diǎn)Ic1、后一個(gè)關(guān)鍵字匹配節(jié)點(diǎn)k2不在同一條路徑上,則最短距離:
[0028]dist (k1; k2) = LDewey(Ii1).level+LDewey (k2).level-2LDewey (v).level
[0029]其中,LDewey (kl).level為前一關(guān)鍵字匹配節(jié)點(diǎn)Ii1所處層次信息,LDewey (k2).level為后一關(guān)鍵字匹配節(jié)點(diǎn)1^2所處層次信息,LDewey (v).level為子樹(shù)根節(jié)點(diǎn)所處層次信息。
[0030]本發(fā)明采用上述技術(shù)方案,具有以下有益效果:
[0031](I)通過(guò)對(duì)XML文檔中的節(jié)點(diǎn)分類,定義語(yǔ)義實(shí)體,限制查詢返回結(jié)果為具有豐富語(yǔ)義信息的實(shí)體節(jié)點(diǎn),保證了查詢結(jié)果的語(yǔ)義完整性;
[0032](2)提出一種新的關(guān)鍵字查詢語(yǔ)義 BLCEA (Beside Lowest Common EntityAncestor),將包含所有查詢關(guān)鍵字的實(shí)體子孫為根的子樹(shù)去掉之后,剩余的子孫仍然滿足查詢條件的實(shí)體節(jié)點(diǎn)定義為一個(gè)有意義的BLCEA語(yǔ)義實(shí)體,保證查詢的查全率;
[0033](3)設(shè)計(jì)了一種可通過(guò)節(jié)點(diǎn)所在層次上的位置唯一確定一個(gè)節(jié)點(diǎn)的編碼方式,有效的減少了判斷節(jié)點(diǎn)之間關(guān)系所需的時(shí)間,基于該編碼設(shè)計(jì)BLCEA語(yǔ)義實(shí)現(xiàn)算法,降低了XML關(guān)鍵字查詢的時(shí)間復(fù)雜度;
[0034](4)綜合考慮關(guān)鍵字在結(jié)果節(jié)點(diǎn)為根的子樹(shù)中結(jié)合的緊密度以及匹配度,對(duì)檢索結(jié)果進(jìn)行排序,保證在關(guān)鍵字模糊性存在時(shí)的查準(zhǔn)率。
【專利附圖】
【附圖說(shuō)明】
[0035]圖1為所述方法中外顯子識(shí)別的流程圖。
[0036]圖2為XML文檔的LDewey編碼示例。
[0037]圖3為查詢關(guān)鍵字序列Q匹配節(jié)點(diǎn)的有序的LDewey編碼集合。
[0038]圖4 (a)、圖4(b)、圖4(c)、圖4(d)、圖4(e)分別為在第5、4、3、2、I層查找查詢關(guān)鍵字序列Q的BLCEA節(jié)點(diǎn)示意圖。
[0039]圖5 (a)、圖 5 (b)為 LCA、SLCA 以及 BLCEA 在 Reed 和 Sigmod Record 數(shù)據(jù)集上的查準(zhǔn)率對(duì)比圖。
[0040]圖6為L(zhǎng)CA、SLCA以及BLCEA在Reed和Sigmod Record數(shù)據(jù)集上的查全率對(duì)比圖。
[0041 ]圖 7 (a)、圖 7 (b)為 LCA、SLCA 以及 BLCEA 在 Reed 和 Sigmod Record 數(shù)據(jù)集上進(jìn)行高頻查詢的時(shí)間效率對(duì)比圖。
[0042]圖8 (a)、圖 8 (b)為 Close 和 Match_Close 排序方法在 Sigmod Record 數(shù)據(jù)集上的前10個(gè)和前20個(gè)結(jié)果中正確結(jié)果所占比例的對(duì)比圖。
【具體實(shí)施方式】
[0043]下面結(jié)合附圖對(duì)發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
[0044]本發(fā)明提出的XML關(guān)鍵字查詢方法如圖1所示分為以下步驟:
[0045]步驟I,根據(jù)BLCEA查詢語(yǔ)義找到查詢關(guān)鍵字序列Q = (k1; k2,...,kn)的BLCEA節(jié)點(diǎn)集合,η為自然數(shù):
[0046]步驟1-1,初始化BLCEA節(jié)點(diǎn)集合為空;
[0047]步驟1-2,獲得所有關(guān)鍵字的匹配節(jié)點(diǎn)的有序LDewey編碼集合L圖2中的XML文檔以及查詢關(guān)鍵字序列Q = {title, XML, 2013},獲取的關(guān)鍵字的匹配節(jié)點(diǎn)的有序的LDewey編碼集合',W如圖3所示;
[0048]步驟1-3,首先求出查詢關(guān)鍵字序列Q的BLCEA節(jié)點(diǎn)可能出現(xiàn)的最高層次,關(guān)鍵字title的倒排索引表中匹配節(jié)點(diǎn)出現(xiàn)的最高層次為5,關(guān)鍵字XML倒排索引表中匹配節(jié)點(diǎn)出現(xiàn)的最高層次為6,關(guān)鍵字2013倒排索引表中匹配節(jié)點(diǎn)出現(xiàn)的最高層次為6,取這三個(gè)值中的最小值為5,即BLCEA節(jié)點(diǎn)可能出現(xiàn)的最大層次為5,故從第五層開(kāi)始尋找BLCEA節(jié)點(diǎn),
[0049]首先判斷所有關(guān)鍵字的倒排索引中的所有匹配節(jié)點(diǎn)的LDewey編碼在第五層中的值,如圖3、圖4(a)所示:title倒排索引中的所有匹配節(jié)點(diǎn)的LDewey編碼在第五層中的值分別為0、2、4,XML為0、2,2013則為1,故沒(méi)有共同的數(shù)值,即第五層沒(méi)有BLCEA節(jié)點(diǎn),不作處理,
[0050]繼而觀察各關(guān)鍵字的倒排索引中的所有匹配節(jié)點(diǎn)的LDewey編碼在第四層中的值,如圖3、圖4(b)所示:title倒排索引中的所有匹配節(jié)點(diǎn)的LDewey編碼在第四層中的值分別為2、5、6,XML為2、5,2013為1、2,可以看出有公共的數(shù)值2,故獲取第四層第二個(gè)位置上的節(jié)點(diǎn)paper,判斷得出paper為實(shí)體節(jié)點(diǎn),故paper符合BLCEA查詢語(yǔ)義,屬于BLCEA節(jié)點(diǎn),加入BLCEA節(jié)點(diǎn)集合中,之后刪除祖先為paper的那些關(guān)鍵字在各自倒排索引中的匹配節(jié)點(diǎn),
[0051]第四層計(jì)算結(jié)束之后計(jì)算第三層的BLCEA節(jié)點(diǎn)集合,各關(guān)鍵字的倒排索引中的所有匹配節(jié)點(diǎn)的LDewey編碼在第三層中的值,如圖3、圖4(c)所示:title倒排索引中的所有匹配節(jié)點(diǎn)的LDewey編碼在第四層中的值分別為0、3、5、5,XML為0、5,2013為1,沒(méi)有共同數(shù)值,故第三層中沒(méi)有BLCEA節(jié)點(diǎn),不作處理,
[0052]繼續(xù)查找第二層中有無(wú)BLCEA節(jié)點(diǎn),各關(guān)鍵字的倒排索引中的所有匹配節(jié)點(diǎn)的LDewey編碼在第二層中的值,如圖3、圖4(d)所示:title倒排索引中的所有匹配節(jié)點(diǎn)的LDewey編碼在第四層中的值分別為0、1、1、1,XML為0、1,2013為0,可以看出有公共的數(shù)值0,故獲取第二層第零個(gè)位置上的節(jié)點(diǎn)book,判斷得出book為實(shí)體節(jié)點(diǎn),故book符合BLCEA查詢語(yǔ)義,屬于BLCEA節(jié)點(diǎn),加入BLCEA節(jié)點(diǎn)集合中,最后刪除祖先為book的那些關(guān)鍵字在各自倒排索引中的匹配節(jié)點(diǎn),
[0053]最后找出最后一層即第一層的BLCEA節(jié)點(diǎn)集合。觀察得出各關(guān)鍵字的倒排索引中的所有匹配節(jié)點(diǎn)的LDewey編碼在第二層中的值,如圖3、圖4 (e)所示:title倒排索引中的所有匹配節(jié)點(diǎn)的LDewey編碼在第四層中的值分別為0,XML為O、1,2013為空,沒(méi)有公共數(shù)值,故在第一層沒(méi)有BLCEA節(jié)點(diǎn),
[0054]綜上對(duì)于查詢關(guān)鍵字序列Q,對(duì)應(yīng)的BLCEA節(jié)點(diǎn)集合中的節(jié)點(diǎn)為book (2.0.0)以及paper (4.0.0.2.2)。
[0055]步驟2,根據(jù)結(jié)果排序算法對(duì)BLCEA節(jié)點(diǎn)集合中的所有節(jié)點(diǎn)為根的子樹(shù)進(jìn)行排序,返回用戶最理想的結(jié)果:
[0056]步驟2-1,計(jì)算匹配度:book (2.0.0)以及paper (4.0.0.2.2)為根的子樹(shù)中,都僅存在匹配title:XML,故匹配度都為I。
[0057]步驟2-2,排序:book(2.0.0)以及paper (4.0.0.2.2)為根的子樹(shù)中關(guān)鍵字匹配度相同都為I,故比較關(guān)鍵字在子樹(shù)中的緊密度,得出book (2.0.0)以及paper (4.0.0.2.2)為根的子樹(shù)中關(guān)鍵字之間的最短距離都為4,故得出這兩個(gè)子樹(shù)對(duì)用戶的重要性一樣,觀察這兩個(gè)子樹(shù),同樣符合用戶需要,由此可證明該結(jié)果排序方法有效。
[0058]若查詢?yōu)閧IR,year, 2010},得出BLCEA節(jié)點(diǎn)分別為book(2.0.2)以及book (2.0.3),前者為根的子樹(shù)匹配度為1,而后者為根的子樹(shù)匹配度為0,排序方法認(rèn)為前者排名比后者排名靠前,觀察這兩個(gè)子樹(shù),可以得出book(2.0.2)比book(2.0.3)更符合用戶意圖,同樣可以證明該結(jié)果排序方法的有效性。
[0059]為了驗(yàn)證BLCEA語(yǔ)義以及結(jié)果排序方法的有效性,本發(fā)明將BLCEA語(yǔ)義及結(jié)果排序方法運(yùn)行在真實(shí)的XML數(shù)據(jù)集Reed和SigmodRecord上,并與經(jīng)典的XMl關(guān)鍵字查詢語(yǔ)義LCA以及SLCA進(jìn)行比較,比較重點(diǎn)為查準(zhǔn)率、查全率以及查詢所需的執(zhí)行時(shí)間這三個(gè)方面。
[0060]1、實(shí)驗(yàn)所用的部分查詢表I所示:
[0061]表I部分查詢
[0062]
查詢?chǔ)虏樵儽磉_(dá)式數(shù)據(jù)集
O IΛΝ--Rccd
O 2 room 302Reed
O 3instructor BriglitmanRccd
0 4 siibj B1LTHRccd
0 5 HUM crsc 210Reed
06siibj GRE building EL1TRecd
01instructor Schiff subj MUSRccd
0 S title CHEM building VOLLIJM place Reed
Q 9 optimizat1nSiGMOD Rccord
0 10 author BlakeleySIGMOD Rccorcl
Q 11 title recoverySIGMOD Record
0 12 author Richard titleSIGMOD Rccord
0 13 issue volume 15SiGMOD Rccord
Q 14 article title mcmoiy-rcsidcnt author SlGMOD Rccord
Q 15 title hypertext author FrassonSlGMOD Rccord
Q 16 articlc title database author HananSIGMOD Rccord
[0063]2、實(shí)驗(yàn)結(jié)果分析如下:
[0064](I)查準(zhǔn)率
[0065]以上三種查詢語(yǔ)義在Reed和SigmodRecord數(shù)據(jù)集上運(yùn)行的查準(zhǔn)率如圖5 (a)以及圖5(b)所示:橫坐標(biāo)為關(guān)鍵字?jǐn)?shù)目,縱坐標(biāo)是查準(zhǔn)率,由圖可知,關(guān)鍵字個(gè)數(shù)不同的情況下,BLCEA的查準(zhǔn)率均比LCA以及SLCA兩種查詢語(yǔ)義高,主要原因在于BLCEA語(yǔ)義的返回結(jié)果為實(shí)體節(jié)點(diǎn)。LCA和SLCA均沒(méi)有對(duì)Reed數(shù)據(jù)集中節(jié)點(diǎn)的類型進(jìn)行判斷,沒(méi)有限制返回結(jié)果的類型,故返回結(jié)果可能只是語(yǔ)義不完整的屬性節(jié)點(diǎn)、值節(jié)點(diǎn)或不具有任何意義的連接節(jié)點(diǎn),用戶不能從中獲取豐富的語(yǔ)義信息;而B(niǎo)LCEA語(yǔ)義限制返回結(jié)果為具有實(shí)際意義的實(shí)體節(jié)點(diǎn),使得返回結(jié)果更符合用戶需求。
[0066](2)查全率
[0067]以上三種查詢語(yǔ)義在Reed和SigmodRecord數(shù)據(jù)集上運(yùn)行的查全率如圖6 (a)以及圖6 (b)所示:橫坐標(biāo)為關(guān)鍵字?jǐn)?shù)目,縱坐標(biāo)為查全率,由圖可知,在關(guān)鍵字個(gè)數(shù)不同的情況下,BLCEA的查全率比LCA以及SLCA兩種查詢語(yǔ)義都高,主要原因是在求解BLCEA節(jié)點(diǎn)時(shí),需要判斷在刪除其他BLCEA子孫后,其他子孫是否還滿足查詢條件。保證了不丟失有意義的結(jié)果,即保證查詢的查全率。
[0068](3)查詢時(shí)間
[0069]根據(jù)關(guān)鍵字在XML文檔中出現(xiàn)頻率的不同,將關(guān)鍵字分為低頻關(guān)鍵字(1-50)、中頻關(guān)鍵字(50-500)、高頻關(guān)鍵字(500以上)。為了更好驗(yàn)證BLCEA的時(shí)間上的有效性,本實(shí)驗(yàn)選取高頻關(guān)鍵字對(duì)Reed和Sigmod Record數(shù)據(jù)集進(jìn)行查詢。
[0070]以上三種查詢語(yǔ)義在Reed和SigmodRecord數(shù)據(jù)集上運(yùn)行查詢所需的時(shí)間如圖7(a)以及圖7(b)所示:橫坐標(biāo)為關(guān)鍵字?jǐn)?shù)目,縱坐標(biāo)為查詢時(shí)間,由圖可知,在查詢中只含有一個(gè)關(guān)鍵字時(shí),LCA以及BLCA的查詢時(shí)間比BLCEA低,原因是LCA在XML中找到包含該關(guān)鍵字的節(jié)點(diǎn)時(shí)就直接返回,而B(niǎo)LCEA語(yǔ)義則需要逐層中查找BLCEA節(jié)點(diǎn)集合,消耗的時(shí)間比LCA及SLCA多。
[0071]隨著查詢關(guān)鍵字個(gè)數(shù)逐漸增多,BLCEA的優(yōu)勢(shì)就顯著體現(xiàn)了,主要原因如下:
[0072](a)隨著關(guān)鍵字個(gè)數(shù)的增加,BLCEA語(yǔ)義算法求解的層次數(shù)目趨于穩(wěn)定,查詢時(shí)間也趨于穩(wěn)定;而LCA語(yǔ)義執(zhí)行時(shí)間會(huì)隨著關(guān)鍵字個(gè)數(shù)增加而增加,SLCA語(yǔ)義是基于LCA語(yǔ)義的,但由于其自身特點(diǎn),在求解時(shí)可以采用一些優(yōu)化策略,使得效率比LCA高,但還是比BLCEA的效率低;
[0073](b) BLCEA語(yǔ)義實(shí)現(xiàn)算法是基于LDewey編碼設(shè)計(jì),而LCA和SLCA語(yǔ)義實(shí)現(xiàn)算法是基于Dewey編碼設(shè)計(jì),這兩種編碼方式在比較兩個(gè)節(jié)點(diǎn)關(guān)系時(shí),前者的時(shí)間復(fù)雜度明顯低于后者,也是BLCEA執(zhí)行效率明顯高于LCA以及SLCA的關(guān)鍵因素。
[0074]由于XML關(guān)鍵字查詢存在模糊性問(wèn)題,導(dǎo)致查詢會(huì)返回很多結(jié)果,而LCA和SLCA不支持結(jié)果排序,使得用戶需在大量結(jié)果中找到最符合需求的結(jié)果,這就導(dǎo)致了查詢質(zhì)量的降低。本發(fā)明設(shè)計(jì)結(jié)果排序算法對(duì)BLCEA節(jié)點(diǎn)進(jìn)行排序,將最符合用戶需求的節(jié)點(diǎn)排在前面,保證用戶快速在大量返回結(jié)果中找到期望的結(jié)果,提高查詢的時(shí)間效率。
[0075]本發(fā)明在設(shè)計(jì)結(jié)果排序算法時(shí),不僅考慮了經(jīng)典排序方法中涉及的關(guān)鍵字之間的緊密度,同時(shí)考慮了關(guān)鍵字之間可能存在的匹配關(guān)系,而這種匹配關(guān)系,能在某種程度上體現(xiàn)用戶的需求。為了驗(yàn)證關(guān)鍵字之間存在的匹配關(guān)系在推斷用戶意圖上的重要性,本發(fā)明通過(guò)實(shí)驗(yàn)對(duì)比兩種排序方法:Close方法和Match_Close方法。Close方法只根據(jù)關(guān)鍵字之間緊密度對(duì)結(jié)果節(jié)點(diǎn)為根的子樹(shù)進(jìn)行排序,Match_Close方法結(jié)合關(guān)鍵字之間緊密度和關(guān)鍵字之間匹配度這兩個(gè)因素對(duì)結(jié)果節(jié)點(diǎn)為根的子樹(shù)進(jìn)行排序。
[0076]本發(fā)明在Sigmod Record數(shù)據(jù)集上進(jìn)行該實(shí)驗(yàn),由于Sigmod Record數(shù)據(jù)集的結(jié)構(gòu)嵌套多,關(guān)鍵字模糊性較強(qiáng),所以Close方法和Match_Cl0Se方法的區(qū)別會(huì)比結(jié)構(gòu)簡(jiǎn)單的數(shù)據(jù)集Reed明顯。
[0077]在Sigmod Record數(shù)據(jù)集中,我們邀請(qǐng)20位測(cè)試者提交他們的查詢,對(duì)每個(gè)查詢,使用BLCEA求解算法求出查詢關(guān)鍵字的BLCEA節(jié)點(diǎn)集合,讓測(cè)試者在這些節(jié)點(diǎn)集合中,標(biāo)出他們最想要的K個(gè)結(jié)果。本文使用Close方法和Match_CloSe方法分別對(duì)關(guān)鍵字的BLCEA節(jié)點(diǎn)集合進(jìn)行排序,比較這兩種方法的前K個(gè)結(jié)果在測(cè)試者最想要的K個(gè)結(jié)果中所占的比例W。
[0078]每個(gè)查詢用例中包含關(guān)鍵字的個(gè)數(shù)為1-5個(gè),當(dāng)K = 10和K = 20時(shí),Close和Match_Close的對(duì)比結(jié)果如圖8(a)以及圖8(b)所示:橫坐標(biāo)為關(guān)鍵字?jǐn)?shù)目,縱坐標(biāo)為關(guān)鍵字之間的緊密度,由圖可知,在關(guān)鍵字個(gè)數(shù)為I時(shí),關(guān)鍵字之間不存在匹配問(wèn)題,關(guān)鍵字之間越緊密就越符合用戶需求,Close方法和Match_Cl0Se方法都能使用戶很快的找到所需結(jié)果,當(dāng)關(guān)鍵字個(gè)數(shù)大于I時(shí),僅考慮關(guān)鍵字之間緊密度,不足以推斷用戶搜索意圖,故當(dāng)關(guān)鍵字個(gè)數(shù)為2或3時(shí),Match_CloSe方法考慮的關(guān)鍵字之間匹配度可使用戶更快得到搜索結(jié)果,效果明顯比Close方法要好,圖中所示當(dāng)關(guān)鍵字個(gè)數(shù)為4或5時(shí),使用Close方法和Match_Close方法得到的前K個(gè)結(jié)果的準(zhǔn)確率都很高,原因是關(guān)鍵字個(gè)數(shù)越多,條件限制就越多,越能體現(xiàn)出用戶的查詢目的。Sigmod Record數(shù)據(jù)集的結(jié)構(gòu)嵌套還不夠復(fù)雜,關(guān)鍵字模糊性還不夠強(qiáng),若在結(jié)構(gòu)更復(fù)雜的數(shù)據(jù)集中比較,Match_CloSe方法的優(yōu)勢(shì)會(huì)更突出。綜上表明,Match_Close方法考慮的關(guān)鍵字匹配度問(wèn)題在結(jié)果排序上起著至關(guān)重要的作用,是用戶快速找到期望結(jié)果的關(guān)鍵因素。
[0079]通過(guò)對(duì)LCA、SLCA以及BLCEA的查準(zhǔn)率、查全率和查詢效率三方面的比較可知BLCEA語(yǔ)義是一種有效的XML關(guān)鍵字查詢語(yǔ)義,同時(shí)證明了關(guān)鍵字之間匹配度在結(jié)果排序中起著不可或缺的作用。
【權(quán)利要求】
1.一種XML關(guān)鍵字查詢方法,其特征在于,包括如下步驟: 步驟1,確定XML文檔關(guān)鍵字序列的BLCEA節(jié)點(diǎn)集合, 所述BLCEA節(jié)點(diǎn)為實(shí)體節(jié)點(diǎn),去掉BLCEA節(jié)點(diǎn)的子孫中包含所有查詢關(guān)鍵字的實(shí)體節(jié)點(diǎn)之后,剩余的子孫中仍然包含所有查詢關(guān)鍵字: 步驟1-1,初始化BLCEA節(jié)點(diǎn)集合為空; 步驟1-2,獲得所有關(guān)鍵字匹配節(jié)點(diǎn)的有序LDewey編碼集合,所述LDewey編碼包括:關(guān)鍵字匹配節(jié)點(diǎn)所處層次信息、關(guān)鍵字匹配節(jié)點(diǎn)的祖先節(jié)點(diǎn)在各自所處層次中的位置信息、關(guān)鍵字匹配節(jié)點(diǎn)在所處層次中的位置信息; 步驟1-3,由出現(xiàn)關(guān)鍵字匹配節(jié)點(diǎn)的最高層次開(kāi)始逐層尋找BLCEA節(jié)點(diǎn):對(duì)每一層中的各節(jié)點(diǎn),當(dāng)有實(shí)體節(jié)點(diǎn)是該層中所有關(guān)鍵字匹配節(jié)點(diǎn)的公共祖先時(shí),將該實(shí)體節(jié)點(diǎn)加入BLCEA節(jié)點(diǎn)集合中,并在LDewey編碼集合中刪去以該實(shí)體節(jié)點(diǎn)為祖先的關(guān)鍵字匹配節(jié)點(diǎn)編碼; 步驟2,利用結(jié)果排序算法對(duì)以BLCEA節(jié)點(diǎn)集合各節(jié)點(diǎn)為根的子樹(shù)進(jìn)行排序,返回用戶最理想的結(jié)果: 步驟2-1,在以每個(gè)BLCEA節(jié)點(diǎn)為根的子樹(shù)中計(jì)算關(guān)鍵字匹配度,按匹配度大小對(duì)BLCEA節(jié)點(diǎn)集合中的節(jié)點(diǎn)排序。并把以BLCEA節(jié)點(diǎn)集合中所有節(jié)點(diǎn)為根的子樹(shù)都返回給用戶,在關(guān)鍵字匹配度相等時(shí)進(jìn)入步驟2-2 ; 步驟2-2,求出關(guān)鍵字在匹配度相等的BLCEA節(jié)點(diǎn)為根的子樹(shù)中的最短距離,按照最短距離遞增的順序排列各BLCEA節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的XML關(guān)鍵字查詢方法,其特征在于,步驟2-1中關(guān)鍵字匹配度的計(jì)算方法如下:前一個(gè)關(guān)鍵字的文本值等于后一個(gè)關(guān)鍵字文本值時(shí),記匹配度為1,否貝U,記匹配度為O。
3.根據(jù)權(quán)利要求2所述的XML關(guān)鍵字查詢方法,其特征在于,步驟2-2中的最短距離由以下表達(dá)式求得, 前一個(gè)關(guān)鍵字匹配節(jié)點(diǎn)h、后一個(gè)關(guān)鍵字匹配節(jié)點(diǎn)k2在同一條路徑上,則最短距離: dist (k1; k2) = I LDewey (Ii1).1evel-LDewey (k2).level |, 前一個(gè)關(guān)鍵字匹配節(jié)點(diǎn)h、后一個(gè)關(guān)鍵字匹配節(jié)點(diǎn)k2不在同一條路徑上,則最短距離:dist (k1; k2) = LDewey (kj).level+LDewey (k2).level-2LDewey (v).level其中,LDewey (kl).level為前一關(guān)鍵字匹配節(jié)點(diǎn)Ii1所處層次信息,LDewey (k2).level為后一關(guān)鍵字匹配節(jié)點(diǎn)k2所處層次信息,LDewey(v).level為子樹(shù)根節(jié)點(diǎn)所處層次信息。
【文檔編號(hào)】G06F17/30GK104166672SQ201410284885
【公開(kāi)日】2014年11月26日 申請(qǐng)日期:2014年6月23日 優(yōu)先權(quán)日:2014年6月23日
【發(fā)明者】馮鈞, 朱祖會(huì), 唐志賢, 許瀟, 杜丙帥, 査顯月, 王純, 李宗祥, 魏童童, 朱躍龍, 李士進(jìn), 萬(wàn)定生 申請(qǐng)人:河海大學(xué)