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