国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Web的DCI垂直搜索引擎的研究與設(shè)計(jì)

2013-07-03 00:45吳潔明冀單單韓云輝
關(guān)鍵詞:搜索引擎網(wǎng)頁檢索

吳潔明,冀單單,韓云輝

(北方工業(yè)大學(xué) 信息工程學(xué)院,北京 100144)

0 引 言

在互聯(lián)網(wǎng)飛速發(fā)展的今天,互聯(lián)網(wǎng)上的信息更是浩如煙海,據(jù)互聯(lián)網(wǎng)數(shù)據(jù)中心于2010年的一則報(bào)道,2010年底全球數(shù)字信息總量將達(dá)到1.2ZB,預(yù)計(jì)到2020年這個數(shù)字將達(dá)到3.5ZB,其增長速度超過摩爾定律[1]。針對海量的數(shù)字信息,如何快速準(zhǔn)確的獲得有用的信息成為研究的重點(diǎn)。基于國際數(shù)字出版領(lǐng)域認(rèn)可度較高的資源定位解析方案是美國出版者協(xié)會于1988年制定的數(shù)字對象唯一標(biāo)識符DOI(Digital Object Identifier)標(biāo)準(zhǔn),中國版權(quán)保護(hù)中心在深入研究國際現(xiàn)有的版權(quán)保護(hù)技術(shù)、相關(guān)的法規(guī)和標(biāo)準(zhǔn)后,結(jié)合數(shù)字資源出版服務(wù)領(lǐng)域的發(fā)展趨勢,提出了數(shù)字作品版權(quán)唯一標(biāo)識符(DCI),用于解決數(shù)字作品產(chǎn)業(yè)鏈中各個參與者的利益分享、技術(shù)創(chuàng)新和高效的維權(quán)機(jī)制[2]。目前,國內(nèi)對于DCI的研究處于初級階段,本文就是圍繞這一問題,在Lucene開源技術(shù)、數(shù)據(jù)采集、信息抽取和索引搜索等基礎(chǔ)上,設(shè)計(jì)實(shí)現(xiàn)用于解決互聯(lián)網(wǎng)上海量DCI數(shù)據(jù)的垂直搜索引擎。

1 搜索引擎相關(guān)概述

1.1 垂直搜索引擎

根據(jù)數(shù)據(jù)收錄范圍不同,將搜索引擎分為通用搜索引擎和垂直搜索引擎。最常見的通用搜索引擎有:百度、Google和搜狗等。垂直搜索引擎是針對某些特定領(lǐng)域的專業(yè)搜索引擎,是搜索引擎的細(xì)分和延伸,是對某種專業(yè)信息的整合,是針對某一特定領(lǐng)域、某一特定人群或某一特定需求,提供有一定價(jià)值的信息和搜索服務(wù),準(zhǔn)確搜索出用戶所需要的信息。垂直搜索引擎的特點(diǎn)就是“專、精、深”,且具有行業(yè)色彩[3]。由于垂直搜索引擎?zhèn)戎刈约邯?dú)有專業(yè)信息的搜索,可以專注于自己的特長和核心技術(shù),采用更有效的信息采集策略,保證信息技術(shù)的及時更新。因此在專業(yè)信息方面,垂直搜索引擎比通用搜索引擎有很明顯的優(yōu)勢,常見的垂直搜索引擎有:汽車垂直搜索引擎、旅游垂直搜索引擎等。

1.2 Heritrix概述

Heritrix是用Java語言開發(fā)的開源網(wǎng)絡(luò)爬蟲框架,采取深度遍歷網(wǎng)站的資源數(shù)據(jù),將資源數(shù)據(jù)采集保存到本地,分析采集到的每一個有效的URL 地址,并提交HTTP 請求,從而獲得相應(yīng)的結(jié)果,最后生成本地文件和日志信息。Heritrix在抓取過程中可以用來獲取完整的、精確的站點(diǎn)內(nèi)容的復(fù)制,將抓取的內(nèi)容保存到本地而不做任何修改,數(shù)據(jù)采集結(jié)構(gòu)如圖1所示,Heritrix的優(yōu)點(diǎn)在于它的可擴(kuò)展性和靈活性。

