戴強
(內(nèi)蒙古大學(xué)鄂爾多斯學(xué)院電子信息工程系(鄂爾多斯應(yīng)用技術(shù)學(xué)院),鄂爾多斯 017000)
基于多本體的搜索引擎
戴強
(內(nèi)蒙古大學(xué)鄂爾多斯學(xué)院電子信息工程系(鄂爾多斯應(yīng)用技術(shù)學(xué)院),鄂爾多斯 017000)
近幾年互聯(lián)網(wǎng)發(fā)展迅速,網(wǎng)絡(luò)上的信息量呈現(xiàn)爆炸式的增長,我們在獲得大量的信息的同時卻發(fā)現(xiàn)想要在這些海量的信息中找到我們需要的內(nèi)容難度越來越大,傳統(tǒng)搜索引擎的檢索方式效率低下和準(zhǔn)確率較低的問題日益顯現(xiàn),而現(xiàn)在借助本體技術(shù)就可以提高信息檢索的效率和準(zhǔn)確率。
檢索;本體;搜索引擎
在互聯(lián)網(wǎng)發(fā)展極其迅速的今天,每一秒網(wǎng)絡(luò)上都會產(chǎn)生大量的信息,信息量爆炸式的增長直接導(dǎo)致了用戶尋找信息變得越來越困難。而目前Web信息檢索的方式主要分為兩種方式,基于分類目錄和基于關(guān)鍵詞的搜索。這兩種檢索方式雖然都可以搜索到信息,但是由于反饋給用戶的信息量太大,用戶在獲得信息的同時無法迅速找到自己想要的信息。這個問題產(chǎn)生的原因是計算機無法理解Web頁面中的內(nèi)容,在檢索過程中只要發(fā)現(xiàn)了與關(guān)鍵詞一樣的內(nèi)容就會將該頁面反饋給用戶,所以這樣的檢索方式直接導(dǎo)致了檢索效率低下和準(zhǔn)確率不高的問題。
近幾年本體技術(shù)的迅速發(fā)展,到目前為止已經(jīng)可以利用本體技術(shù)來提高信息檢索的效率了。
搜索引擎指的是能夠自動從互聯(lián)網(wǎng)上搜集信息,并且對信息進行整理,提供給用戶查詢的系統(tǒng)。搜索引擎發(fā)展至今只有短短的十幾年,但是到目前為止已經(jīng)發(fā)展到了第四代搜索引擎,是發(fā)展速度最快的互聯(lián)網(wǎng)產(chǎn)品。
第一代搜索引擎是基于分類目錄的檢索方式。在搜索引擎的首頁中是按照類別劃分的一些網(wǎng)址,也就是一個一個的分類目錄的網(wǎng)站,用戶可以通過瀏覽不同的分類目錄網(wǎng)站尋找到自己想要的信息。
第二代搜索引擎是基于文本檢索的。這一代的搜索引擎相較于上一代的搜索引擎有很大的改進。在查詢方式上,第二代搜索引擎是通過用戶輸入想要查詢的關(guān)鍵詞進行查詢的,當(dāng)用戶輸入了關(guān)鍵詞,系統(tǒng)會將這個關(guān)鍵詞提交給服務(wù)器,服務(wù)器通過查詢一些相關(guān)的信息后,將相關(guān)度較高的內(nèi)容返回給用戶。
第三代搜索引擎進入了整合分析的時代,這一代的搜索引擎利用了一些分析手段使得它表現(xiàn)的更加智能化。這一代的搜索引擎利用計算機程序分析網(wǎng)頁中的內(nèi)容以及和用戶搜索內(nèi)容的相關(guān)性,通過一系列的算法優(yōu)化了最后的結(jié)果。與上一代返回給用戶成千上萬的鏈接相比較,這一代的搜索結(jié)果更加精準(zhǔn)。
第四代搜索引擎是以用戶為中心的一代搜索引擎。具體表現(xiàn)在當(dāng)用戶查詢一個關(guān)鍵詞的時候會因為用戶所處的地理位置,時間的不同而返回不同的結(jié)果。這一代搜索引擎會利用用戶的搜索習(xí)慣構(gòu)建用戶特征,例如當(dāng)一個電子產(chǎn)品愛好者搜索關(guān)鍵詞“蘋果”的時候返回的結(jié)果大部分是蘋果的電子產(chǎn)品的一些信息,這種推測式的算法提供了更加人性化的檢索方式。一個搜索引擎應(yīng)該包括以下三個基本的功能:信息搜集、信息處理、信息查詢。信息搜集是指通過網(wǎng)絡(luò)爬蟲自動的在網(wǎng)絡(luò)上大量的搜集Web信息,網(wǎng)絡(luò)爬蟲定時的在互聯(lián)網(wǎng)上搜集信息能夠更新的Web信息庫,防止Web信息庫出現(xiàn)無效的鏈接。信息處理是將已經(jīng)從網(wǎng)絡(luò)上爬取的信息經(jīng)過整理建立數(shù)據(jù)庫,并將搜集的信息保存到數(shù)據(jù)庫中。信息查詢是指搜索引擎給用戶提供一個友好的訪問界面,用戶可以通過這個界面輸入用戶想要搜索的關(guān)鍵詞就可以訪問Web數(shù)據(jù)庫中的數(shù)據(jù),從而獲得用戶想要的是數(shù)據(jù)。
本體(Ontology)是一種描述術(shù)語及術(shù)語間關(guān)系的概念模型,嚴格意義上的本體既定義了術(shù)語也定義了術(shù)語之間的上下位關(guān)系。在基于多本體的搜索引擎中利用本體來描述一個特定的領(lǐng)域,例如利用本體來描述“計算機“這個領(lǐng)域。而本體中的術(shù)語是該領(lǐng)域中的重要概念,例如計算機中的硬件和軟件,對于”計算機“這個領(lǐng)域來說包含了硬件和軟件,這兩個是一種并列的關(guān)系,在硬件中又包含了主板、內(nèi)存條、顯卡等。在軟件中又包含了系統(tǒng)軟件和應(yīng)用軟件,進一步細分包括了殺毒軟件,游戲軟件等,這些術(shù)語和術(shù)語之間的關(guān)系就構(gòu)建了計算機領(lǐng)域本體。本體創(chuàng)建之后是可以隨時修改的,后期根據(jù)收集越來越多的概念和領(lǐng)域術(shù)語,添加到已經(jīng)創(chuàng)建好的實例本體中可以進一步的完善本體模型,進而實現(xiàn)多本體。
在加入本體之前需要搭建一個搜索引擎,由于開源軟件所具有的優(yōu)點所以選擇Ubuntu+Nutch+Tomcat+Eclipse+Protégé這樣的組合來搭建搜索引擎。Nutch是一款完全開源的Web搜索引擎,實驗利用Nutch來搭建主題搜索引擎,并且對它進行個性化的二次開發(fā)來構(gòu)建多本體的搜索引擎,由于完全開源所以不會受到任何商業(yè)限制。Nutch主要是通過爬蟲程序爬取大量的數(shù)據(jù)并且對爬取的數(shù)據(jù)建立索引,同時Nutch提供了一個友好的搜索界面,用戶通過搜索界面搜索關(guān)鍵詞就可以訪問數(shù)據(jù)庫中的數(shù)據(jù)。本文的開發(fā)平臺如表1所示。
表1 開發(fā)平臺
本文使用的本體是參考人工目錄DOMZ網(wǎng)站下計算機領(lǐng)域中的計算機網(wǎng)絡(luò)安全、數(shù)據(jù)和云計算而建立。在計算機領(lǐng)域分類中,建立相應(yīng)的計算機網(wǎng)絡(luò)安全,數(shù)據(jù),云計算本體。實驗所建立的計算機網(wǎng)絡(luò)安全,數(shù)據(jù),云計算的本體使用軟件Protege3.5創(chuàng)建如圖1所示。
圖1 Peotege創(chuàng)建本體
將制作的計算機網(wǎng)絡(luò)安全,數(shù)據(jù)和云計算本體添加在在Nutch中的Bentilmpl.java文件中,關(guān)鍵代碼如圖2所示。
圖2 關(guān)鍵代碼
信息獲取是通過DOMZ開放式目錄的中文頁面里的計算機網(wǎng)絡(luò)領(lǐng)域下隨機抽取URL作為URL集,將獲取的URL存入記事本文件urllist中作為Nutch搜索的入口。
首先要從 http://rdf.dmoz.org/rdf/content.rdf.u8.gz 下載名字為content.rdf.u8文件,使用utf-8編碼格式。下載完成后使用以下命令進行采集bin/nutch org.apache.nutch.tools.DmozParser content.rdf.u8-topic Top/Computers-subset 337> urls/urllist,DmozParser是用于采集Dmoz的插件。以上步驟完成后在content.rdf.u8文件中中隨機抽取URL地址,寫入到urllist文件中。,執(zhí)行如下命令進行數(shù)據(jù)爬取sudo bin/nutch crawl urllistdir localweb-depth 2-topN 100-threads 2,其中 urllist是要爬取頁面的地址,localweb是存儲爬取頁面的文件,depth表示的是網(wǎng)頁爬取深度,這里-depth 2表示爬取深度為2,topN 100表示每層最大爬取100個網(wǎng)頁,threads 2表示使用兩個線程來運行,爬取完成后生成數(shù)據(jù),索引文件數(shù)據(jù)庫如圖3。
圖3 索引文件
使用 Nutch抓取頁面完成后,安裝 Tomcat,將Nutch 部署到 Tomcat,用瀏覽器訪問 http://localhost:8080/nutchweb,進入搜索頁面進行搜索。網(wǎng)頁的搜索頁面是用戶的交互平臺,實驗使用JSP+Java實現(xiàn)了多本體搜索引擎的Web交互頁面,搜索引擎頁面如圖五。用戶可以通過搜索頁面輸入具體的關(guān)鍵詞點擊search按鈕進行搜索,系統(tǒng)會對輸入的關(guān)鍵詞進行分析,返回給用戶特定的信息。
圖4 搜索引擎界面
在采集完成URL后,執(zhí)行爬取命令進行數(shù)據(jù)采集,數(shù)據(jù)采集完成后對爬取的網(wǎng)頁進行索引,索引完成后就可以進行查詢。在如圖五的搜索界面輸入“云計算”“數(shù)據(jù)”關(guān)鍵詞,點擊search進行搜索,系統(tǒng)就會將”云計算“”數(shù)據(jù)“的相關(guān)信息返回給用戶。通過搜索結(jié)果發(fā)現(xiàn),在未加入本體時關(guān)鍵詞“云計算“的搜索結(jié)果是656條,關(guān)鍵詞”數(shù)據(jù)“的搜索結(jié)果為883條。搜索結(jié)果如圖5所示。
圖5 未加入本體時的“云計算““數(shù)據(jù)”搜索結(jié)果
初次搜索完成后,將使用軟件Protege3.5制作的本體加入到搜索引擎中,重新對關(guān)鍵詞“云計算“”數(shù)據(jù)“進行搜索,由于本體的技術(shù)的原因,系統(tǒng)不會將所有結(jié)果返回給用戶,而是將與搜索內(nèi)容相關(guān)度較高的內(nèi)容返回給用戶,通過搜索發(fā)現(xiàn)關(guān)鍵詞”數(shù)據(jù)“返回的結(jié)果為173條,關(guān)鍵詞“云計算”的搜索結(jié)果為131條,經(jīng)過本體技術(shù)處理后,返回結(jié)果明顯減少,減少了很多無用鏈接和死鏈接,檢索效果非常明顯。經(jīng)過本體技術(shù)處理的搜索結(jié)果如圖6所示。
圖6 經(jīng)過本體技術(shù)處理的搜索結(jié)果
實驗利用Nutch-1.2實現(xiàn)了搜索引擎,并且在此基礎(chǔ)上利用了本體技術(shù)實現(xiàn)了多本體的搜索引擎,通過對比搜索結(jié)果發(fā)現(xiàn)利用本體技術(shù)可以達到簡化搜索結(jié)果,使搜索結(jié)果更加精準(zhǔn),達到了此次實驗的實驗?zāi)康?。但是實驗也存在一定不足之處:第一本次實驗難以爬取網(wǎng)上全部資源,在內(nèi)容上有所欠缺。第二領(lǐng)域本體缺乏對所有領(lǐng)域的方法,在今后還需要在這方面進行加強,第三由于硬件設(shè)備的原因?qū)е孪到y(tǒng)運行時不流暢。希望以后將上述問題進行改進。
[1]蔡明,張體首.基于本體的搜索引擎研究[J].微計算機信息,2006,22(12-3):242-244.
[2]嚴春來.基于Nutch的個性化搜索引擎的研究與探討[J].電腦編程技巧與維護.2014:4-5
[3]張銳華.基于多信息素蟻群算法對個性化搜索引擎的改進[D].廣州:暨南大學(xué)信息科學(xué)技術(shù)學(xué)院,2013:13-24.
[4]潘雪峰,花貴春,梁斌.走進搜索引擎[M].北京:電子工業(yè)出版社,2012:2-12.
[5]王朝斌.金洪穎.趙剛.基于本體的搜索引擎研究_王朝斌[J].四川:西南師范大學(xué)學(xué)報,2010:382-385.
Search Engine Based on Multi-Ontology
DAI Qiang
(Department of Electronic Information Engineering,Ordos College,Inner Mongolia University(Ordos Institute of Technology),Ordos Inner Mongolia 017000)
With the development rapidly to Internet,the information increases explosively in Internet.We can get massive news.Meanwhile,it is increasingly complex to seek some information we need from these amounts of information.Obviously,the problem in retrieval mode of traditional Search Engines is inefficiency and inaccurate.Nevertheless,we can improve the efficiency and accuracy of message retrieval by using Ontology Technology nowadays.
Search;Ontology;Search Engine
1007-1423(2017)32-0041-04
10.3969/j.issn.1007-1423.2017.32.010
戴強(1994-),男,河北懷安人,本科,專業(yè)方向為電子信息科學(xué)與技術(shù)
2017-08-15
2017-10-20