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