圖1 數(shù)據(jù)采集結(jié)構(gòu)

1.3 Lucene概述

Lucene是跨平臺的用Java語言開發(fā)的一個開放源碼的全文檢索工具包。Lucene最初由Doug Cutting編寫,目的是為軟件開發(fā)人員提供簡單易用的應(yīng)用程序接口,通過重載Searcher類、Analyzer類以及增加爬蟲系統(tǒng)等對象實(shí)現(xiàn)一個完整的搜索引擎系統(tǒng)[4]。關(guān)于Lucene的項(xiàng)目主要有:郵件列表管理系統(tǒng)Eyebrows中的檢索和歸檔、基于Web的論壇系統(tǒng)Jive和Eclipse的全文檢索部分等。Lucene的有點(diǎn)主要有:索引文件獨(dú)立于應(yīng)用系統(tǒng),采用倒排索引技術(shù)建立索引文件,提供豐富強(qiáng)大的API接口,如提供布爾查詢、模糊查詢和分組查詢等,其結(jié)構(gòu)如圖2所示。

2 搜索引擎設(shè)計(jì)

2.1 DCI搜索引擎結(jié)構(gòu)

基于Web的DCI垂直搜索引擎結(jié)構(gòu)如圖3所示,采用的技術(shù)主要包括:數(shù)據(jù)采集、網(wǎng)頁信息抽取、索引器、檢索器等。

如圖3所示,DCI搜索引擎核心模塊包括:數(shù)據(jù)采集、網(wǎng)頁信息抽取、索引器和檢索器等。

(1)數(shù)據(jù)采集:采用網(wǎng)絡(luò)爬蟲技術(shù)進(jìn)行數(shù)據(jù)的采集,采用廣度優(yōu)先算法,采集處理URL鏈接,采集完的數(shù)據(jù)保存在本地文件中;

(2)網(wǎng)頁信息抽?。罕闅v所爬取到本地的網(wǎng)頁文件,先進(jìn)行HTML文件的標(biāo)記進(jìn)行規(guī)范化處理,再讀取樹節(jié)點(diǎn)的純文本信息。

(3)索引器:將文本信息進(jìn)行分詞處理,并采用倒排索引技術(shù)建立索引,并將生成的索引文件保存到本地;

(4)檢索器:對于用戶輸入的查詢關(guān)鍵詞在索引文件中進(jìn)行檢索,將檢索結(jié)果按照排序算法返回給用戶。

2.2 Hits算法及數(shù)據(jù)采集

Hits 算 法(hyperlink-induced topic search )是由Kleinberg提出的基于超鏈接關(guān)系分析的網(wǎng)頁排名算法。提供了用于對網(wǎng)頁質(zhì)量進(jìn)行評估的兩種類型:權(quán)威型(authority)和目錄型(hub)。權(quán)威型網(wǎng)頁是指對于特定的搜索時,網(wǎng)頁提供最好的相關(guān)信息。目錄型網(wǎng)頁是指提供很多指向其他權(quán)威型網(wǎng)頁的超鏈接。Hits算法適用于處理頁面數(shù)量較少的情況,如網(wǎng)頁數(shù)量在幾萬以內(nèi)是,速度較快,其針對的只是特定查詢主題的互聯(lián)網(wǎng)子圖,沒有考慮網(wǎng)頁的內(nèi)容,當(dāng)一個頁面里出現(xiàn)多個主題時會處理主題漂移現(xiàn)象。Hits算法的改進(jìn)可以基于內(nèi)容和超鏈接的分析相結(jié)合的主題相關(guān)度上分析處理,如對URL地址信息、錨文本信息、祖先網(wǎng)頁信息(網(wǎng)頁鏈接分析和內(nèi)容分析)、頁面的深度(網(wǎng)頁超鏈接)等做為權(quán)重信息。

本文的數(shù)據(jù)采集采用的是基于廣度優(yōu)先的數(shù)據(jù)采集過程,具體描述如下:

(1)在線程池中,選擇一個預(yù)定的URL;

(2)從選擇的URL 網(wǎng)址獲取文件內(nèi)容;

