馬中杰,鄭 誠(chéng),蘇 喻
(安徽大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥230039)
目前檢索系統(tǒng)主要是基于關(guān)鍵字的全文匹配或者是按主題進(jìn)行分類。但是,前者僅僅是進(jìn)行字符串的匹配,不能對(duì)信息的語(yǔ)義進(jìn)行揭示;而主題分類對(duì)信息資源揭示的效率較低、深度有限。由于以上缺陷,人們致力于尋求一種新的檢索模式。本體作為一種能夠在語(yǔ)義和知識(shí)層次上描述信息系統(tǒng)的概念模型建模工具,具有良好的概念層次結(jié)構(gòu)和對(duì)邏輯推理的支持,于是人們便開(kāi)始了基于本體的語(yǔ)義檢索的嘗試,試圖利用本體的語(yǔ)義關(guān)系來(lái)提高檢索系統(tǒng)的語(yǔ)義智能,從而使信息檢索從目前基于關(guān)鍵字的層面提高到基于知識(shí)的層面。
根據(jù)處理網(wǎng)絡(luò)文檔方式的不同,基于本體的語(yǔ)義檢索分為基于知識(shí)庫(kù)的語(yǔ)義檢索和基于語(yǔ)義網(wǎng)文檔的語(yǔ)義檢索。前一種指盡可能維持現(xiàn)有文檔的內(nèi)容形式,利用知識(shí)表示的強(qiáng)大功能來(lái)建立龐大的知識(shí)庫(kù)。而后一種基于語(yǔ)義網(wǎng),語(yǔ)義網(wǎng)文檔是包含語(yǔ)義信息的文檔,能被軟件代理直接訪問(wèn),這種檢索方式代表著互聯(lián)網(wǎng)的發(fā)展方向。但是,要想以可支付的代價(jià)將現(xiàn)有網(wǎng)絡(luò)文檔轉(zhuǎn)換成語(yǔ)義網(wǎng)文檔是不太現(xiàn)實(shí)的,所以本文主要研究基于知識(shí)庫(kù)的語(yǔ)義檢索。
本體原本是哲學(xué)領(lǐng)域的一個(gè)概念,后來(lái)該概念被信息系統(tǒng)、知識(shí)系統(tǒng)等所借用,并迅速成為人們的研究熱點(diǎn)。有關(guān)本體概念,目前比較公認(rèn)的定義為“本體是共享概念模型的明確的形式化規(guī)范說(shuō)明”。該定義包含了4層含義:“概念模型”指通過(guò)抽象出客觀世界中一些現(xiàn)象的相關(guān)概念而得到的模型;“明確”指所使用的概念及其約束都有明確的定義;“形式化”指能被計(jì)算機(jī)所處理;“共享”指本體中體現(xiàn)的是共同認(rèn)可的知識(shí)。
為了讓計(jì)算機(jī)能夠?qū)π畔⒌恼Z(yǔ)義進(jìn)行處理,需要一定的編碼語(yǔ)言(例如RDF等)來(lái)表達(dá)本體的體系結(jié)構(gòu)。資源描述框架RDF(Resource Description Framework)定義了一個(gè)基本的數(shù)據(jù)模型,該模型包括了三種對(duì)象類型:資源(resources)、屬性(properties)、聲明(statements)。 資源可以是網(wǎng)頁(yè)、多媒體等,通常用URI來(lái)命名;屬性用來(lái)描述資源的一個(gè)特定方面、特征等;一個(gè)RDF的聲明就是一個(gè)資源和一個(gè)屬性加上這個(gè)屬性的取值所形成的集合。一個(gè)聲明由以下三部分組成:主語(yǔ)(subject)、謂語(yǔ)(predicate)、賓語(yǔ)(object)。
本體在語(yǔ)義檢索中的作用可概括為以下幾點(diǎn):
(1)本體為語(yǔ)義標(biāo)注和擴(kuò)展提供了標(biāo)準(zhǔn)的詞匯庫(kù);
(2)檢索中所進(jìn)行的推理工作必須在本體中進(jìn)行;
(3)本體可以明確領(lǐng)域假設(shè),使領(lǐng)域公理得到明確描述而達(dá)成共識(shí)。
本文提出的模型其基本設(shè)計(jì)思想如下:首先在領(lǐng)域?qū)<业膮⑴c下建立相應(yīng)領(lǐng)域的本體,然后把收集的數(shù)據(jù)信息參照已建立的本體,按規(guī)定的格式存儲(chǔ)在知識(shí)庫(kù)中,當(dāng)用戶檢索時(shí),按照本體把查詢請(qǐng)求轉(zhuǎn)換成規(guī)定的格式,并從知識(shí)庫(kù)中匹配出符合條件的文檔集,排序后返回給用戶。該模型的主要組成部分有用戶界面、領(lǐng)域本體、文檔集、知識(shí)庫(kù)等。其結(jié)構(gòu)關(guān)系如圖1所示。其實(shí)整個(gè)系統(tǒng)可劃分成虛線所示的三部分:基于本體的信息提取和語(yǔ)義標(biāo)注、基于知識(shí)庫(kù)的查詢請(qǐng)求處理和檢索模塊以及對(duì)檢索結(jié)果進(jìn)行排序。
在現(xiàn)有網(wǎng)絡(luò)下實(shí)現(xiàn)真正意義上的語(yǔ)義檢索,建立知識(shí)庫(kù)是必需的。知識(shí)庫(kù)是搜索代理進(jìn)行推理和知識(shí)積累的關(guān)鍵。通常某個(gè)領(lǐng)域的本體提供了該領(lǐng)域相應(yīng)的術(shù)語(yǔ)和概念,而知識(shí)庫(kù)就是利用這些術(shù)語(yǔ)和概念來(lái)表達(dá)現(xiàn)實(shí)或者虛擬世界的正確知識(shí)。例如一個(gè)醫(yī)學(xué)本體可能包含有“高血壓”、“糖尿病”等術(shù)語(yǔ)的定義,但它并不包含某一個(gè)具體病人的診斷結(jié)果,而這正好是知識(shí)庫(kù)所要表達(dá)的內(nèi)容。例如王小二患有高血壓,李四患有糖尿病等,在這個(gè)例子中高血壓、糖尿病就是本體的概念,而各個(gè)病人的實(shí)例(王小二、李四)及其病癥的描述就是知識(shí)庫(kù)要表達(dá)的內(nèi)容。
在信息檢索中為了提高檢索效率,必須對(duì)網(wǎng)絡(luò)上所存在的資源進(jìn)行預(yù)處理。信息提取就是首先對(duì)文檔集中的每篇文檔進(jìn)行詞匯分析,利用禁用詞表去掉文獻(xiàn)中的虛詞以及對(duì)檢索作用不大的詞、數(shù)字、字母、標(biāo)點(diǎn)符號(hào)等,僅保留具有實(shí)際意義的名詞、動(dòng)詞等,然后確定索引元素,并在本體中獲得能夠正確表達(dá)文檔內(nèi)容的概念性詞或詞組。
語(yǔ)義檢索即在一個(gè)知識(shí)庫(kù)中做邏輯判斷并推理,檢索的結(jié)果往往都是知識(shí)庫(kù)中的元組,但用戶需要的是提供相關(guān)文檔,這就需要通過(guò)明確、無(wú)隱蔽的標(biāo)注方式,把知識(shí)庫(kù)中的概念、實(shí)例或者關(guān)系與那些描述它們的文檔關(guān)聯(lián)起來(lái),這就是語(yǔ)義標(biāo)注的功能。通常使用文檔—實(shí)例關(guān)聯(lián)表來(lái)存儲(chǔ)文檔和實(shí)例間的映射關(guān)系,這種關(guān)聯(lián)表也稱索引庫(kù),有了索引庫(kù)之后就可以通過(guò)查詢接口返回的元組實(shí)例獲得相應(yīng)的文檔鏈接。該部分的流程圖如圖2所示。
為了量化實(shí)例(instance)與文檔之間相關(guān)性的大小,有時(shí)還需要確定標(biāo)注的權(quán)重?,F(xiàn)在通用的算法是TFIDF算法,其計(jì)算公式為:
其中wij表示實(shí)例Ii在文檔Dj中的權(quán)重。D是全部文檔數(shù),Dw則是包含特征詞的文檔數(shù)。freqij表示實(shí)例Ii對(duì)應(yīng)的標(biāo)簽在文檔Dj中出現(xiàn)的頻率,max freqij表示在文檔 Dj中出現(xiàn)次數(shù)最多的實(shí)例的頻率。
當(dāng)用戶輸入檢索詞后,查詢請(qǐng)求處理模塊對(duì)查詢語(yǔ)句進(jìn)行分析,從中提取出能正確表達(dá)查詢語(yǔ)義的概念性詞或詞組。然后將其帶到本體中查找相應(yīng)的概念,并對(duì)概念進(jìn)行語(yǔ)義化處理,得到一個(gè)檢索式集合,再由檢索代理從知識(shí)庫(kù)中匹配出符合條件的元組集[1]。該部分主要包括三方面工作:(1)基于本體的語(yǔ)義查詢擴(kuò)展;(2)查詢語(yǔ)句的規(guī)范與重構(gòu);(3)信息檢索。
2.3.1 基于本體的語(yǔ)義查詢擴(kuò)展
據(jù)統(tǒng)計(jì),在信息檢索中,人們使用相同的詞來(lái)表達(dá)同一概念的概率不到20%,這就要求必須在用戶原查詢?cè)~的基礎(chǔ)上添加與之相關(guān)的詞,以解決一義多詞的問(wèn)題?;诒倔w的語(yǔ)義查詢擴(kuò)展就是借助本體的語(yǔ)義關(guān)系、層次結(jié)構(gòu)和推理機(jī)制對(duì)用戶的查詢實(shí)現(xiàn)語(yǔ)義上的擴(kuò)展。早在2003年,MAKI等人就提出了基于本體結(jié)構(gòu)進(jìn)行查詢擴(kuò)展。2004年張敏等又提出了基于語(yǔ)義關(guān)系查詢擴(kuò)展的文檔重構(gòu)方法[2]。
本文綜合了基于路徑和基于注釋兩種方法的優(yōu)點(diǎn),通過(guò)分析影響語(yǔ)義的因素,實(shí)現(xiàn)了一種基于語(yǔ)義相似度的查詢擴(kuò)展。其模型如圖3所示。
圖3 初始查詢?cè)~的擴(kuò)展及規(guī)范流程
語(yǔ)義相似度的值通常與概念間的距離、概念間的鏈接類型等有關(guān)。當(dāng)然不同類型的連接關(guān)系,如上位、下位、同義等,對(duì)概念語(yǔ)義關(guān)聯(lián)程度的貢獻(xiàn)也不同[3-4]。但在實(shí)際應(yīng)用中如果考慮大量的關(guān)系類型將會(huì)影響系統(tǒng)的性能,因此僅選取貢獻(xiàn)較大的幾種類型。本模型采用的關(guān)系類型及其權(quán)重分配方案如表1所示。
表1 關(guān)系類型和關(guān)系權(quán)重
綜合以上各種因素,語(yǔ)義相似度的計(jì)算公式如下:
其中Type(a,b)表示概念a、b之間的關(guān)系類型,其取值見(jiàn)表1。
其中out degree(b)表示擴(kuò)展概念b的出度。在本體的層次結(jié)構(gòu)中,如果某一局部概念的密度較大,則說(shuō)明對(duì)概念的細(xì)化也越大,概念也就更具代表性。
θ1、θ2、θ3為調(diào)節(jié)因子, 決定概念之間在本體層次樹(shù)中深度與廣度的影響,從而確定系統(tǒng)所需要的相似度,并且 θ1+θ2+θ3=1。
2.3.2 查詢語(yǔ)句的規(guī)范與重構(gòu)
根據(jù)圖3,擴(kuò)展后的用戶查詢?nèi)孕柽M(jìn)一步地規(guī)范,以判斷擴(kuò)展后的查詢?cè)~屬于三元組哪一部分并將其分別儲(chǔ)存于相應(yīng)的集合中。最后得到三個(gè)集合,分別為本體概念集S-set、個(gè)體實(shí)例集I-set和屬性集 P-set。這三個(gè)集合分別對(duì)應(yīng)于三元組的 Subject、Object和 Predicate,隨后分析概念之間以及概念與個(gè)體之間的關(guān)系,將所有可能產(chǎn)生的概念關(guān)聯(lián)都構(gòu)建成三元組模式的查詢語(yǔ)句提交檢索模塊。
2.3.3 信息檢索
經(jīng)過(guò)以上處理,信息檢索模塊接受的是具有一定檢索規(guī)范的結(jié)構(gòu)化查詢。為了提高查全率,本模塊首先根據(jù)用戶提供的檢索要求,基于知識(shí)庫(kù)進(jìn)行推理,這種推理是基于類層次和規(guī)則的,系統(tǒng)設(shè)計(jì)者可以根據(jù)具體需要?jiǎng)?chuàng)建適合的推理規(guī)則。之后僅需與知識(shí)庫(kù)中的信息進(jìn)行匹配,將滿足條件的元組選出。例如,有一個(gè)服裝領(lǐng)域的本體,對(duì)概念“服裝”存在一個(gè)標(biāo)簽名為“價(jià)格”的屬性??梢詣?chuàng)建這樣一條規(guī)則,如果價(jià)格大于5 000元,就認(rèn)為該衣服為高檔服裝。所以當(dāng)用戶查詢高檔服裝時(shí),就可以根據(jù)這條規(guī)則,將知識(shí)庫(kù)中滿足條件的實(shí)例返回。如果是基于關(guān)鍵字的檢索,就僅僅返回包含“高檔服裝”的網(wǎng)頁(yè),而遺漏掉那些不包含“高檔服裝”但滿足用戶需求的資源。
通過(guò)索引庫(kù)從文檔集中把文檔檢索出來(lái)之后,得到的是一系列無(wú)序文檔,在遞交給用戶之前需對(duì)文檔進(jìn)行排序。這就需要計(jì)算查詢與文檔之間的相關(guān)度。在語(yǔ)義標(biāo)注時(shí)曾講過(guò),為了量化實(shí)例與文檔之間的關(guān)聯(lián)程度,通過(guò)TF-IDF算法來(lái)確定實(shí)例的標(biāo)注權(quán)重,這樣文檔Dj就能被簡(jiǎn)化為實(shí)例的集合。令wij為實(shí)例Ii在文檔中的權(quán)重,則dj=(wi1…wim)。而查詢也可在同一空間里表示成查詢向量的形式(即 q=(q1…qm)),利用余弦定理就可以計(jì)算得到文檔與查詢的相關(guān)性:sim(Di,Q)=di×q/(|di|×|q|)。
為了驗(yàn)證系統(tǒng)的有效性,進(jìn)行了相關(guān)的實(shí)驗(yàn)。根據(jù)參考文獻(xiàn)[5]以及服飾行業(yè)專業(yè)詞典,建立了一個(gè)簡(jiǎn)單的服飾領(lǐng)域本體。利用斯坦福大學(xué)研制開(kāi)發(fā)的 Protégé 3.1.1構(gòu)建該領(lǐng)域本體,并通過(guò)在 Java中調(diào)用 Protégé OWL API中的方法,直接對(duì)建好的領(lǐng)域本體進(jìn)行操作。由于實(shí)驗(yàn)中很多工作需要手工完成,考慮到工作量大,僅從網(wǎng)上抓取100篇有關(guān)服飾方面的文檔組成文檔集。該系統(tǒng)中的知識(shí)庫(kù)采用一種十分簡(jiǎn)單的方法對(duì)Web上的資源進(jìn)行標(biāo)注,即在知識(shí)庫(kù)中手動(dòng)地添加指向Web上文檔的 URI。
實(shí)驗(yàn)中,當(dāng)輸入“上衣”時(shí),就可根據(jù)本體進(jìn)行擴(kuò)展。通過(guò)對(duì)幾次試驗(yàn)結(jié)果的分析發(fā)現(xiàn),將閾值設(shè)置為0.9、θ1=0.25、θ2=0.7、θ3=0.05 時(shí), 能夠得到較好的查全率和查準(zhǔn)率,這時(shí)查詢被擴(kuò)展為{上衣,背心,夾克,羽絨衣,牛仔夾克,襯衫},如果用戶的初始查詢?cè)~還包括“has-Brand”以及個(gè)體實(shí)例“adidas”,則查詢可構(gòu)建成如表 2所示的RDQL形式的查詢。
表2 查詢語(yǔ)句的重構(gòu)
檢索模塊將結(jié)構(gòu)化檢索條件與知識(shí)庫(kù)中RDF三元組進(jìn)行匹配,并返回匹配的所有元組,通過(guò)查找實(shí)例-文檔的索引庫(kù),返回?zé)o序文檔集。排序模塊對(duì)文檔排序后返回。其實(shí)驗(yàn)性能如圖4所示。
性能分析:
(1)查準(zhǔn)率。由于查詢擴(kuò)展和語(yǔ)義標(biāo)注等都是基于本體進(jìn)行的,這樣就明確了術(shù)語(yǔ)的選擇范圍,限制了對(duì)術(shù)語(yǔ)可能的解釋,可以很好地解決一詞多義的現(xiàn)象。
(2)查全率。在該系統(tǒng)模型中,由于增加了查詢語(yǔ)義擴(kuò)展,系統(tǒng)可以根據(jù)用戶提交的檢索詞推理出與原查詢相近或相關(guān)的詞加入查詢系統(tǒng),以提高檢索質(zhì)量。當(dāng)然,必須選擇合適的閾值和調(diào)節(jié)參數(shù)來(lái)控制擴(kuò)展的階數(shù),否則在提高查全率的同時(shí)查準(zhǔn)率將會(huì)受到影響。
通過(guò)實(shí)驗(yàn)可以看出,相對(duì)于傳統(tǒng)的檢索模型,該模型在查準(zhǔn)率方面有較明顯改善,查全率也幾乎相當(dāng)。但同時(shí)也應(yīng)該注意,系統(tǒng)的檢索性能直接取決于知識(shí)庫(kù)中信息的質(zhì)量及數(shù)量。當(dāng)用戶要查詢的內(nèi)容在知識(shí)庫(kù)中比較豐富、完善的時(shí)候,能得到較好的檢索效果。反之,該模型的檢索性能便比不上基于關(guān)鍵字的全文檢索性能,為了克服這種缺點(diǎn),有時(shí)需要把基于關(guān)鍵字的檢索整合進(jìn)來(lái),作為該模型的補(bǔ)充。
[1]張敏,宋睿華,馬少平.基于語(yǔ)義關(guān)系查詢擴(kuò)展的文檔重構(gòu)方法[J].計(jì)算機(jī)學(xué)報(bào),2004,27(10):1395-1401.
[2]郭承霞,王愛(ài)繼,陳慶海.基于領(lǐng)域本體的智能信息檢索模型研究[J].計(jì)算機(jī)科學(xué),2009,36(4A):101-102.
[3]聶卉.基于本體的查詢擴(kuò)展與規(guī)范[J].知識(shí)組織與知識(shí)管理,2007,3(148):35-38.
[4]熊忠陽(yáng),李春玲,張玉芳.一種基于領(lǐng)域本體的混合信息檢索模型[J].計(jì)算機(jī)工程,2008,34(21):68-70.
[5]王愛(ài)麗,朱欣娟.基于本體的服裝領(lǐng)域語(yǔ)義Web檢索方法[J].西安工程科技學(xué)院學(xué)報(bào),2007,21(4):489-493.