基于Nutch的可信搜索引擎研究與實(shí)現(xiàn)
1 緒論
1.1 研究背景與國內(nèi)外現(xiàn)狀
信息時(shí)代,各種技術(shù)發(fā)展日新月異,信息容量不斷膨脹,極大地滿足了人們對(duì)各種信息別需求。但是如何從海量的信息中快速簡(jiǎn)單地檢索出自己所需要的信息與不斷擴(kuò)張的信息量是當(dāng)今互聯(lián)網(wǎng)發(fā)展要解決的主要矛盾。搜索引擎是解決這一矛盾的唯一有效方法,因而搜索引擎的技術(shù)也隨著互聯(lián)網(wǎng)的發(fā)展需要不斷地更新?lián)Q代。 1.1.1 研究背景 1991 年 8 月 6 日,萬維網(wǎng)(World Wide Web)出現(xiàn)了。在短短的十幾年間,人類至少在萬維網(wǎng)上發(fā)布了 50 億條網(wǎng)頁,并且現(xiàn)在每天都有數(shù)以十萬計(jì)的數(shù)量增長(zhǎng),豐富的互聯(lián)網(wǎng)內(nèi)容極大地滿足了網(wǎng)民在日常生活中對(duì)信息的需求。但是,過于豐富的信息內(nèi)容使網(wǎng)民很難從海量的信息中快速地檢索中自己最需要的信息,于是搜索引擎應(yīng)運(yùn)而生,從早期的以目錄式搜索引擎為代表的雅虎,到基于全文搜索引擎的谷歌都極大地促進(jìn)了互聯(lián)網(wǎng)的發(fā)展。搜索引擎作為進(jìn)入互聯(lián)網(wǎng)世界的大門,它的性能也直接影響這網(wǎng)絡(luò)用戶的上網(wǎng)質(zhì)量[1]。 百度、谷歌、雅虎為代表的搜索引擎在最近的幾十年里取得了巨大的發(fā)展,他們幾乎壟斷了 90%的搜索引擎市場(chǎng)。由于這種大型商業(yè)互聯(lián)網(wǎng)公司具有天然的壟斷性和逐利性,用戶利用它們?nèi)〉玫乃阉鹘Y(jié)果可能很大程度上符合他們公司本身的經(jīng)濟(jì)利益,而不是用戶的實(shí)際需求[2]。商業(yè)公司的封閉性,它們又不能為普通科研人員公開其搜索引擎工作原理,而對(duì)于一般的開發(fā)者而言,搜索引擎的底層開發(fā)過于復(fù)雜,再加上百度與谷歌對(duì)于他們已有算法的嚴(yán)格保密,使得搜索引擎的開發(fā)有很高的技術(shù)門檻,這樣也嚴(yán)重阻礙搜索引擎技術(shù)的快速發(fā)展與革新。雖然網(wǎng)頁的數(shù)量在迅速增長(zhǎng),但是搜索引擎的數(shù)量卻在不斷下降,這樣發(fā)展的結(jié)果很可能進(jìn)一步演變?yōu)橛邢薜膸讉(gè)商業(yè)互聯(lián)網(wǎng)公司壟斷所有的互聯(lián)網(wǎng)搜索業(yè)務(wù),甚至可能發(fā)生為謀取商業(yè)利益而采用競(jìng)價(jià)排名等策略來損害普通用戶的利益。這樣的發(fā)展趨勢(shì)顯然不利于廣大用戶擁有更好網(wǎng)絡(luò)體驗(yàn),也不符合互聯(lián)網(wǎng)搜索引擎市場(chǎng)的健康發(fā)展。 另外,隨著互聯(lián)網(wǎng)的快速發(fā)展,微博、微信、Facebook 等自媒體也得到飛速發(fā)展,互聯(lián)網(wǎng)上存在大量個(gè)人用戶生成的信息。由于這些信息內(nèi)容可復(fù)制性強(qiáng)、可信度差等缺點(diǎn)導(dǎo)致網(wǎng)絡(luò)信息良莠不齊。并且隨著信息發(fā)布的門檻越來越低,直接導(dǎo)致內(nèi)容的來源和信息的真實(shí)性很難考證,最終使用戶對(duì)于傳統(tǒng)搜索引擎的搜索結(jié)果的可信度產(chǎn)生嚴(yán)重懷疑。
.........
1.2 研究的主要內(nèi)容
本文研究的主要內(nèi)容提高搜索引擎搜索結(jié)果的可信度,研究?jī)?nèi)容可分為可信搜索引擎的設(shè)計(jì)、實(shí)現(xiàn)與實(shí)驗(yàn)結(jié)果分析三部分。可信搜索引擎的設(shè)計(jì)又可分可信數(shù)據(jù)采集子系統(tǒng)的設(shè)計(jì)、可信檢索子系統(tǒng)的設(shè)計(jì)兩部分。為了提高采集子系統(tǒng)數(shù)據(jù)的可信度,本文主要對(duì)采集子系統(tǒng)的算法加以改進(jìn)。Nutch 的采集子系統(tǒng)采用了 OPIC 算法,通過改進(jìn) OPIC 算法的缺點(diǎn),來提高采集數(shù)據(jù)的可信度。OPIC 算法的主要缺點(diǎn)有搜索結(jié)果偏重歷史網(wǎng)頁、網(wǎng)頁的評(píng)價(jià)不考慮用戶體驗(yàn)、主題漂移問題、網(wǎng)頁排序作弊等。 本文的基本思想是在基于鏈接的 OPIC 算法的基礎(chǔ)上,考慮影響網(wǎng)頁排序的其他網(wǎng)頁屬性,形成網(wǎng)頁評(píng)分因素的多元化。根據(jù)這一思想,在原有 OPIC 算法的基礎(chǔ)上提出可信度更高的排序算法,從而得出更加合理的排序分值。 用戶的點(diǎn)擊率屬性是用戶對(duì)網(wǎng)頁評(píng)價(jià)的體現(xiàn),在搜索引擎的算法中應(yīng)該充分分析用戶瀏覽行為對(duì)網(wǎng)頁評(píng)分的影響,用戶對(duì)網(wǎng)頁的點(diǎn)擊率就是網(wǎng)頁受用戶歡迎程度的最佳體現(xiàn)形式。 本文在開源 OPIC 算法的基礎(chǔ)上,提出了 TS 算法。該算法通過基于索引屬性的改進(jìn),加入網(wǎng)頁的創(chuàng)建時(shí)間、網(wǎng)頁深度和用戶平均點(diǎn)擊率三個(gè)屬性,有效改善了 OPIC算法偏重歷史網(wǎng)頁等缺點(diǎn),使搜索結(jié)果更加合理可靠,完成可信數(shù)據(jù)采集子系統(tǒng)的設(shè)計(jì)。
.........
2 搜索引擎理論與相關(guān)技術(shù)
互聯(lián)網(wǎng)信息量在過去的十五年間獲得爆發(fā)式的增長(zhǎng),個(gè)人用戶發(fā)布信息的門檻越來越低,大量無關(guān)的、虛假的、冗余的數(shù)據(jù)信息嚴(yán)重干擾了用戶對(duì)相關(guān)有用信息的準(zhǔn)確性的選擇。這些因素導(dǎo)致信息過載的問題越來越突出,而搜索引擎是解決信息過載的唯一有效方式。本章系統(tǒng)介紹了搜索引擎的基本構(gòu)成、搜索引擎的分類、主流的排序算法等內(nèi)容,并對(duì) Nutch 做了詳細(xì)介紹。
2.1 搜索引擎基本構(gòu)成
搜索引擎需要復(fù)雜的架構(gòu)與算法,不同的搜索引擎在操作過程中存在許多差異,但是基本結(jié)構(gòu)大致相同,通常有網(wǎng)絡(luò)爬蟲、分析器、索引器、搜索器、用戶接口五部分組成,如圖 2.1 所示。網(wǎng)絡(luò)爬蟲可以將海量網(wǎng)頁數(shù)據(jù)傳送到本地,它是搜索引擎很關(guān)鍵的組成部分。首先,從互聯(lián)網(wǎng)上精心選擇一部分網(wǎng)頁作為種子 URL,將這些種子 URL 放入待抓取隊(duì)列中,爬蟲從待抓取隊(duì)列中依次下載網(wǎng)頁,對(duì)于下載到本地的網(wǎng)頁進(jìn)行解析,然后再將解析出來的網(wǎng)址 URL 放入爬蟲的待抓取隊(duì)列中循環(huán)采集,直到待抓取隊(duì)列為空,完成一輪抓取過程。 PageRank 算法是基于鏈接來計(jì)算網(wǎng)頁的 PR 值,利用 PageRank 的思想可以對(duì)待抓取 URL 列表進(jìn)行優(yōu)先級(jí)排序。 將已經(jīng)下載的網(wǎng)頁集合和待抓取的 URL 隊(duì)列中的 URL 一起形成網(wǎng)頁集合。在此集合內(nèi)部進(jìn)行 PageRank 計(jì)算,然后,將待抓取URL 隊(duì)列里的網(wǎng)頁按照 PR 值降序排列,形成爬蟲依次抓取的 URL 列表。由于爬蟲在抓取過程中只能計(jì)算一部分網(wǎng)頁的 PR 值,所以在數(shù)據(jù)采集階段進(jìn)行 PageRank 計(jì)算和網(wǎng)頁真正的 PR 值存在較大誤差,非完全 PageRank 策略存在較大爭(zhēng)議。
..........
2.2 搜索引擎的分類
搜索引擎根據(jù)其工作原理的不同可分為三類:目錄式搜索引擎、全文搜索引擎、元搜索引擎。目錄式搜索引擎[32]以現(xiàn)在的觀點(diǎn)來看它并不算是真正的搜索引擎,它只是按照主題不同將網(wǎng)站鏈接排列列表,用戶一般可以直接采用點(diǎn)擊與查詢主題相關(guān)的網(wǎng)站鏈接就能得到相關(guān)信息。 雅虎是這類搜索引擎的代表,通過人工整理把屬于不同主題的網(wǎng)站分類羅列出來,用戶可以通過分級(jí)目錄查找不同主題的相關(guān)內(nèi)容。這種搜索引擎的查詢范圍有限,查全率低,但是這種純?nèi)斯ふ沓鰜淼降姆绞,雖然收錄網(wǎng)站效率不高,但收錄的網(wǎng)站質(zhì)量一般都比較高,所以內(nèi)容的有很高的可信度。這種搜索由于更新不及時(shí)、信息量少、查全率低,所以在逐漸被全文搜索引擎所取代,即使存在也是采用和全文搜索引擎相結(jié)合的形式出現(xiàn)。這種搜索引擎的優(yōu)點(diǎn)是結(jié)構(gòu)層次清晰,便于快速查找相關(guān)主題,網(wǎng)站內(nèi)容質(zhì)量也比較高,缺點(diǎn)是這種搜索引擎更新速度慢,搜索范圍小,不容易查找到交叉類的內(nèi)容。
........
3 可信數(shù)據(jù)采集子系統(tǒng)的分析與設(shè)計(jì) ...... 21
3.1 數(shù)據(jù)采集子系統(tǒng)原理分析 ........... 21
3.2 可信數(shù)據(jù)采集子系統(tǒng)設(shè)計(jì) .......... 25
3.3 本章小節(jié) ....... 33
4 可信檢索子系統(tǒng)分析與設(shè)計(jì) ......... 35
4.1 檢索子系統(tǒng)原理分析 .......... 35
4.1.1 檢索子系統(tǒng)基本流程 ....... 35
4.1.2 檢索子系統(tǒng)向量空間模型 ........ 36
4.2 Lucene 檢索算法 .......... 38
4.2.1 Lucene 相關(guān)性因素 ........... 38
4.2.2 Lucene 排序計(jì)算 ....... 38
4.3 可信搜索引擎檢索算法改進(jìn) ...... 39
4.3.1 可信搜索檢索子系統(tǒng)設(shè)計(jì)方案 ....... 39
4.3.2 可信搜索檢索子系統(tǒng)算法 ....... 40
4.3.3 可信檢索子系統(tǒng)程序設(shè)計(jì) ....... 41
4.4 本章小節(jié) ...... 42
5 可信搜索引擎的實(shí)現(xiàn) ...... 43
5.1 系統(tǒng)運(yùn)行環(huán)境 ...... 43
5.2 可信搜索引擎模型部署 ...... 43
5.3 本章小節(jié) ...... 50
5 可信搜索引擎的實(shí)現(xiàn)
5.1 Nutch 版本選擇
Nutch 是一個(gè)開源的爬蟲項(xiàng)目,該項(xiàng)目可高度擴(kuò)展以及個(gè)性化定制,來自于Apache 下的 Lucene 項(xiàng)目,該 Nutch 在爬蟲抓取環(huán)節(jié)比 Lucene 有了較大的進(jìn)步,它既可以抓取本地?cái)?shù)據(jù),也可以抓取互聯(lián)網(wǎng)數(shù)據(jù),具體各個(gè)Nutch版本可以通過Apache的官網(wǎng) Nutch 目錄下載()。 Nutch 的版本可以分為兩大類,一類是以 1.x 版本,一類是 2.x 版本詳細(xì)介紹如下: 1.x 該版本的 Nutch 是一個(gè)成熟搜索引擎,具有完善的插件,采用成熟的基于Hadoop 架構(gòu),底層存儲(chǔ)使用的是 HDFS 文件系統(tǒng)來存儲(chǔ)索引。Nutch1.2 之前,Nutch提供完整的部署文件,Nutch1.2 之后的版本就只提供源代碼,需要用戶自己編譯Nutch,所以如果在個(gè)性化定制程度要求不高,快速部署的條件下 Nutch1.2 是最優(yōu)選擇。2.x Nutch2.x 與之前 Nutch 版本最大的不同,就是文件存儲(chǔ)系統(tǒng)的變化,該版本Nutch 采用 Apache Gora 的 ORM 框架,使得 Nutch 可以訪問 HBase、Accumulo、Cassandra、MySQL 等數(shù)據(jù)庫,這樣索引存儲(chǔ)在數(shù)據(jù)庫中就可應(yīng)靈活地讀取解析出來的索引庫。Nutch2.x 的可定制性大大提高,但是 Nutch2.x 還是一個(gè)不成熟的搜索引擎,該版本的 Nutch 也是只提供源代碼,需要在 Eclipse 中重新編譯運(yùn)行。 綜合上述 Nutch 版本的功能介紹,本文采用可定制化更高,功能更加靈活的Nutch2.x 版本用于可信搜索引擎采集子系統(tǒng)的構(gòu)建。
總結(jié)
本文主要研究工作可分為四大部分,分別是可信采集子系統(tǒng)設(shè)計(jì)、可信檢索子系統(tǒng)設(shè)計(jì)、可信搜索引擎的實(shí)現(xiàn)、可信搜索引擎實(shí)驗(yàn)分析。四部分具體工作如下所示。
1) 可信數(shù)據(jù)采集子系統(tǒng)設(shè)計(jì) 本節(jié)的核心內(nèi)容就是分析傳統(tǒng)的鏈接算法以及重點(diǎn)研究 OPIC 算法的工作原理及其優(yōu)缺點(diǎn),并且根據(jù)它的不足,提出改進(jìn)方案。通過分析可知,OPIC 算法雖然在傳統(tǒng)的 PageRank 算法的基礎(chǔ)上有一定的改進(jìn),但是還是不能避免鏈接算法過于偏重歷史網(wǎng)頁這一缺點(diǎn),同時(shí)由于評(píng)分因素的單一性,還容易造成主題漂移、網(wǎng)頁作弊、忽視用戶反饋信息等弊病。本文根據(jù)這些缺點(diǎn),結(jié)合網(wǎng)頁的時(shí)間屬性、網(wǎng)頁深度屬性和點(diǎn)擊率屬性提出了基于 OPIC 算法改進(jìn)的 TS 算法,,改進(jìn)后的算法在理論上可以有針對(duì)性地改善原有算法存在的不足,并且基于 TS 算法設(shè)計(jì)可信數(shù)據(jù)采集子系統(tǒng)。
2) 可信檢索子系統(tǒng)設(shè)計(jì) 為了設(shè)計(jì)可信搜索引擎的檢索子系統(tǒng),本文采用了基于向量空間模型的相似度算法的 Lucene 算法與數(shù)據(jù)采集子系統(tǒng)的 TS 算法做結(jié)合,形成可信檢索子系統(tǒng)的評(píng)分算法。有效改善了原來檢索算法只考慮相似度單一因素的缺點(diǎn),將采集子系統(tǒng)對(duì)網(wǎng)頁的評(píng)分客觀地反映到最終的搜索結(jié)果中,提高了搜索結(jié)果的可信度。
3) 可信搜索引擎的實(shí)現(xiàn) 本節(jié)的主要內(nèi)容就是部署可信搜索引擎,根據(jù)可信數(shù)據(jù)采集系統(tǒng)和可信檢索系統(tǒng)的設(shè)計(jì),構(gòu)建了可信搜索引擎所需要的網(wǎng)絡(luò)爬蟲、解析器、索引庫、檢索器、用戶接口構(gòu)建了一個(gè)完整的可信搜索引擎模型,然后,通過構(gòu)建種子文件,設(shè)置網(wǎng)絡(luò)爬蟲的運(yùn)行參數(shù),啟動(dòng)數(shù)據(jù)采集系統(tǒng)采集網(wǎng)頁,通過解析器的分詞構(gòu)建成了完整的索引庫,最后設(shè)計(jì)檢索器和用戶接口,完成可信搜索引擎的部署。
.........
參考文獻(xiàn)(略)
本文編號(hào):52232
本文鏈接:http://sikaile.net/wenshubaike/lwfw/52232.html