(3)分析、歸檔下載到的內(nèi)容,如果包函想要找的文字信息,則寫入磁盤鏡像目錄;

(4)從分析到的內(nèi)容里面根據(jù)策略選擇URL,加入預(yù)定隊(duì)列;

(5)標(biāo)記已經(jīng)處理過的URL,己經(jīng)處理過的URL 則不再處理;

(6)從第(1)步繼續(xù)進(jìn)行,直到所有的URL 處理結(jié)束,抓取工作結(jié)束。

數(shù)據(jù)采集處理器鏈處理流程如圖4所示。

圖4 數(shù)據(jù)采集處理器鏈

(1)預(yù)取鏈:做準(zhǔn)備工作,對抓取時的一些先決條件的判斷;

(2)提取鏈:獲得資源,解析網(wǎng)絡(luò)傳輸協(xié)議;

(3)抽取鏈:用于解析當(dāng)前獲取的服務(wù)器返回的內(nèi)容;(4)寫鏈:用于將抓取到的信息寫入磁盤;

(5)提交鏈:將解析出來的URL 有條件地加入到待處理隊(duì)列中。

2.3 網(wǎng)頁信息抽取

從內(nèi)容上一個網(wǎng)頁一般包括導(dǎo)航信息、正文信息、廣告信息、版權(quán)信息和相關(guān)鏈接等,如果直接對整個網(wǎng)頁保存并建立索引,會降低檢索結(jié)果的精確度,為了使網(wǎng)頁的信息盡可能全面準(zhǔn)確,本文先對網(wǎng)頁的所有部分的文本進(jìn)行全部抽取,然后重點(diǎn)分析處理正文信息。網(wǎng)頁信息包括結(jié)構(gòu)化和非結(jié)構(gòu)化的信息,因此需要對其進(jìn)行預(yù)處理,將其轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)清晰、語義明確的格式。本文采用一種基于統(tǒng)計(jì)方法的信息抽取,這種方法適應(yīng)于網(wǎng)頁中的正文信息放在table中,采用如下兩步:

(1)網(wǎng)頁規(guī)范化處理。根據(jù)網(wǎng)頁中規(guī)范的HTML 標(biāo)記,可以把網(wǎng)頁表示成一棵樹型結(jié)構(gòu),網(wǎng)頁規(guī)范化處理主要內(nèi)容如下:網(wǎng)頁中“<”和“>”只能用于表示標(biāo)記,其他非標(biāo)記的地方出現(xiàn)“<”和“>”時,全部用<和&gt替換;對所有的標(biāo)記都保證其開始和結(jié)束相互配對出現(xiàn);將標(biāo)記中的屬性值放在一對引號中,如<a href="www.ncut.edu.cn"></a>的形式;多個標(biāo)記之間不能交叉嵌套[5]。

(2)獲取節(jié)點(diǎn)信息。經(jīng)過規(guī)范化處理的網(wǎng)頁,就可以表示成一個樹型結(jié)構(gòu),從屬性結(jié)果中獲取包含正文信息的節(jié)點(diǎn)。找到HTML 文檔中包含所有的table節(jié)點(diǎn),遍歷每個節(jié)點(diǎn)并去除標(biāo)記,得到不含有任何標(biāo)記的純文本,并將得到的純文本信息保存在本地磁盤中,網(wǎng)頁文本信息抽取流程圖如圖5所示。

2.4 倒排索引

圖5 網(wǎng)頁信息抽取流程

在Lucene倒排索引中,項(xiàng)(Term)是最小的索引單位,它直接代表了一個關(guān)鍵詞以及其在文件中的出現(xiàn)位置和出現(xiàn)次數(shù)等信息,若干的項(xiàng)組成域(Field),域是一個關(guān)聯(lián)的元組,域是由一個域名和一個域值組成,若干的域組成文檔(Document),文檔是提取了某個文件中的所有信息之后的結(jié)果,若干的文檔組成段(Segment),內(nèi)存中的段數(shù)量達(dá)到指定數(shù)量時將會合并成一個段,若干段組成子索引(Index),子索引可以組合為索引,也可以合并為一個新的包含了所有合并項(xiàng)的內(nèi)部元素的子索引。在Lucene中采用段索引的生成方式,合并閾值影響著內(nèi)存與硬盤中索引文件的個數(shù)。每添加一個Document將生成一段索引被內(nèi)存持有,當(dāng)段索引的個數(shù)超過合并閾值時,就會通過merge(合并)的過程將一段索引合并為段索引[6]。

