段壽建,夏幼明,甘健侯
摘 要:基于本體的語義檢索利用本體構(gòu)建概念空間,可以處理概念之間的關(guān)系,具有語義處理能力?;诒倔w的語義檢索符合人類的思維習(xí)慣,并且克服傳統(tǒng)檢索方法造成的信息冗余或信息丟失的缺點(diǎn),其查詢效果更為合理。這里結(jié)合本體和Lucene,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)語義檢索模型,與傳統(tǒng)的全文檢索系統(tǒng)進(jìn)行比對分析,說明了其有效性和可行性。
關(guān)鍵詞:本體;語義檢索;Lucene;用戶查詢
中圖分類號:TP182文獻(xiàn)標(biāo)識碼:B
文章編號:1004-373X(2009)12-036-03
Design and Implementation of Semantic Retrieval Model Based on Ontology and Lucene
DUAN Shoujian1,XIA Youming2,GAN Jianhou2
(1.Baoshan Teachers College,Baoshan,678000,China;
2.College of Computer Science and Information Technology,Yunnan Normal University,Kunming,650092,China)
Abstract:Semantic retrieval based on ontology to construct the concept space by using ontology,it has a certain semantic processing power and better natural language interface,and can also deal with the concept of relationship.Semantic retrieval based on ontology more in line with the human habit of thinking,it can overcome the traditional method of retrieval of the information lost or redundant information,the characteristics of their query results can be more reasonable.A semantic retrieval model based on ontology and Lucene is designed and implemented,comparing to traditional full-text retrieval system,its effectiveness and feasibility are shown.
Keywords:ontology;semantic retrieval;Lucene;user query
0 引 言
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,對計(jì)算機(jī)信息存儲、傳輸和處理能力的要求迅速增長,對海量信息的檢索與利用成為當(dāng)前一個(gè)重要研究和應(yīng)用領(lǐng)域。如何解決好諸如信息組織、知識表示、機(jī)器理解、人機(jī)交互等問題,對于提高信息利用的效率,是非常重要和迫切的。近年來,語義檢索的提出為解決這些問題提供了契機(jī),語義檢索是把信息檢索與人工智能技術(shù)、自然語言理解技術(shù)相結(jié)合進(jìn)行檢索,它的核心是基于概念的檢索匹配機(jī)制?,F(xiàn)在普遍認(rèn)同的觀點(diǎn)是,語義檢索技術(shù)將是支撐下一代互聯(lián)網(wǎng)的關(guān)鍵技術(shù)[1]。語義檢索是一種基于知識、語義上的分析檢索,是在理解自然語言、計(jì)算語言學(xué)發(fā)展的基礎(chǔ)上產(chǎn)生的,由知識庫和邏輯推理系統(tǒng)支持,并且在檢索的查準(zhǔn)率和查全率上都能較好地滿足用戶的檢索要求,從語義理解的角度分析信息對象與檢索者的檢索請求?;诒倔w的語義檢索更符合人類的思維習(xí)慣,它克服了傳統(tǒng)信息檢索方法造成的信息冗余或信息丟失的缺點(diǎn),其查詢效果更為合理。
1 基于本體和Lucene的語義檢索模型設(shè)計(jì)
基于本體的信息檢索的基本設(shè)計(jì)思想可以總結(jié)如下[2]:
(1) 在領(lǐng)域?qū)<业膸椭?建立相關(guān)領(lǐng)域的本體;
(2) 選擇專業(yè)領(lǐng)域有較高權(quán)威性的專業(yè)網(wǎng)站作為信息檢索的起點(diǎn),根據(jù)寬度、深度優(yōu)先或啟發(fā)式的信息獲取算法在Web上利用網(wǎng)絡(luò)爬蟲循環(huán)收集信息(也可以利用本地信息);
(3) 從用戶檢索界面獲取初始查詢集合,通過基于本體的查詢擴(kuò)展,生成擴(kuò)展查詢詞及權(quán)重集合,提交給檢索引擎;
(4) 檢索的結(jié)果通過排序,返回給用戶。
根據(jù)語義檢索系統(tǒng)的設(shè)計(jì)目標(biāo)和基于本體的信息檢索系統(tǒng)的設(shè)計(jì)思路,提出一個(gè)基于本體和Lucene的語義檢索系統(tǒng)模型,如圖1所示。
基于本體和Lucene的語義檢索系統(tǒng)模型共分成了4個(gè)模塊:本體建立與管理模塊、信息獲取模塊、Lucene檢索引擎模塊、用戶查詢擴(kuò)展和結(jié)果反饋模塊。
1.1 本體建立與管理模塊
本體是語義檢索系統(tǒng)的信息組織框架,在查詢擴(kuò)展和查詢結(jié)果排序上都需要以本體為基本依據(jù),因此在構(gòu)建基于本體的語義檢索系統(tǒng)時(shí),首先需要在領(lǐng)域?qū)<液椭R工程師的協(xié)助下構(gòu)建合理的領(lǐng)域本體。
該模型的本體可以是單個(gè)常識本體或領(lǐng)域本體,也可以是多個(gè)本體的組合。常識本體用來描述在現(xiàn)實(shí)世界中公認(rèn)的詞匯和詞匯間的語義聯(lián)系,現(xiàn)在常用的常識本體包括WordNet和知網(wǎng)(HowNet)等。建立領(lǐng)域本體是一個(gè)嚴(yán)謹(jǐn)?shù)倪^程,領(lǐng)域?qū)<铱梢员M可能全面地涵蓋領(lǐng)域內(nèi)的重要概念和關(guān)系,以及如何將這些關(guān)系表達(dá)清楚;知識工程師則通過本體管理工具,依照領(lǐng)域?qū)<业拿枋鼋⒈倔w。本體在建立好之后需根據(jù)領(lǐng)域研究的不斷深入而不斷改變,因此在建立了基本的領(lǐng)域本體后要對本體進(jìn)行維護(hù),這個(gè)步驟通常分為5步:資源收集、概念整理、關(guān)系整理、精煉、評估[3]。從領(lǐng)域本體的建立過程可以看到,領(lǐng)域本體是建立在領(lǐng)域概念及概念之間抽象關(guān)系的基礎(chǔ)上,不依賴于具體的軟件而存在,從而可以成為面向該領(lǐng)域的通用模型,具有極高的可重用性,方便在其之上進(jìn)行開發(fā)和應(yīng)用。
圖1 基于本體和Lucene的語義檢索系統(tǒng)模型
1.2 信息獲取模塊
文檔信息庫是信息檢索系統(tǒng)的基礎(chǔ)設(shè)施之一。在檢索信息時(shí),首先要確保信息庫中存在足夠多的可供檢索的信息,然后才能考慮如何有效的檢索。
在該模型中,除了考慮網(wǎng)絡(luò)資料外,還可以把本地資料,如Word,PDF等文件通過處理,可加入到文檔信息庫中。因此,該模型也可以用于本地資源的檢索中,如數(shù)字圖書館、企業(yè)內(nèi)部信息等中小規(guī)模信息檢索的系統(tǒng)中。
1.3 Lucene檢索引擎模塊
Lucene[4]是一個(gè)高性能、可擴(kuò)展的信息檢索工具庫。人們可以把它融入到應(yīng)用程序中,以增加索引和搜索功能。Lucene是一個(gè)純Java實(shí)現(xiàn)的成熟、自由、開源的軟件項(xiàng)目,它用簡單易用的API隱藏了復(fù)雜的索引和搜索操作的實(shí)現(xiàn)過程,因此可以使用應(yīng)用程序?qū)W⒂谧陨淼臉I(yè)務(wù)領(lǐng)域。基于Lucene的檢索引擎提供了如下功能:為文檔庫建立索引,生成索引庫,根據(jù)用戶的檢索要求對索引庫進(jìn)行查詢,并將查詢的結(jié)果進(jìn)行排序后返回給用戶。
1.4 用戶查詢擴(kuò)展和結(jié)果反饋模塊
查詢擴(kuò)展指在本體的支持下,把與原查詢相關(guān)的詞語或者與原查詢語義相關(guān)聯(lián)的概念添加到原查詢,得到比原查詢更長的新查詢;然后檢索文檔,以改善信息檢索的查全率和查準(zhǔn)率,解決信息檢索領(lǐng)域長期困擾的詞不匹配問題,彌補(bǔ)用戶查詢信息不足的缺陷。查詢擴(kuò)展技術(shù)是指實(shí)現(xiàn)查詢擴(kuò)展的方法和手段,其核心問題是如何設(shè)計(jì)和利用擴(kuò)展詞的來源[5]。在該模型中,語義查詢擴(kuò)展是通過領(lǐng)域本體實(shí)現(xiàn)的,其通過量化本體中概念間的關(guān)聯(lián)程度,然后按照關(guān)聯(lián)程度決定擴(kuò)展范圍。查詢結(jié)果處理主要包括查詢結(jié)果的排序和顯示方式定制。查詢結(jié)果的排序算法對信息檢索系統(tǒng)至關(guān)重要,一個(gè)好的排序算法是搜索引擎成功的保證,直接決定了查詢結(jié)果對用戶的有用性和重要性。
2 基于本體和Lucene的語義檢索系統(tǒng)的實(shí)現(xiàn)
為了驗(yàn)證提出的基于本體和Lucene的語義檢索模型的有效性,本文實(shí)現(xiàn)了語義檢索原型實(shí)驗(yàn)系統(tǒng)。原型實(shí)驗(yàn)系統(tǒng)以計(jì)算機(jī)“軟件開發(fā)”領(lǐng)域?yàn)槔?該系統(tǒng)在計(jì)算機(jī)“軟件開發(fā)”領(lǐng)域本體的支持下,對“軟件開發(fā)”相關(guān)的“知識”、“圖書”、“軟件”方面的文檔進(jìn)行檢索。對比語義檢索結(jié)果和傳統(tǒng)的信息檢索的結(jié)果,證明了基于本體和Lucene的語義檢索模型的有效性。
2.1 系統(tǒng)開發(fā)平臺及工具
基于本體的語義檢索原型實(shí)驗(yàn)系統(tǒng)在Windows XP平臺中,利用JBuilder 2006和Microsoft SQL Server 2000開發(fā)。開發(fā)中使用的開發(fā)工具包括:Protégé(用于領(lǐng)域本體的創(chuàng)建與維護(hù)),RacerPro(用于領(lǐng)域本體的一致性檢測,類層次關(guān)系推理,等價(jià)類推理),Jena(用于本體文件的解析與操作)和Lucene(用于基于關(guān)鍵字的全文檢索)。
2.2 本體建立與管理模塊的實(shí)現(xiàn)
在“軟件開發(fā)”創(chuàng)建的本體中,參考了ODP(Open Directory Project)和領(lǐng)域?qū)<业囊庖?主要考慮了“程序設(shè)計(jì)語言”、“數(shù)據(jù)庫”、“軟件開發(fā)環(huán)境”三個(gè)方面。本體描述語言使用OWL-DL,利用Protégé建立“軟件開發(fā)”領(lǐng)域本體?!败浖_發(fā)”領(lǐng)域本體創(chuàng)建完成后,使用RacerPro對領(lǐng)域本體的一致性進(jìn)行檢測,并進(jìn)行類層次推理和等價(jià)類推理。
2.3 信息獲取模塊的實(shí)現(xiàn)
原型實(shí)驗(yàn)系統(tǒng)實(shí)現(xiàn)對“軟件開發(fā)”相關(guān)的“知識”、“圖書”、“軟件”方面的文檔進(jìn)行檢索,利用網(wǎng)絡(luò)爬蟲在網(wǎng)上收集了與“軟件開發(fā)”相關(guān)的知識、圖書和軟件介紹文本信息作為檢索系統(tǒng)的文檔庫。
2.4 Lucene檢索引擎模塊的實(shí)現(xiàn)
原型實(shí)驗(yàn)系統(tǒng)利用Lucene開發(fā)包為文檔庫建立索引。為文檔庫建立索引后,即可利用Lucene檢索引擎對文檔庫進(jìn)行基于關(guān)鍵字匹配的全文檢索。原型系統(tǒng)提供了2種查詢方式:一種是輸入查詢語句,通過分詞得到檢索詞;另一種是直接輸入檢索詞。全文檢索系統(tǒng)支持“AND”,“OR”和“NOT”關(guān)鍵詞來表示檢索詞間的邏輯關(guān)系。
2.5 用戶查詢擴(kuò)展和結(jié)果反饋模塊的實(shí)現(xiàn)
用戶查詢擴(kuò)展和結(jié)果反饋是基于本體語義檢索的關(guān)鍵模塊。對用戶的檢索詞進(jìn)行擴(kuò)展,需要領(lǐng)域本體的支持,因此在查詢擴(kuò)展之前需要有量化好的領(lǐng)域本體中概念間相似度和相關(guān)度的綜合值。領(lǐng)域本體中概念間相似度和相關(guān)度值的量化算法和公式參看參考文獻(xiàn)[6]。原型系統(tǒng)通過使用Jena開發(fā)包解析本體結(jié)構(gòu),計(jì)算出了綜合的概念相似度和相關(guān)度的值,存儲在SQL數(shù)據(jù)表中,檢索時(shí),能快速確定需要擴(kuò)展的詞表。
用戶輸入的初始檢索詞集合通過領(lǐng)域本體中綜合的概念相似度和相關(guān)度進(jìn)行擴(kuò)展,生成擴(kuò)展的檢索詞及相應(yīng)權(quán)重集合,并提交給Lucene檢索引擎,實(shí)現(xiàn)了語義檢索?;诒倔w和Lucene的語義檢索系統(tǒng)提供了2種查詢方式,一種是輸入查詢語句,通過分詞得到檢索詞,分詞時(shí)可以選擇“本體概念優(yōu)先”,則在分詞時(shí)優(yōu)先考慮本體中的詞匯,以獲得更多的擴(kuò)展;另一種是直接輸入檢索詞。語義檢索系統(tǒng)提供擴(kuò)展閾值參數(shù)的設(shè)置,在檢索時(shí)可以根據(jù)實(shí)現(xiàn)情況設(shè)置,閾值設(shè)置參看參考文獻(xiàn)[8]。
如在“軟件開發(fā)”本體中定義了“Prolog”和“LISP”是“人工智能語言”的子類?!叭斯ぶ悄苷Z言”是“高級語言”的子類,通過檢索可以看出,當(dāng)擴(kuò)展閾值為0.5時(shí),用語義檢索系統(tǒng)檢索“人工智能語言”,可以獲得關(guān)于“Prolog”,“LISP”和“高級語言”的相關(guān)文檔。
3 結(jié) 語
在對傳統(tǒng)信息檢索技術(shù)和本體技術(shù)研究的基礎(chǔ)上,提出并實(shí)現(xiàn)了一個(gè)基于本體和Lucene的語義檢索系統(tǒng)模型。該模型在傳統(tǒng)的信息檢索系統(tǒng)中加入本體,為信息檢索系統(tǒng)提供了語義支持。下一步工作是把基于本體和Lucene的語義檢索系統(tǒng)模型推廣應(yīng)用。
參考文獻(xiàn)
[1]曹茂誠,王英龍,王金棟,等.語義檢索技術(shù)研究[J].信息技術(shù)與信息化,2007(3):51-52.
[2]聶卉,龍朝暉.結(jié)合語義相似度與相關(guān)度的概念擴(kuò)展[J].情報(bào)學(xué)報(bào),2007,26(5):728-732.
[3]楊曉淼.一種基于本體的語義檢索模型[D].哈爾濱:哈爾濱工程大學(xué),2006.
[4]Lucene[EB/OL].http://lucene.apache.org,2007.
[5]黃名選,嚴(yán)小衛(wèi),張師超.查詢擴(kuò)展技術(shù)進(jìn)展與展望[J].計(jì)算機(jī)應(yīng)用與軟件,2007,24(11):1-4.
[6]段壽建.基于本體和語義檢索原型系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].昆明:云南師范大學(xué),2008.
[7]時(shí)念云,楊晨,滕良娟.黃頁檢索的語義實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2007,30(6):100-101,108.
[8]楊彩蓮,謝福鼎.基于潛在語義索引的中文文本聚類的研究[J].現(xiàn)代電子技術(shù),2005,28(10):58-59.