高 凱,陽(yáng)春輝,陶秋紅,張 洋,楊軍偉
(1.河北科技大學(xué)信息科學(xué)與工程學(xué)院,河北石家莊 050018;2.石家莊職工大學(xué),河北石家莊050041;3.北京首都國(guó)際機(jī)場(chǎng),北京 100621)
基于Carrot2聚類的垂直搜索引擎的研究與實(shí)現(xiàn)
高 凱1,陽(yáng)春輝1,陶秋紅2,張 洋3,楊軍偉1
(1.河北科技大學(xué)信息科學(xué)與工程學(xué)院,河北石家莊 050018;2.石家莊職工大學(xué),河北石家莊050041;3.北京首都國(guó)際機(jī)場(chǎng),北京 100621)
給出了一個(gè)基于Nutch的垂直搜索引擎系統(tǒng)的實(shí)現(xiàn),主要探討了基于Lucene和Carrot2的信息檢索與聚類的實(shí)現(xiàn),并對(duì)分詞、垂直信息采集等的實(shí)現(xiàn)進(jìn)行了說明。
搜索引擎;Lucene;Nutch;分詞;聚類
伴隨著因特網(wǎng)的迅速普及和應(yīng)用,網(wǎng)絡(luò)已成為人們獲取信息的重要渠道。為了幫助人們方便、高效地利用網(wǎng)絡(luò)信息,搜索引擎應(yīng)運(yùn)而生。傳統(tǒng)搜索引擎往往不能很好地滿足一些特定用戶的檢索需求,因此研發(fā)面向特定領(lǐng)域的垂直搜索引擎非常有必要。由于校園網(wǎng)鏈接稀疏、特定關(guān)鍵字重復(fù)度高,因此把基于互聯(lián)網(wǎng)搜索引擎的鏈接分析技術(shù)應(yīng)用于校園網(wǎng)信息檢索時(shí)效果并不理想[1]。相關(guān)工作中,文獻(xiàn)[2]提到一種有效的相關(guān)概念反饋策略;文獻(xiàn)[3]給出對(duì)中文語(yǔ)料抽取主題概念詞的一種方法;文獻(xiàn)[4]和文獻(xiàn)[5]對(duì)信息采集過程中的采集策略等分別給出了相應(yīng)的算法和實(shí)現(xiàn),給出基于聚類的中文垂直搜索引擎系統(tǒng)的實(shí)現(xiàn),并在校園采風(fēng)搜索引擎系統(tǒng)中使用,效果良好。
垂直搜索引擎通過主題爬蟲來抓取網(wǎng)頁(yè),再經(jīng)過全文檢索索引和提供給用戶檢索界面來實(shí)現(xiàn)。其中主題爬蟲對(duì)互聯(lián)網(wǎng)信息采集后會(huì)扔掉不相關(guān)的頁(yè)面,實(shí)現(xiàn)的主題信息采集的爬蟲往往用時(shí)短,速度快。垂直搜索引擎爬蟲可以用有限的網(wǎng)絡(luò)帶寬和存儲(chǔ)資源,在較短的時(shí)間內(nèi)獲得更多、更相關(guān)的關(guān)于某一主題的信息資源。
Nutch內(nèi)部使用了Lucene的索引和檢索技術(shù)并有自己的網(wǎng)絡(luò)蜘蛛,是一個(gè)真正的搜索引擎[6]。Nutch為人們提供了運(yùn)行自己的搜索引擎所需要的全部資源。Nutch遍歷網(wǎng)站的資源,將這些資源抓取到本地,分析網(wǎng)站內(nèi)每一個(gè)有效的URL,并提交HTTP請(qǐng)求,從而獲得相應(yīng)結(jié)果,生成本地文件及相應(yīng)的日志信息等。LUCENE為Nutch提供了文本索引和搜索的API[7]。Nutch具有良好的可擴(kuò)展性和靈活性。Carrot2是一個(gè)開源的基于搜索結(jié)果的聚類工具,可以把 Google,MSN Live,Yahoo!,Lucene Index等搜索結(jié)果組織成不同的主題[8]。
在Nutch架構(gòu)的基礎(chǔ)上開發(fā)了一個(gè)專注于教育與校園網(wǎng)信息采集的搜索引擎,并基于Carrot2實(shí)現(xiàn)了對(duì)檢索信息的聚類。實(shí)踐表明,其具有較好的可用性。
1)完成系統(tǒng)配置過程 在服務(wù)器上安裝FreeBsd1.0版本的Unix操作系統(tǒng),開啟SFTP服務(wù),用Filezilla作為數(shù)據(jù)上傳下載工具,用Putty作為遠(yuǎn)程控制工具。下載Unix版本的JDK及Tomcat6.0,在/etc/profile中寫好相應(yīng)的環(huán)境變量。把配置好的 Nutch-1.0拷貝到用戶文件夾,寫好Nutch運(yùn)行、Tomcat啟動(dòng)和停止等腳本。
2)完成對(duì)搜索引擎的配置和設(shè)定工作 作為專門服務(wù)高校的專業(yè)化搜索引擎,需要構(gòu)建各高校有關(guān)的資源庫(kù)、限定索引范圍。
①種子集設(shè)定 通過在主流搜索引擎中給定相關(guān)關(guān)鍵詞和來源等(如:大學(xué) 招生 就業(yè) 網(wǎng)site:edu.cn)采集信息,設(shè)置每頁(yè)顯示結(jié)果數(shù)并進(jìn)行相關(guān)處理獲取大量分類網(wǎng)址。修改 ${nutch}\conf下的crawl-urlfilter.txt,通過正則表達(dá)式限定,抓取想要的網(wǎng)頁(yè)。運(yùn)行時(shí),基于Nutch的爬蟲可以實(shí)現(xiàn)只抓取特定范圍的內(nèi)容,獲取后保存到索引中,同時(shí)刷新舊索引內(nèi)容。
②異構(gòu)文件處理 爬蟲從互聯(lián)網(wǎng)下載的文件格式有很多,為使 Nutch能處理pdf,doc,xls,ppt等文檔,可下載相關(guān)插件并在配置文件中聲明。文件類型識(shí)別方法很多,在此系統(tǒng)中截取索引URL字段后3位作為文件類型最簡(jiǎn)單,并將其添加在對(duì)應(yīng)搜索結(jié)果前面。
③中文分詞 搜索引擎最早是以英文為搜索關(guān)鍵字,英文單詞間用空格分隔,切分容易實(shí)現(xiàn)。中文是以字為單位的,詞匯之間沒有分隔,這就增加了檢索中文的難度。Lucene為中文用戶提供了2個(gè)正向最大匹配的中文分詞CJKAnalyzer和ChineseAnalyzer,但分詞效果都不太理想。經(jīng)過對(duì)CJKAnalyzer,JE,ICTCLAS幾種分詞方案的對(duì)比,筆者選擇JE分詞。
④聚類 系統(tǒng)采用Carrot2建立的基于文本的搜索結(jié)果聚類引擎[9]。Carrot2中使用比較多的2種聚類算法是Lingo(基于奇異值分解的聚類算法)和STC(后綴樹聚類算法)。Lingo算法是先提取出聚類標(biāo)簽,然后給各個(gè)標(biāo)簽分配文檔,以形成最終的聚類。STC算法使用的主要數(shù)據(jù)結(jié)構(gòu)是一個(gè)為所有輸入文檔建立的廣義后綴樹(GST)。該算法遍歷GST,以識(shí)別在輸入文檔中出現(xiàn)次數(shù)大于1的單詞和短語(yǔ)。每一個(gè)這樣的單詞或短語(yǔ)產(chǎn)生一個(gè)基本聚類,最終合并基本聚類,形成聚類[10]。
⑤信息檢索 系統(tǒng)可根據(jù)不同用戶的檢索習(xí)慣,完成部分個(gè)性化的處理工作。如對(duì)每頁(yè)顯示結(jié)果的處理,檢索時(shí)可以根據(jù)需要自己定每頁(yè)顯示的結(jié)果數(shù)。
為了測(cè)試分詞效果,筆者設(shè)計(jì)了相關(guān)的實(shí)驗(yàn)。測(cè)試環(huán)境為FreeBsd 1.0,CPU 2.9GHz,內(nèi)存2.00 GB,JDK 6.0。由于 CJKAnalyzer和 ChineseAnalyzer分詞效果不理想,在此僅對(duì)JE和ICTCLAS分詞方案性能進(jìn)行對(duì)比分析。索引源內(nèi)容采用河北科技大學(xué)校內(nèi)3萬多個(gè)網(wǎng)頁(yè),索引字段數(shù)為13個(gè)。搜索結(jié)果見表1。