例如有文本1和文本2:

文本1:research and design of vertical search engine.

文本2:research and implement of search engine.

首先對文本1和文本2提取關(guān)鍵詞,按照一般索引得到結(jié)果如表1所示,按照Lucene倒排索引得到結(jié)果如表2所示。由表1和表2可知,一般索引關(guān)鍵詞數(shù)量隨著文本內(nèi)容成線性關(guān)系增長,而倒排索引當(dāng)出現(xiàn)相同關(guān)鍵詞時,只需要修改相應(yīng)記錄信息,節(jié)省索引文件的存儲空間并提高檢索效率[7]。Lucene建立索引文件過程中,對于表2中的關(guān)鍵詞,在文本中出現(xiàn)位置和次數(shù),分別保存在如詞典文件,位置文件和頻率文件中。其中詞典文件中有指向位置和頻率文件的指針。

2.5 建立索引

將分詞后的DCI數(shù)據(jù)采用倒排索引技術(shù)建立索引可分為如下4步:

表1 一般索引

表2 倒排索引

(1)從數(shù)據(jù)庫中獲取DCI數(shù)據(jù),針對一條數(shù)據(jù)進(jìn)行解析,取出每個字段和值,按照數(shù)據(jù)庫字段對應(yīng)Lucene域的方式生成Field對象;

(2)將生成的Field添加到Document中生成Document對象;

(3)通過IndexWriter類的addDocument方法建立索引,在建立索引時,Lucene會對數(shù)據(jù)進(jìn)行分析處理;

(4)直到?jīng)]有要更新的數(shù)據(jù),則索引創(chuàng)建完成并關(guān)閉索引器。當(dāng)大量數(shù)據(jù)建索引時,在向磁盤寫入索引文件時會出現(xiàn)瓶頸,在Lucene內(nèi)存中有一塊緩沖區(qū)來解決此問題。

2.6 搜索模塊

檢索模塊的系統(tǒng)結(jié)構(gòu)如圖6所示,主要進(jìn)行以下處理:關(guān)鍵詞預(yù)處理、同義詞擴(kuò)展、查詢優(yōu)化和Lucene索引檢索等[8]。首先,查詢預(yù)處理模塊對查詢請求進(jìn)行篩選和過濾并分割出關(guān)鍵詞,去除沒有意義的字符,如“的”,“哈”,“哎”等干擾字符,將查詢請求處理成最原始的,最便于查詢處理的狀態(tài);接著,對關(guān)鍵詞進(jìn)行同義詞查詢擴(kuò)展,通常用戶給定的查詢請求常被解析成獨(dú)立的實(shí)詞,從語義詞庫中獲取相應(yīng)的同義詞組,比如關(guān)鍵詞:價(jià)格,可以擴(kuò)展成:價(jià)值、售價(jià)等,這樣可以在更廣泛的概念上檢索出與用戶請求相關(guān)的信息;然后,將關(guān)鍵詞分派給查詢優(yōu)化模塊進(jìn)行邏輯關(guān)系分析,將搜索詞傳遞給搜索引擎模塊;最后,結(jié)合Lucene搜索提供的API實(shí)現(xiàn)搜索。

Lucene提供實(shí)現(xiàn)搜索API包括:QueryParser將用戶輸入的查詢關(guān)鍵詞分析處理后,生成查詢Query對象;IndexSearcher對Query對象進(jìn)行搜索后結(jié)果返回在Hits集里;Lucene的相關(guān)度排序算法將搜索結(jié)果排序顯示給用戶。

圖6 檢索模塊結(jié)構(gòu)

2.7 相關(guān)度排序算法及改進(jìn)

在使用關(guān)鍵詞查詢的時候,一般會得到大量符合條件的結(jié)果,用戶一般只會關(guān)注結(jié)果排在前面的幾頁,因此對于搜索結(jié)果排序變得尤其重要,本文是基于Lucene的垂直搜索引擎,Lucene 是結(jié)合了布爾模型和向量空間模型,Lucene原始的排序公式如下

