馮 鈞,李宗祥,唐志賢,姜 康
(河海大學(xué)計(jì)算機(jī)與信息學(xué)院,江蘇 南京 211100)
隨著物聯(lián)網(wǎng)、云計(jì)算、移動(dòng)互聯(lián)網(wǎng)以及RS 技術(shù)在水利行業(yè)的廣泛應(yīng)用,水利行業(yè)迅速積累了海量、分布、異構(gòu)的水利業(yè)務(wù)數(shù)據(jù)。構(gòu)建水利信息資源目錄服務(wù)系統(tǒng)是整合水利業(yè)務(wù)數(shù)據(jù)、實(shí)現(xiàn)數(shù)據(jù)共享以及深度利用分散存儲(chǔ)數(shù)據(jù)的有效途徑[1]。元數(shù)據(jù)搜索是資源目錄服務(wù)系統(tǒng)的關(guān)鍵技術(shù)之一[2],目前對(duì)于元數(shù)據(jù)的檢索,大多是基于關(guān)鍵詞的簡(jiǎn)單匹配,忽略了水利數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,形成“語(yǔ)義漂移”、“機(jī)械匹配”、“語(yǔ)義不一致”等問(wèn)題,影響了搜索結(jié)果的查全率與查準(zhǔn)率。此外,水利元數(shù)據(jù)多由XML 描述,在對(duì)元數(shù)據(jù)建立索引時(shí),需要解析元數(shù)據(jù),提取其中關(guān)鍵信息來(lái)建立索引,由于結(jié)構(gòu)化元數(shù)據(jù)上下文存在關(guān)聯(lián)性,解析過(guò)程需要獲取元數(shù)據(jù)的整體結(jié)構(gòu),導(dǎo)致解析效率低下。針對(duì)上述問(wèn)題,本文首先結(jié)合本體與查詢(xún)擴(kuò)展技術(shù),提出一種基于本體的語(yǔ)義搜索方法,在元數(shù)據(jù)搜索中考慮水利數(shù)據(jù)之間的語(yǔ)義關(guān)聯(lián),使搜索結(jié)果更加符合用戶意圖;其次,針對(duì)XML 形式水利元數(shù)據(jù)建立索引效率低下的問(wèn)題,引入Hadoop 平臺(tái)中的MapReduce 并行處理模型,由于XML 的解析需要一個(gè)完整的XML 文件,如果直接采用Hadoop 的劃分機(jī)制,將會(huì)把一個(gè)完整的XML 文件分到不同的分片中去,造成元數(shù)據(jù)解析錯(cuò)誤,所以本文改進(jìn)Hadoop 中SequenceFile 的結(jié)構(gòu),使水利元數(shù)據(jù)及相關(guān)文件能夠合并存儲(chǔ)在HDFS 中以及被MapReduce 切割為獨(dú)立、完整的文件,接著利用MapReduce 并行地解析完整的水利元數(shù)據(jù)文件并建立索引,并在此基礎(chǔ)上提出一種分布式環(huán)境下基于本體的擴(kuò)展查詢(xún)方法。
語(yǔ)義搜索是語(yǔ)義技術(shù)與信息檢索結(jié)合的產(chǎn)物,目的是利用語(yǔ)義技術(shù)來(lái)提高信息檢索的搜索效果[3]。Yu Xuejun 等人[4]利用關(guān)鍵詞擴(kuò)展技術(shù)構(gòu)建搜索引擎,在對(duì)相關(guān)詞匯進(jìn)行擴(kuò)展時(shí),考慮詞語(yǔ)之間的相似性;Marcelo G.Armentano 等人[5]利用NLP 技術(shù)解決了搜索引擎中對(duì)實(shí)體自動(dòng)命名與識(shí)別的問(wèn)題。T.Tran 等人[6]設(shè)計(jì)開(kāi)發(fā)了語(yǔ)義搜索引擎SemSearch,通過(guò)關(guān)鍵詞擴(kuò)展的方式來(lái)解析用戶的查詢(xún)表達(dá)式,該方法提供了語(yǔ)義擴(kuò)展的思路,但是沒(méi)有考慮擴(kuò)展詞的選擇情況;Qiu Yonggang 等人[7]通過(guò)構(gòu)建詞匯相似性表的方式來(lái)擴(kuò)展查詢(xún)?cè)~,在查詢(xún)時(shí)比較檢索詞與查詢(xún)的相似度,選擇相似度較高的關(guān)鍵詞添加到查詢(xún)中。文獻(xiàn)[8]提出把首次搜索結(jié)果中最相關(guān)的若干篇文檔作為查詢(xún)擴(kuò)展的來(lái)源,由于擴(kuò)展效果依賴(lài)首次查詢(xún)結(jié)果的數(shù)量與質(zhì)量,使得局部分析法擴(kuò)展的準(zhǔn)確率難以保證;而文獻(xiàn)[9]提出一種基于語(yǔ)義的查詢(xún)擴(kuò)展是利用本體中概念之間的語(yǔ)義關(guān)系來(lái)擴(kuò)展查詢(xún)?cè)~,增加對(duì)用戶搜索意圖的理解,消除了語(yǔ)義歧義。
在分布式搜索引擎的相關(guān)研究工作中,文獻(xiàn)[10]提出在MapReduce 模型中對(duì)Xquery 的語(yǔ)法、特征、語(yǔ)義進(jìn)行擴(kuò)展,建立了ChuQL 查詢(xún)語(yǔ)言;Bhavik Shah 等人[11]從XML DOM 節(jié)點(diǎn)的樹(shù)形結(jié)構(gòu)出發(fā),提出了ParDOM 解析方法,ParDOM 在解析XML 時(shí)考慮了標(biāo)簽的分割,把分割后的數(shù)據(jù)塊使用MapReduce的并行處理后,再對(duì)處理后的結(jié)果進(jìn)行合并;魏永山等人[12]針對(duì)大型XML 文件,使用XPath 投影的方法對(duì)文件進(jìn)行劃分,只保留對(duì)查詢(xún)結(jié)果有貢獻(xiàn)的數(shù)據(jù)段,把切割后的數(shù)據(jù)塊放入MapReduce 進(jìn)行并行查詢(xún),提高了查詢(xún)的性能。
本文的領(lǐng)域背景設(shè)定在水利領(lǐng)域,所以筆者利用《水利公文主題詞表》限定了本體構(gòu)建的范圍,確定水利領(lǐng)域本體中概念的范圍,并使用Jena 對(duì)水利領(lǐng)域本體進(jìn)行推理。Jena 包含一個(gè)默認(rèn)支持OWL 的推理機(jī)制,但Jena 原生支持的推理規(guī)則集中不支持水利領(lǐng)域中的隱含關(guān)系,例如:淮河與河流之間存在相關(guān)關(guān)系,支流作為河流的子類(lèi),淮河與河流之間也應(yīng)該存在相關(guān)關(guān)系,因此將擴(kuò)展現(xiàn)有的推理規(guī)則,來(lái)發(fā)現(xiàn)水利領(lǐng)域本體中隱含的語(yǔ)義關(guān)系。
針對(duì)水利領(lǐng)域本體擴(kuò)展中所遇到的實(shí)際問(wèn)題描述,構(gòu)造推理規(guī)則:
Rule1 說(shuō)明如果x 與y 存在相關(guān)關(guān)系,而z 是y的子集,則認(rèn)為x 與z 也存在相關(guān)關(guān)系。
Rule2 說(shuō)明如果x 與y 等價(jià),而y 與z 等價(jià),則認(rèn)為x 與z 也等價(jià)。
Rule3 說(shuō)明如果x 與y 存在等價(jià)關(guān)系,而x 與z是相關(guān)的,那么認(rèn)為y 與z 也存在相關(guān)關(guān)系。
語(yǔ)義相似度對(duì)于擴(kuò)展查詢(xún)中選擇擴(kuò)展詞有重要作用。語(yǔ)義相似度越高就說(shuō)明擴(kuò)展詞越符合用戶的需求,查詢(xún)結(jié)果就具有越高的查全率;文獻(xiàn)[13-17]中提到了語(yǔ)義距離、節(jié)點(diǎn)深度、信息論等多個(gè)影響語(yǔ)義相似度的因素;為了解決水利領(lǐng)域本體的相似度計(jì)算的問(wèn)題,本文綜合考慮影響語(yǔ)義相似度的各個(gè)因素,提出水利領(lǐng)域語(yǔ)義相似度計(jì)算公式:
1)語(yǔ)義距離:語(yǔ)義距離是2 個(gè)概念在本體中路徑的最短距離。定義概念c1 與c2 的最近公共祖先為lca(c1,c2),語(yǔ)義距離可表示為:
其中,depth(lca(c1,c2))表示最近公共祖先節(jié)點(diǎn)在本體中的層次,len(c1,c2)表示2 個(gè)概念在本體中的距離。
2)節(jié)點(diǎn)深度:概念與本體的根節(jié)點(diǎn)的最短路徑稱(chēng)作概念的深度,由于本體中上層概念的含義相比于底層概念更為抽象,所以概念的相似度隨著概念的深度差變大而變小。
其中l(wèi)ca(c1,c2)代表概念c1 與c2 與公共祖先距離的平均值。
3)語(yǔ)義相關(guān)度:表示概念之間的相關(guān)程度。概念具有子類(lèi)越多,那么從信息論的角度來(lái)看,這個(gè)概念則表現(xiàn)得更為抽象,本文認(rèn)為抽象的概念蘊(yùn)含的信息與具體的概念相比更少,因此相似度計(jì)算時(shí)需要考慮概念的抽象程度。此外,根據(jù)水利領(lǐng)域本體的特征可知如果概念之間共享的信息越多那么概念越相似,概念之間共同的祖先節(jié)點(diǎn)可以認(rèn)為是概念間共享信息的一種表現(xiàn),因此概念的語(yǔ)義相關(guān)度可以表示為:
其中,Classify(c1,c2)描述概念c1 與c2 共享子類(lèi)的信息量,Ancestors(c1,c2)用于描述概念c1 與c2 共享公共祖先的信息量。sim(c1,c2)中α +β +λ=1,α、β 與λ 等值設(shè)置具有一定的主觀性,為了確保相似度計(jì)算的準(zhǔn)確性,后續(xù)章節(jié)將采用專(zhuān)家經(jīng)驗(yàn)與實(shí)驗(yàn)結(jié)合的方式進(jìn)行參數(shù)設(shè)置,通常情況下語(yǔ)義相關(guān)度對(duì)語(yǔ)義相似度的影響最大,其次為語(yǔ)義距離,最后才是節(jié)點(diǎn)深度,即λ >α >β,相似度的值域?yàn)閟im(c1,c2)∈(0,1)。
本體推理能夠發(fā)現(xiàn)隱含的語(yǔ)義關(guān)系,可以推出更多的關(guān)鍵詞,提高查全率。但是本體推理單純地對(duì)擴(kuò)展詞增加權(quán)值的方式,無(wú)法合理地對(duì)擴(kuò)展詞范圍進(jìn)行限制,導(dǎo)致推出的擴(kuò)展詞之間區(qū)分度不夠,無(wú)法保證最終查詢(xún)結(jié)果的準(zhǔn)確性。本文結(jié)合本體推理與基于本體相似性計(jì)算2 種方式進(jìn)行關(guān)鍵詞的擴(kuò)展,通過(guò)本體推理和相似性計(jì)算分別得到2 個(gè)擴(kuò)展關(guān)鍵詞的集合,如果簡(jiǎn)單地組合2 組擴(kuò)展詞作為查詢(xún)表達(dá)式,會(huì)導(dǎo)致與查詢(xún)?cè)~相關(guān)性比較低的詞匯出現(xiàn)在查詢(xún)表示中,導(dǎo)致相關(guān)不高的結(jié)果出現(xiàn),降低查準(zhǔn)率,因此需要設(shè)置一個(gè)擴(kuò)展閾值,當(dāng)擴(kuò)展詞的權(quán)值高于閾值時(shí),則加入查詢(xún)?cè)~列表中,關(guān)鍵詞擴(kuò)展流程如圖1 所示。
對(duì)搜索關(guān)鍵詞的擴(kuò)展數(shù)量加以限制,可以保證較好的查準(zhǔn)率與查全率。然而,在搜索結(jié)果中排名靠前的記錄不一定就是最相關(guān)的記錄,因?yàn)殡S著查詢(xún)擴(kuò)展詞的增多,搜索結(jié)果中會(huì)出現(xiàn)很多噪音,如果把關(guān)鍵詞的語(yǔ)義信息加入排序算法中,那么搜索結(jié)果將會(huì)按照語(yǔ)義相關(guān)性排序,從而使查詢(xún)結(jié)果更符合用戶的需求,提高查準(zhǔn)率。
圖1 關(guān)鍵詞擴(kuò)展流程
本文將改進(jìn)Lucene 的搜索排序算法,把擴(kuò)展關(guān)鍵詞的語(yǔ)義信息加入排序中去,改進(jìn)后的排序算法SimRank 可以表示為:
其中,t 表示Term(即所要查詢(xún)的關(guān)鍵詞),coord(q,d)表示文檔中包含的檢索關(guān)鍵詞數(shù)量,queryNorm(q)表示每個(gè)查詢(xún)的方差和,boost(t)表示添加了語(yǔ)義信息的詞匯權(quán)值,tf(t,d)表示詞頻,idf(t)2表示逆向文件頻率,norm(t,d)表示標(biāo)準(zhǔn)化因子。
boost(t)表示關(guān)鍵詞權(quán)重,如果當(dāng)前詞是擴(kuò)展而來(lái)的,賦予擴(kuò)展詞的權(quán)重值,否則賦值為默認(rèn)的權(quán)重:
本文利用Hadoop 平臺(tái)實(shí)現(xiàn)水利元數(shù)據(jù)的分布式語(yǔ)義檢索。由于水利元數(shù)通常采用XML 文件進(jìn)行定義與描述,需要在建立索引時(shí)解析整個(gè)XML 文件獲取相應(yīng)數(shù)據(jù),但是如果在建立索引時(shí)直接采用Hadoop 的文件劃分機(jī)制,將會(huì)把一個(gè)完整的XML 文件劃分到不同的分片中,造成元數(shù)據(jù)解析錯(cuò)誤,而且水利元數(shù)據(jù)的大小通常在幾十kB 到幾百kB 之間,是通常意義上的小文件,會(huì)產(chǎn)生HDFS 小文件問(wèn)題,增加Namenode 負(fù)載降低處理效率,所以對(duì)Hadoop 中SequenceFile 的結(jié)構(gòu)進(jìn)行改進(jìn),利用SequenceFile 可以將多個(gè)小文件合并為一個(gè)大文件的功能,使水利元數(shù)據(jù)及相關(guān)文件能夠合并存儲(chǔ)在HDFS 中以及被MapReduce 切割為獨(dú)立、完整的文件,然后利用MapReduce 并行地解析完整的水利元數(shù)據(jù)文件并建立索引,在此基礎(chǔ)上提出一種分布式環(huán)境下基于本體的擴(kuò)展查詢(xún)方法。
1)數(shù)據(jù)預(yù)處理。
首先使用Xpath 來(lái)標(biāo)識(shí)這些關(guān)鍵數(shù)據(jù)項(xiàng),利用XML 的解析工具,如SAX、dom4j、XQuery 等,可以獲取Xpath 對(duì)應(yīng)的數(shù)據(jù)信息。通過(guò)對(duì)異構(gòu)類(lèi)型的元數(shù)據(jù),使用Xpath 配置文件標(biāo)識(shí)出元數(shù)據(jù)中共性的內(nèi)容,那么在建立索引過(guò)程中,可以利用配置文件來(lái)屏蔽異構(gòu)數(shù)據(jù)之間的差異性。
其次是海量的水利元數(shù)據(jù)小文件的處理。在建立索引過(guò)程中,需要構(gòu)建多個(gè)配置文件來(lái)屏蔽不同類(lèi)型元數(shù)據(jù)之間的差異性,為保證MapReduce 對(duì)水利元數(shù)據(jù)相關(guān)文件切割后,能夠形成一個(gè)個(gè)獨(dú)立的文件,改進(jìn)了SequenceFile 文件的key/value 結(jié)構(gòu),稱(chēng)為XSequenceFile,如圖2 所示。
圖2 處理元數(shù)據(jù)的XSequenceFile 結(jié)構(gòu)
XSequenceFile 將水利元數(shù)據(jù)文件組合到一起,作為HDFS 存儲(chǔ)的格式。對(duì)于海量、異構(gòu)、小文件的水利元數(shù)據(jù)的解析需求,首先需要將用于屏蔽異構(gòu)元數(shù)據(jù)差異性的Xpath、索引配置項(xiàng)(index config)存入XSequenceFile 中,且需要保證解析元數(shù)據(jù)之前,Xpath以及index config 文件就已經(jīng)存在,因此把Xpath、XML、index config 合并為一個(gè)文件組合,放置于同一個(gè)record 中。metadata id 作為key 來(lái)標(biāo)識(shí)當(dāng)前處理的元數(shù)據(jù),value 中分別記錄數(shù)據(jù)與長(zhǎng)度,通過(guò)長(zhǎng)度可以計(jì)算出Xpath、index config 與XML 在record 中的偏移量,從而在讀取XSequenceFile 可以還原出相應(yīng)的文件。header 用于標(biāo)識(shí)XSequenceFile 的文件信息,包括是否壓縮、壓縮方式、key/value 信息、以及sync的相關(guān)信息。sync 用于校驗(yàn)record 中的記錄,如偏移量,當(dāng)讀取過(guò)程中發(fā)生錯(cuò)誤時(shí),sync 可以用于恢復(fù)數(shù)據(jù)。
2)索引的并行建立。
圖3 展示了并行建立索引的過(guò)程:將HDFS 中的元數(shù)據(jù)及其相關(guān)的索引結(jié)果配置文件和xpath 以指定的結(jié)構(gòu)寫(xiě)入XSequenceFile,Map 函數(shù)按照XSequecnceFile 中的key-value 格式取出數(shù)據(jù),并且按照value 中定義的偏移量把xpath、索引配置項(xiàng)、XML 元數(shù)據(jù)讀取出來(lái),通過(guò)并行地運(yùn)行SAX 算法提取出Xpath 對(duì)應(yīng)的信息,建立倒排索引,并把索引記錄對(duì)應(yīng)的元數(shù)據(jù)類(lèi)型index_type 作為key,把索引記錄作為value 交由Reduce 函數(shù)進(jìn)行處理,Reduce 函數(shù)通過(guò)統(tǒng)計(jì)相同的index_type,執(zhí)行索引合并程序,并將合并后的索引寫(xiě)入HDFS 中。
圖3 水利元數(shù)據(jù)并行建立索引過(guò)程
由于用戶在向分布式集群發(fā)送查詢(xún)請(qǐng)求時(shí),系統(tǒng)無(wú)法事先知道索引文件存在哪個(gè)節(jié)點(diǎn)上,因此查詢(xún)請(qǐng)求分發(fā)過(guò)程不能是隨機(jī)分發(fā)或者指定節(jié)點(diǎn)進(jìn)行查詢(xún)請(qǐng)求的分發(fā),所以在查詢(xún)模型中設(shè)計(jì)了查詢(xún)請(qǐng)求分發(fā)策略,從集群中遴選出一個(gè)節(jié)點(diǎn),向該節(jié)點(diǎn)發(fā)送查詢(xún)請(qǐng)求,并由該節(jié)點(diǎn)向其他節(jié)點(diǎn)轉(zhuǎn)發(fā)查詢(xún)請(qǐng)求,其他節(jié)點(diǎn)在本地處理查詢(xún)請(qǐng)求后,將查詢(xún)結(jié)果返回給遴選節(jié)點(diǎn)。遴選節(jié)點(diǎn)是出于并發(fā)訪問(wèn)下,保持各個(gè)節(jié)點(diǎn)之間的負(fù)載均衡,設(shè)計(jì)使用hash 函數(shù)來(lái)平衡各個(gè)節(jié)點(diǎn)的訪問(wèn)負(fù)載:
其中,request_number 是并發(fā)訪問(wèn)請(qǐng)求的數(shù)量,node_number 是分布式集群中節(jié)點(diǎn)的數(shù)量,通過(guò)hash 函數(shù)進(jìn)行取模運(yùn)算后,可以將查詢(xún)請(qǐng)求平均地分發(fā)給不同的節(jié)點(diǎn)處理。
分布式環(huán)境下的語(yǔ)義擴(kuò)展查詢(xún)方法的詳細(xì)步驟如算法1 所示,首先利用語(yǔ)義查詢(xún)擴(kuò)展算法計(jì)算出擴(kuò)展關(guān)鍵詞,將擴(kuò)展關(guān)鍵詞加入查詢(xún)表達(dá)式中。隨后利用哈希函數(shù)得出遴選節(jié)點(diǎn),系統(tǒng)向遴選節(jié)點(diǎn)中發(fā)送查詢(xún)請(qǐng)求,遴選節(jié)點(diǎn)負(fù)責(zé)向其他節(jié)點(diǎn)轉(zhuǎn)發(fā)查詢(xún)請(qǐng)求,如果其他節(jié)點(diǎn)中的數(shù)據(jù)塊與遴選節(jié)點(diǎn)中的不同,則對(duì)當(dāng)前節(jié)點(diǎn)中的索引文件進(jìn)行搜索,并將搜索結(jié)果返回給遴選節(jié)點(diǎn)。遴選節(jié)點(diǎn)在接收到所有的搜索結(jié)果后,對(duì)搜索結(jié)果合并和去重,使用SimRank 排序算法對(duì)搜索結(jié)果排序,返回搜索結(jié)果給用戶。
實(shí)驗(yàn)中,對(duì)比集中式與分布式環(huán)境下的系統(tǒng)處理能力,實(shí)驗(yàn)環(huán)境配置如下:
1)集中式環(huán)境:CPU:AMD A8-7100 Raadeon R5四核1.80 GHz;內(nèi)存:4.00 GB;硬盤(pán):HGST HTS 725050A7E630,7200 轉(zhuǎn)/min,500 GB;操作系統(tǒng):Windows8。
算法1 并行語(yǔ)義查詢(xún)算法
2)分布式環(huán)境:選擇1 臺(tái)Namenode 節(jié)點(diǎn),3 臺(tái)Datanode 節(jié)點(diǎn):主節(jié)點(diǎn)CPU:英特爾單核2.60 GHz,主節(jié)點(diǎn)內(nèi)存:1 G,從節(jié)點(diǎn)CPU:英特爾雙核3.20 GHz,從節(jié)點(diǎn)內(nèi)存:2 G;操作系統(tǒng):Ubuntu 12.04,Hadoop:Hadoop 2.1.0,JDK 環(huán)境:jdk 1.7,開(kāi)發(fā)IDE:My-Eclipse10。
《水利公文主題詞表》的主表中收錄主題詞1 994條,分為18 個(gè)范疇編排,附表收錄了主題詞570 條。通過(guò)運(yùn)行自動(dòng)化構(gòu)建算法,將《水利公文主題詞表》轉(zhuǎn)譯為OWL 語(yǔ)言描述的本體。
本實(shí)驗(yàn)采用調(diào)整權(quán)值模擬與10 位領(lǐng)域?qū)<医?jīng)驗(yàn)判斷的相似性進(jìn)行比較,通過(guò)選擇實(shí)驗(yàn)得到最優(yōu)組作為相似度計(jì)算模型的參數(shù)。從過(guò)往的實(shí)驗(yàn)結(jié)果可以得出,當(dāng)α=0.45,β=0.35,λ=0.2 時(shí),基于本體的相似度計(jì)算值與領(lǐng)域?qū)<夜浪愕闹档恼`差值最小。因此可以設(shè)置相似度計(jì)算公式中的參數(shù)值為α=0.45,β=0.35,λ=0.2,所以基于本體的相似度計(jì)算公式可以描述為:
本實(shí)驗(yàn)采用的元數(shù)據(jù)數(shù)據(jù)集,按照規(guī)模可以分為:10 萬(wàn)、30 萬(wàn)、50 萬(wàn)、100 萬(wàn)、300 萬(wàn)和500 萬(wàn),數(shù)據(jù)集取自水利衛(wèi)星數(shù)據(jù)共享平臺(tái)流域機(jī)構(gòu)、典型省級(jí)信息資源目錄集成與服務(wù)系統(tǒng)開(kāi)發(fā)項(xiàng)目的數(shù)據(jù)集以及第一次全國(guó)水利數(shù)據(jù)普查數(shù)據(jù)庫(kù)。
1)索引的創(chuàng)建。
本實(shí)驗(yàn)設(shè)置1 個(gè)Namenode 節(jié)點(diǎn),3 個(gè)Datanode節(jié)點(diǎn),3 個(gè)map 任務(wù)與3 個(gè)reduce 任務(wù)的情況下,驗(yàn)證隨著數(shù)據(jù)量的增加,對(duì)本地和并行方式下建立索引的效率影響,以及隨著節(jié)點(diǎn)數(shù)量的增多,對(duì)并行方式下建立索引的效率影響。本地構(gòu)建索引與并行方式構(gòu)建索引性能對(duì)比實(shí)驗(yàn)結(jié)果如圖4 所示。
圖4 本地與并行方式建立索引效率對(duì)比圖
從圖4 中可以發(fā)現(xiàn),當(dāng)數(shù)據(jù)量小的時(shí)候,本地方式的處理效率更高些,因?yàn)檫\(yùn)行MapReduce 程序時(shí)會(huì)有一定開(kāi)銷(xiāo),但當(dāng)數(shù)據(jù)量到達(dá)5 000 時(shí),并行處理方式的效率則開(kāi)始高于本地的方式,而隨著數(shù)據(jù)量增大,并行處理方式的優(yōu)勢(shì)更為明顯。因此可以得知并行處理的效率在處理大數(shù)據(jù)量時(shí)具有一定的優(yōu)勢(shì)。
2)分布式語(yǔ)義擴(kuò)展查詢(xún)。
本實(shí)驗(yàn)?zāi)M用戶并發(fā)訪問(wèn)請(qǐng)求,對(duì)總的數(shù)據(jù)量在20 G 的總索引文件進(jìn)行分布式搜索實(shí)驗(yàn),實(shí)驗(yàn)設(shè)置1個(gè)Namenode 節(jié)點(diǎn),3 個(gè)Datanode 節(jié)點(diǎn),3 個(gè)map 任務(wù)與3 個(gè)reduce 任務(wù)的情況下,并發(fā)請(qǐng)求數(shù)分別設(shè)置為1 萬(wàn)、5 萬(wàn)、10 萬(wàn)、20 萬(wàn)、50 萬(wàn)、100 萬(wàn),測(cè)試高并發(fā)訪問(wèn)請(qǐng)求,分析傳統(tǒng)單機(jī)環(huán)境下與本文提出的查詢(xún)模型下的查詢(xún)效果對(duì)比,實(shí)驗(yàn)結(jié)果如圖5 所示。
圖5 查詢(xún)效率對(duì)比圖
從圖5 可以看出,本文提出的方法在并發(fā)訪問(wèn)量增加的過(guò)程中,查詢(xún)時(shí)間增加得不是很明顯,能夠應(yīng)對(duì)較大的訪問(wèn)并發(fā)量。而在傳統(tǒng)的集中式環(huán)境下,隨著并發(fā)訪問(wèn)量的增加,查詢(xún)時(shí)間也隨之增大。實(shí)驗(yàn)對(duì)比表明了本文提出的方法,在應(yīng)對(duì)大規(guī)模訪問(wèn)請(qǐng)求時(shí),系統(tǒng)整體的處理時(shí)間沒(méi)有出現(xiàn)特別大的波動(dòng)。因?yàn)椴捎昧薶ash 方法將訪問(wèn)請(qǐng)求平均分發(fā)到不同節(jié)點(diǎn),使得系統(tǒng)能夠保持負(fù)載均衡。
本文采用基于水利領(lǐng)域本體進(jìn)行關(guān)鍵詞擴(kuò)展的方式來(lái)構(gòu)建語(yǔ)義搜索,結(jié)合推理與計(jì)算本體間相似度的方式來(lái)擴(kuò)展查詢(xún)關(guān)鍵詞,修改了Lucene 中的排序公式,將詞匯的權(quán)值作為語(yǔ)義信息加入到搜索結(jié)果的排序中,使得搜索排序結(jié)構(gòu)更符合用戶的搜索意圖,提高了查全率與查準(zhǔn)率。與此同時(shí),通過(guò)修改SequenceFile 的結(jié)構(gòu),將元數(shù)據(jù)的相關(guān)信息合并到SequenceFile 中,作為MapReduce 的輸入,并行地解析XML 元數(shù)據(jù)與建立索引。解決了傳統(tǒng)集中式環(huán)境下對(duì)水利元數(shù)據(jù)建立索引存在的性能瓶頸,并提出分布式環(huán)境下語(yǔ)義擴(kuò)展查詢(xún)的處理模型,解決了分布式環(huán)境下語(yǔ)義搜索的問(wèn)題。但是本文主要考慮了關(guān)鍵詞或者關(guān)鍵詞的組合查詢(xún),而針對(duì)更復(fù)雜的查詢(xún),如范圍查詢(xún)等,考慮得并不是很充分,這也是下一步要解決的問(wèn)題。
[1]水利部水利信息化工作領(lǐng)導(dǎo)小組辦公室.2012 年度中國(guó)水利信息化發(fā)展報(bào)告[M].北京:中國(guó)水利水電出版社,2013.
[2]馮鈞,唐志賢,朱躍龍,等.水利信息資源目錄服務(wù)元數(shù)據(jù)定義研究[J].水利信息化,2011(S1):19-22.
[3]Guha R,McCool R,Miller E.Semantic search[C]// Proceedings of the 12th International Conference on WorldWide Web.ACM,2003:700-709.
[4]Yu Xuejun,Lv Jing.Keywords semantic extension in semantic search model[C]// International Conference on Computer,Networks and Communication Engineering (ICCNCE 2013).Atlantis Press,2013.
[5]Armentano M G,Godoy D,Campo M,et al.NLP-based faceted search:Experience in the development of a science and technology search engine[J].Expert Systems with Applications,2014,41(6):2886-2896.
[6]Tran T,Cimiano P,Rudolph S,et al.Ontology-based interpretation of keywords for semantic search[M]// The Semantic Web.Springer Berlin Heidelberg,2007:523-536.
[7]Qiu Yonggang,F(xiàn)rei H P.Concept based query expansion[C]// Proceedings of the 16th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval.ACM,1993:160-169.
[8]Attar R,F(xiàn)raenkel A S.Local feedback in full-text retrieval systems[J].Journal of the ACM (JACM),1977,24(3):397-417.
[9]Mena E,Illarramendi A,Kashyap V,et al.OBSERVER:An approach for query processing in global information systems based on interoperation across pre-existing ontologies[J].Distributed and Parallel Databases,2000,8(2):223-271.
[10]Khatchadourian S,Consens M P,Siméon J.Having a Chu-QL at XML on the Cloud[C]// A.Mendelzon International Workshop(AMW).2011.
[11]Shah B,Rao P R,Moon B,et al.A data parallel algorithm for XML DOM parsing[M]// Database and XML Technologies.Springer Berlin Heidelberg,2009:75-90.
[12]魏永山,張峰,陳欣,等.一種云計(jì)算環(huán)境下的XML 查詢(xún)數(shù)據(jù)服務(wù)的優(yōu)化方法[J].計(jì)算機(jī)工程與科學(xué),2013,35(6):30-36.
[13]Rada R,Mili H,Bichnell E,et al.Development and application of a metricon semantic nets[J].IEEE Transactions on Systems,Man and Cybernetics,1989,9(1):17-30.
[14]Wu Zhibiao,Palmer M.Verb semantics and lexical selection[C]// Proceedings of the 32nd Annual Meeting of the Association for Computational Linguistics.1994:133-138.
[15]韓欣,樊永生,馬春森,等.基于樹(shù)狀結(jié)構(gòu)的語(yǔ)義相似度計(jì)算方法分析[J].微電子學(xué)與計(jì)算機(jī),2012,29(5):38-41.
[16]Choi I,Kim M.Topic distillation using hierarchy concept tree[C]// Proceedings of the 26th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval.2003:371-372.
[17]曹叡,吳玲達(dá).一種改進(jìn)的領(lǐng)域本體語(yǔ)義相似度計(jì)算方法[J].微電子學(xué)與計(jì)算機(jī),2014,31(8):109-114.