表1 JE,ICTCLAS搜索結(jié)果項(xiàng)對(duì)比表Tab.1 Comparison of JE,ICTCLAS search results
用ICTCLAS后得到的索引文件比用JE后得到的索引文件約小6.68%,這與JE生成的詞項(xiàng)數(shù)比ICTCLAS多有關(guān)。JE索引耗時(shí)比ICTCLAS多,ICTCLAS分詞速度優(yōu)于JE。結(jié)合JE,ICTCLAS分詞效果對(duì)比可知,如果對(duì)分詞效果要求非常高,應(yīng)選用ICTCLAS。考慮到ICTCLAS分詞太精確會(huì)讓查全率可能有所降低,為了在分詞效果和搜索效果方面取得一個(gè)較優(yōu)效果,本系統(tǒng)選用JE分詞。
由于Lingo和STC聚類算法不一樣,因此二者有不同的聚類特點(diǎn)。在搜索界面輸入關(guān)鍵詞University Technology,2種聚類算法結(jié)果比較見表2。

表2 Lingo和STC的聚類結(jié)果對(duì)比Tab.2 Comparison of Lingo and STC clustering results
由表2可見,在默認(rèn)設(shè)置下,Lingo聚類標(biāo)簽很長(zhǎng),往往有很多的描述。聚類多樣性高,會(huì)產(chǎn)生許多小的聚類,但其可擴(kuò)展性低,對(duì)超過約1 000份文件進(jìn)行聚類,將需要很長(zhǎng)時(shí)間和很大的內(nèi)存。STC聚類標(biāo)簽短,聚類多樣性低,很少會(huì)產(chǎn)生小的聚類。此外,STC可擴(kuò)展性比Lingo高。實(shí)際中應(yīng)用哪種算法,視情況而定。在基于Carrot2實(shí)現(xiàn)的系統(tǒng)中,采用的是STC算法。
給出基于Nutch架構(gòu)實(shí)現(xiàn)的垂直搜索引擎系統(tǒng),結(jié)合Carrot2實(shí)現(xiàn)了信息聚類,并對(duì)分詞性能和聚類算法進(jìn)行了實(shí)驗(yàn)和分析。該系統(tǒng)目前已經(jīng)上線,并面向校內(nèi)用戶使用,用戶評(píng)價(jià)良好。
[1]宋光慧,聶 琰,郭建康.基于Nutch的校園網(wǎng)信息檢索系統(tǒng)的研究與實(shí)現(xiàn)[J].中國(guó)教育信息化,2010(15):65-66.
[2]GAO Kai.Presenting implicit relevance feedback in educational search engine[J].Computer Applications in Engineering Education,2011,19(2):294-304.
[3]GAO Kai,LI Y J.Modelling on Chinese subject-term extracting algorithm[J].International Journal on Modelling,Identification and Control,2011,13(3):202-208.
[4]高 凱.搜索引擎中信息動(dòng)態(tài)采集策略的研究[J].電子學(xué)報(bào),2007,35(10):1 984-1 988.
[5]GAO Kai,ZONG B Q.Web information processing and extracting[A].Proceedings of the 9th International Conference on Machine Learning and Cybernetics[C].[s.l.]:[s.n.],2010.2 350-2 355.
[6]高 凱,許云峰,郭立煒.網(wǎng)絡(luò)信息檢索與搜索引擎技術(shù)[M].北京:科學(xué)出版社,2010.
[7]LUCENE.Nutch官網(wǎng) Nutch技術(shù)介紹[EB/OL].http://wiki.apache.org/nutch/2012-04-06.
[8]王學(xué)松.Lucene+Nutch搜索引擎開發(fā)[M].北京:人民郵電出版社,2008.
[9]陳菊紅.搜索引擎返回結(jié)果聚類技術(shù)的研究與實(shí)現(xiàn)[D].成都:西南交通大學(xué),2009.
[10]賀 玲,吳玲達(dá),蔡益朝.數(shù)據(jù)挖掘中的聚類算法綜述[J].計(jì)算機(jī)應(yīng)用研究,2007(1):10-13.
Research and implementation of vertical search engine based on Carrot2clustering
GAO Kai1,YANG Chun-h(huán)ui1,TAO Qiu-h(huán)ong2,ZHANG Yang3,YANG Jun-wei1
(1.College of Information Science and Engineering,Hebei University of Science and Technology,Shijiazhuang Hebei 050018,China;2.Shijiazhuang Staff and Workers University,Shijiazhuang Hebei 050041,China;3.Beijing Capital International Airport,Beijing 100621,China)
This paper presents the implementation of vertical search engine based on Nutch,mainly the implementation of the Lucene and the Carrot2for information retrieval and clustering.Moreover,the paper also introduces in some details the Chinese word segmentation and data collection.
search engine;Lucene;Nutch;Chinese word segmentation;clustering
TP311
A
1008-1534(2012)03-0155-03
2012-03-02
李 穆
河北省科技支撐計(jì)劃項(xiàng)目(12213516D)
高 凱(1968-),男,山東章丘人,副教授,博士,主要從事自然語(yǔ)言處理、信息檢索、數(shù)據(jù)挖掘、云計(jì)算等方面的研究。