金字招牌,值得信賴!!!
本文關(guān)鍵詞:基于Nutch的農(nóng)業(yè)垂直搜索引擎研究,由筆耕文化傳播整理發(fā)布。
摘要:采用基于中文詞典的正向最大匹配中文分詞方法的JE分詞改進Nutch中文分詞,使其支持中文分詞。最后,采用PAGERANK排序算法改進Nutch原有的基于Lucene的頁面排序算法。
目前,“專、精、深”的垂直搜索引擎、智能化語義化的搜索引擎成為人們研究的熱點。
在了解和分析Nutch工作原理的基礎(chǔ)上對Nutch開源搜索引擎進行擴展和修改來研發(fā)基于Nutch的農(nóng)業(yè)垂直搜索引擎。
在基于Nutch的農(nóng)業(yè)垂直搜索引擎研究的基礎(chǔ)上結(jié)合項目背景需求,設(shè)計并實現(xiàn)了該系統(tǒng)管理平臺。
第一章,緒論部分。主要闡述了本論文研究的目的、意義及本文要解決的問題、國內(nèi)和國外的研究狀況、核心研究內(nèi)容以及本文章的組織結(jié)構(gòu)。
主要論述系統(tǒng)結(jié)構(gòu)以及研發(fā)過程涉及到的關(guān)鍵技術(shù),最后對其進行測試和分析。
總結(jié)論文的主要工作和存在的缺陷之處,并對以后的研究工作進行了展望。
本章闡述了本論文研究的目的及意義,論述了國內(nèi)和國外的研究狀況,給出論文核心研究內(nèi)容及文章的組織結(jié)構(gòu)。
垂直搜索引擎是專門面向于一個特定行業(yè)、特定領(lǐng)域、特定人群而產(chǎn)生的工具,因此,垂直搜索引擎也稱為專業(yè)搜索引擎、專題搜索引擎或是主題搜索引擎,是通用搜索引擎更細的劃分和擴展(王文鈞和李巍 2010;李曉明等 2007)。
它不僅具備“專、精、深”的特點,而且在這一領(lǐng)域具有典型的領(lǐng)域特色。
具體而言,垂直搜索引擎就是把Web信息資源中的某類學(xué)科信息以定向分字段地形式抽取出所需的數(shù)據(jù),即將非結(jié)構(gòu)化的網(wǎng)頁數(shù)據(jù)抽取成一定的結(jié)構(gòu)化的網(wǎng)頁數(shù)據(jù)的過程,然后對數(shù)據(jù)進行去重、分類、分詞、索引等處理,最后再以查詢的方式來達到用戶的信息需求。
垂直搜索引擎和通用搜索引擎的產(chǎn)生其目的是相同的,都是幫助廣大用戶搜索信息的相關(guān)工具,但其信息的服務(wù)形式有很大變化,垂直搜索引擎更注重信息的“專、精、深”。
由圖2-1可知,垂直搜索引擎的基本工作原理是:首先網(wǎng)絡(luò)蜘蛛根據(jù)初始URL采集互聯(lián)網(wǎng)上的網(wǎng)頁;其次對采集到的網(wǎng)頁進行處理,通過分析網(wǎng)頁提取出網(wǎng)頁中的內(nèi)容和網(wǎng)頁中存在的URL鏈接,并對網(wǎng)頁中的內(nèi)容和網(wǎng)頁中的URL鏈接進行過濾,把與主題相關(guān)的頁面存入網(wǎng)頁數(shù)據(jù)庫,同時把網(wǎng)頁中的URL鏈接加入URL數(shù)據(jù)庫,等待網(wǎng)絡(luò)蜘蛛進一步爬;最后根據(jù)網(wǎng)頁數(shù)據(jù)庫建立索引,將該索引保存到索引庫。此外,用戶通過用戶接口進行檢索請求,檢索器根據(jù)用戶輸入的條件到索引庫進行檢索,其結(jié)果被進行一定的有效組織后返回給檢索用戶(周鵬等 2009)。
因此,下面主要介紹網(wǎng)頁庫級的垂直搜索引擎研發(fā)過程中用到的主要技術(shù),其主要技術(shù)主要包括:信息采集技術(shù)、網(wǎng)頁信息抽取技術(shù)、信息處理技術(shù)、分詞技術(shù)、索引技術(shù)等。
垂直搜索引擎的信息抽取是把非結(jié)構(gòu)化的網(wǎng)頁數(shù)據(jù)根據(jù)特定的需求抽取成結(jié)構(gòu)化網(wǎng)頁數(shù)據(jù),提供專業(yè)的查詢服務(wù),這也是垂直搜索引擎與通用搜索引擎之間的最大不同之處,因此,衡量垂直搜索引擎好壞的一個核心技術(shù)指標(biāo)就是信息抽取技術(shù)。目前,信息抽取技術(shù)的方式多種多樣,主要有基于包裝器的信息抽取方式、基于自然語言的抽取方式、基于HTML網(wǎng)頁結(jié)構(gòu)的抽取方式(郭來德等 2007)。
垂直搜索引擎的網(wǎng)頁信息過濾技術(shù)決定著該搜索引擎的專業(yè)性,網(wǎng)頁信息過濾就是指通過分析網(wǎng)頁內(nèi)容及結(jié)構(gòu),保留與主題相關(guān)的網(wǎng)頁,而丟棄與主題不相關(guān)的網(wǎng)頁。目前,主要的網(wǎng)頁信息過濾技術(shù)有基于布爾模型的網(wǎng)頁信息過濾方法、基于VSM的網(wǎng)頁信息過濾方法、基于潛在語義模型的網(wǎng)頁信息過濾方法等(羅德一 2007)。
VSM是被上世紀60年代的Salton等人提出用于表達特征的模型,SMART(文本檢索系統(tǒng))是它的典型應(yīng)用。
中文分詞即中文切詞,是指將漢字序列分割成代表一定含義的詞。
基于字符串匹配的機器中文分詞算法、基于詞頻統(tǒng)計的中文分詞算法以及基于知識理解的中文分詞算法(李東和張湘輝 2006)。基于字符串匹配的機器中文分詞算法也稱為詞典中文分詞算法、機械中文分詞算法,它是依據(jù)一定的方法把所要分詞的漢字串同詞典來完成詞條匹配,如果在該詞典中能夠發(fā)現(xiàn)該字符串,則表示切分出一個漢字串。
如正向、逆向、最長、最小最短等匹配算法,通常情況都是將以上各種形式的分詞方法相互組合使用。常用的幾種相互組合的分詞方法主要是:正向最大、逆向最大、雙向等匹配算法以及最少切分算法;
基于知識理解的中文分詞方法是力求使計算機能夠具備人類分析句子的能力,從而能夠識別出詞。它主要由總控部分、句法語義子系統(tǒng)、分詞子系統(tǒng)這三部分構(gòu)成,通過總控部分來調(diào)解語義子系統(tǒng)、分詞子系統(tǒng)進行歧義分詞的判別。
目前,索引技術(shù)主要分為四類,分別是線性索引、倒排索引、靜態(tài)索引、動態(tài)索引。
倒排索引是指按照屬性的值來檢索文件記錄,它的索引表中的任意一項是由屬性值和對應(yīng)的記錄的地址構(gòu)成,因此它是用屬性值來確認記錄的位置,而不是用記錄確認屬性值;
動態(tài)索引和靜態(tài)索引在索引結(jié)構(gòu)的生成上類似,唯一不同的是索引結(jié)構(gòu)的改變不同,動態(tài)索引是在系統(tǒng)進行插入或刪除記錄時其索引結(jié)構(gòu)能夠改變。
Nutch的兩個核心部分分別是:crawler(即爬蟲)、searcher(即查詢)
Crawler的核心是用于從Internet上爬取網(wǎng)頁到索引庫的建立。
Searcher的核心是根據(jù)用戶的查詢詞到索引庫進行檢索來生成查詢結(jié)果。
首先是索引其文件格式相對應(yīng)用平臺具有獨立性;
此外,Lucene的系統(tǒng)架構(gòu)具有面向?qū)ο蟮奶攸c,使其對它的學(xué)習(xí)難易程度大大降低,也方便了擴展其他新功能。
爬取部分主要是爬取網(wǎng)頁信息并將網(wǎng)頁信息進行反向索引,搜索部分是依據(jù)用戶的搜索請求進行反向索引,并將其結(jié)果返回給用戶。
將多個索引合并為一個大的索引庫,為用戶搜索時提供服務(wù);
根據(jù)用戶查詢條件,檢索器將用戶的查詢轉(zhuǎn)換為Lucene的查詢查找索引庫;
現(xiàn)有的URL過濾規(guī)則很多,有基于正則表達式的URL過濾規(guī)則、有基于網(wǎng)頁內(nèi)容的URL過濾規(guī)則等。
本研究首先對樣本數(shù)據(jù)采用聚類技術(shù)獲取樣本文件,其中樣本數(shù)據(jù)是人工手動獲得;
分類是預(yù)先給定類別數(shù)目,在類別數(shù)目一定的情況下,手動進行對分類訓(xùn)練語料的標(biāo)注,然后訓(xùn)練獲取分類器。
聚類是把數(shù)據(jù)對象進行歸類,將相似度較大的數(shù)據(jù)對象歸為一類,不在同一個類中的數(shù)據(jù)對象相似度相差比較大,屬于無監(jiān)督學(xué)習(xí)行為,能夠自動的劃分數(shù)據(jù)集。
k-means 聚類算法能夠輸入聚類數(shù)量 k,然后依據(jù)聚類個數(shù)k劃分n個數(shù)據(jù)對象來滿足聚類需求,聚為一類的數(shù)據(jù)對象有較高的相似度高,不在同一個類中的數(shù)據(jù)對象相似度有比較大的差別。聚類相似度是選用每一類中數(shù)據(jù)對象的平均值作為該類的“中心”進行計算相似度(李慧等 2004;Hearst M A 1997)。它具體的歸類流程是首先從所有數(shù)據(jù)對象n中隨意選取K個數(shù)據(jù)對象,作為K個類的首次聚類中心對象;其次,計算剩余數(shù)據(jù)對象與聚類中心對象的相似度(即距離),將最相似的歸為一類;然后重新計算每個類中數(shù)據(jù)對象的平均值(即該聚類中心對象);最后一直循環(huán)上述過程,當(dāng)均方差(常用的標(biāo)準(zhǔn)測度函數(shù))收斂于某一個值,停止循環(huán)。這樣使k個聚類相互之間能夠盡最大可能的分割,而和K個聚類自身能夠盡最大可能的聚集(毛國君和段麗娟 2007)。
分類是一種重要的數(shù)據(jù)挖掘技術(shù)。分類是為了依據(jù)數(shù)據(jù)中對象的特征構(gòu)造出分類器(即分類模型)。
K最近鄰分類算法也稱KNN分類算法,它采用歐幾里得計算距離的公式來計算兩個樣本間的間隔(即距離),如公式3-1所示。
其中 表示第i個樣本對象的第k維向量特征, 表示第j個訓(xùn)練對象的第k維向量特征,M表示向量特征的總維數(shù),, 表示第i個和第j個對象間的相似度。
基于Nutch的農(nóng)業(yè)垂直搜索引擎是借助開源搜索引擎Nutch開發(fā)的,因此本研中中文分詞也是非常關(guān)鍵的一個技術(shù)。
Analysis包內(nèi)的NutchAnalyzer定義了Nutch分析器,NutchAnalyzer繼承了Analyzer,也是Nutch里對文本分析進行擴展的一個很好的擴展點。NutchAnalyzer類是Nutch中默認的字符串分詞和分析檢索接口,它是通過JavaCC來編譯NutchAnalysis.jj文件生成的代碼,其中NutchAnalysis.jj文件是生成代碼的規(guī)則文件。
其次將其與詞典進行匹配,如果匹配失敗則去掉W最右邊的這個字符,繼續(xù)匹配,否則匹配成功,從左起去掉S1的前M個字符,將匹配成功的詞追加到字符串S2;接著不斷循環(huán)前面的操作,直到字符串S1為空為止;最后輸出切詞結(jié)果S2。
對于一個面向中文的搜索引擎來講,只有在抓取信息和檢索信息時使用一樣的中文分詞算法,
目前,本體庫的構(gòu)建針對自身的應(yīng)用領(lǐng)域有不同的構(gòu)建策略,但其構(gòu)建過程都遵循一定的規(guī)律性。
傳統(tǒng)基于關(guān)鍵詞的VSM主題相關(guān)性判別是通過解析網(wǎng)頁,提取出網(wǎng)頁內(nèi)容,然后結(jié)合關(guān)鍵詞統(tǒng)計網(wǎng)頁詞頻來判斷網(wǎng)頁的相關(guān)度。
解析網(wǎng)頁前,先獲取特征詞集合 和向量特征 ,其中 表示特征詞 所對應(yīng)的權(quán)值。
下面對改進用到的相關(guān)算法和改進的具體過程進行分析。
tf(t_in_d) :表示查詢詞(t)在網(wǎng)頁(d)中總共出現(xiàn)的次數(shù),查詢詞(t)在網(wǎng)頁(d)中出現(xiàn)的頻次越高,網(wǎng)頁(d)的得分就越高。
若網(wǎng)頁中包含查詢詞的個數(shù)越多,則其網(wǎng)頁得分越高;
其缺點為:該算法精確度低,網(wǎng)頁的權(quán)威性不能夠完全體現(xiàn)。
它的基本思想是“如果網(wǎng)頁是從許多質(zhì)量高的網(wǎng)頁中鏈接得到該網(wǎng)頁,那么該網(wǎng)頁一定還是質(zhì)量高的網(wǎng)頁”。
(5)d:表示阻尼系數(shù),d的取值為0到1,通常取值是0.85。
PageRank算法有一個特點就是PageRank值之和與網(wǎng)頁的總數(shù)相等,可以通過下面圖3-6進行說明。
網(wǎng)頁的向量化表示是指提取頁面中存在的特征詞,并計算其權(quán)值。
首先對包含標(biāo)記的網(wǎng)頁進行切詞處理,去掉停用詞;
搜索引擎對于用戶來說是用來進行信息搜索的工具,用戶進行信息搜索通過搜索引擎對用戶開放的用戶檢索接口來進行。
由圖3-7可以看到基于Nutch的農(nóng)業(yè)垂直搜索引擎用戶檢索接口不僅提供用戶檢索的基本功能,即用戶輸入搜索詞,通過查詢詞到索引庫進行檢索,將檢索結(jié)果按照上小節(jié)闡述的改進策略進行排序,將排序結(jié)果返回給搜索用戶;
傳統(tǒng)衡量搜索引擎好壞的指標(biāo)是查全率、查準(zhǔn)率,查全率是搜索出的網(wǎng)頁數(shù)與網(wǎng)頁庫中總的相關(guān)網(wǎng)頁數(shù)的比值;
一般來講,當(dāng)查全率高的情況下,查準(zhǔn)率就低,而當(dāng)查準(zhǔn)率高的情況下,查全率就相對低。
關(guān)鍵詞結(jié)果總數(shù)選取數(shù)相關(guān)數(shù)非相關(guān)數(shù)主題相關(guān)率
其中n為網(wǎng)頁的總個數(shù),A(i)為網(wǎng)頁的質(zhì)量等級,B(i)為網(wǎng)頁與檢索詞的相關(guān)度。其中A(i)取值如下所示:
其中N為檢索關(guān)鍵詞的個數(shù),n為網(wǎng)頁的個數(shù)(即60), 為與用戶需求有關(guān)的網(wǎng)頁個數(shù)。
本章主要針對系統(tǒng)需求、體系結(jié)構(gòu)以及系統(tǒng)功能進行闡述,最后進行系統(tǒng)的測試和評價。
B/S、C/S模式檢索接口屬于不同平臺下相同搜索引擎接口,用戶從該接口進行搜索,輸入搜索詞,并對其搜索詞進行中文分詞結(jié)合農(nóng)業(yè)領(lǐng)域本體庫進行查詢擴展,最后進入索引庫進行檢索,將其結(jié)果按一定排序策略排序后呈現(xiàn)給用戶。
性能測試是一種用測試工具進行模擬系統(tǒng)的正常、異常以及峰值等條件來進行系統(tǒng)測試。常用的壓力測試方法是負載測試、壓力測試。負載測試是用來測試系統(tǒng)工作在各種條件下的性能情況。壓力測試是測試系統(tǒng)的極值(即瓶頸),以此來確定系統(tǒng)能夠正常工作的極限。目前性能測試工具非常多,本實驗選用QALoad這種工具進行壓力測試。經(jīng)測試本系統(tǒng)管理平臺性能較好。
除此之外,還能夠方便用戶進行農(nóng)業(yè)相關(guān)信息的搜索。
(2)Nutch中文分詞的改進。采用基于中文詞典的正向最大匹配中文分詞方法的JE分詞改進Nutch中文分詞,滿足基于Nutch的農(nóng)業(yè)垂直搜索引擎中文分詞的要求。
系統(tǒng)管理平臺。
本文關(guān)鍵詞:基于Nutch的農(nóng)業(yè)垂直搜索引擎研究,由筆耕文化傳播整理發(fā)布。
本文編號:223676
本文鏈接:http://sikaile.net/kejilunwen/sousuoyinqinglunwen/223676.html