通過這個評分公式得到的是原始分?jǐn)?shù),但是由Hits結(jié)果集返回的關(guān)于某文檔的評分卻不是其原始得分,而是當(dāng)評分最高得分的文檔如果超過了1.0,那么將所有評分都會以這個此評分為標(biāo)準(zhǔn)進(jìn)行計(jì)算,因此所有Hits對象的得分都只能小于或等于1.0[9]。Lucene排序公式主要考慮了檢索詞的詞頻、反轉(zhuǎn)文檔概率和文檔長度,但是忽略了檢索詞之間關(guān)聯(lián)關(guān)系,本文提出如下改進(jìn)算法[10]。

3 實(shí)驗(yàn)結(jié)果與分析

基于本文的理論分析,本文系統(tǒng)實(shí)現(xiàn)是用Java語言編寫,搜索界面用JSP頁面顯示,索引文件采用Lucene的本地文件,相應(yīng)的硬件環(huán)境是:Intel Core Due CPU i5 2.5GHz和2GB內(nèi)存;軟件環(huán)境是:JDK1.6、Tomcat6.0、Myeclipse6.5和WinowsXP等?;?5萬條DCI數(shù)據(jù)建立索引,并提供相應(yīng)的檢索服務(wù),并以下兩方面對DCI搜索引擎實(shí)驗(yàn)分析:

(1)基于Web的DCI垂直搜索引擎與傳統(tǒng)的基于數(shù)據(jù)庫的搜索引擎的比較如表3所示。由表3可知,該搜索引擎在數(shù)據(jù)源、分詞算法、索引和查詢分析等都比傳統(tǒng)的搜索引擎有很大的改進(jìn)和提高。

表3 搜索引擎比較表

(2)在網(wǎng)頁信息抽取方面,實(shí)驗(yàn)選擇一下四個網(wǎng)站進(jìn)行抽取,如表4所示,本文的抽取方法表現(xiàn)了較好的準(zhǔn)確率,基本在95%左右。

表4 網(wǎng)頁信息抽取結(jié)果

(3)在索引器搜索方面,基于25萬條DCI數(shù)據(jù)進(jìn)行搜索,如表5所示,本搜索引擎確實(shí)實(shí)現(xiàn)了DCI數(shù)據(jù)的快速搜索功能,關(guān)鍵詞檢索響應(yīng)時間全部在100ms之內(nèi)完成。

表5 關(guān)鍵詞檢索響應(yīng)結(jié)果

4 結(jié)束語

垂直搜索引擎以其更準(zhǔn)確、更有效的檢索而越來越受到用戶的重視,在深入學(xué)習(xí)研究Lucene和Heritrix等開源技術(shù)之后,本文先對DCI搜索引擎的整體結(jié)構(gòu)進(jìn)行了分析,接著對各個功能技術(shù)進(jìn)行了分析與設(shè)計(jì)。在網(wǎng)頁信息抽取方面本文提出的基于統(tǒng)計(jì)的抽取技術(shù),在很大程度上提高的抽取的準(zhǔn)確度,還提出分析了Lucene的相關(guān)度排序算法并對其進(jìn)行改進(jìn),最終設(shè)計(jì)了DCI垂直搜索引擎,并且實(shí)現(xiàn)DCI海量數(shù)據(jù)的快速準(zhǔn)確搜索。同時,本系統(tǒng)還有一些有待改進(jìn)的地方,比如以后可以進(jìn)一步研究分布式技術(shù)來提高搜索效率等。

[1]LI Xuelian.IDC:in 2020the total amount of the explosion of digital information will reach 35ZB[EB/OL].[2010-05-10].http://tech.hexun.com/2010-05-10/123653027.html(in Chinese).[李雪蓮.IDC:數(shù)字信息大爆炸2020年總量將達(dá)35ZB[EB/OL].[2010-05-10].http://tech.hexun.com/2010-05-10/123653027.html.]

[2]Huelmarc.DCI baidu baike[EB/OL].[2011-12-02].http://baike.baidu.com/view/1733861.htm(in Chinese).[Huelmarc.DCI百度百科[EB/OL].[2011-12-02].http://baike.baidu.com/view/1733861.htm.]

[3]FU Qiang.Lucene research and implementation on the vertical search engine application to university library books[J].Journal of Taiyuan Normal University,2011,10(4):103-107(in Chinese).[付強(qiáng).基于Lucene的高效圖書垂直搜索引擎的研究與實(shí)現(xiàn)[J].太原師范學(xué)院學(xué)報(bào),2011,10(4):103-107.]

[4]CUI Xiaobo.SOA overview[EB/OL].[2006-01-05].http://blog.csdn.net/byfq/article/details/2411442(in Chinese).[崔曉波.SOA 概 覽[EB/OL].[2006-01-05].http://blog.csdn.net/byfq/article/details/2411442.]

[5]SUN Chengjie,GUAN Yi.A statistical approach for content extraction from web page[J].Journal of Chinese Information Processing,2004,18(5):17-22(in Chinese).[孫承杰,關(guān)毅.基于統(tǒng)計(jì)的網(wǎng)頁正文信息抽取方法的研究[J].中文信息學(xué)報(bào),2004,18(5):17-22.]

[6]QIU Zhe,F(xiàn)U Taotao.Developing its own search engine--Lucene 2.0+Heritrix[M].Beijing:People’s Posts and Telecommunications Press,2007(in Chinese).[邱哲,符滔滔.開發(fā)自己的搜索引擎—Lucene 2.0+Heritrix[M].北京:人民郵電出版社,2007.]

[7]ZHAO Ke,LU Peng,LI Yongqiang.Design and implementation of search engine based on Lucene[J].Computer Engineering,2011,37(16):39-41(in Chinese).[趙珂,逯鵬,李永強(qiáng).基于Lucene的搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2011,37(16):39-41.]

[8]JIANG Yifeng,WANG Hua,ZHANG Yuhong,et al.Design and implementation of semantic search engine based on Lucene[J].Computer Engineering and Design,2008,29(20):5336-5341(in Chinese).[蔣一峰,王華,張玉紅,等.基于Lucene的語義檢索系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(20):5336-5341.]

[9]Otis Gospodnetic,Erik Hatcher.Lucene IN ACTION[M].TAN Hong,transl.Beijing:Publishing House of Electronics Industry,2007(in Chinese).[Otis Gospodnetic,Erik Hatcher.Lucene IN ACTION 中文版[M].譚鴻,譯.北京:電子工業(yè)出版社,2007.]

[10]WANG huan,SUN Zhirui.Research of semantic retrieval system based on domain-ontology and Lucene[J].Journal of Computer Application,2010,30(6):1555-1660(in Chinese).[王歡,孫瑞志.基于領(lǐng)域本體和Lucene的語義檢索系統(tǒng)研究[J].計(jì)算機(jī)應(yīng)用,2010,30(6):1555-1660.]

猜你喜歡
搜索引擎網(wǎng)頁檢索
基于CSS的網(wǎng)頁導(dǎo)航欄的設(shè)計(jì)
基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
專利檢索中“語義”的表現(xiàn)
網(wǎng)頁制作在英語教學(xué)中的應(yīng)用
網(wǎng)絡(luò)搜索引擎亟待規(guī)范
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
基于Lucene搜索引擎的研究
國際標(biāo)準(zhǔn)檢索
國際標(biāo)準(zhǔn)檢索
搜索引擎,不止有百度與谷歌
临漳县| 务川| 申扎县| 汉源县| 耒阳市| 阿荣旗| 桂平市| 密云县| 嘉祥县| 镇巴县| 承德县| 休宁县| 梁山县| 大竹县| 广元市| 思南县| 江门市| 开封市| 洛宁县| 婺源县| 南汇区| 台东县| 阆中市| 崇阳县| 清徐县| 白水县| 桦南县| 同德县| 蚌埠市| 蓬溪县| 彰武县| 平罗县| 岢岚县| 邵武市| 雅江县| 徐水县| 仪征市| 乐清市| 凤台县| 浙江省| 广西|