




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本 科 生 畢 業(yè) 論 文網(wǎng)絡(luò)搜索引擎的分析院 系: 信息科學(xué)與技術(shù) 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)教師: 摘要隨著互聯(lián)網(wǎng)的飛速發(fā)展,信息革命引發(fā)的一個(gè)特別的工具-搜索引擎,其作用是在幾十億之間現(xiàn)有的網(wǎng)站中找出具體的用戶想要查找的資料。大家都知道,網(wǎng)絡(luò)搜索引擎已成為最重要的網(wǎng)絡(luò)信息搜索工具,以獲取以無法估計(jì)的速度出現(xiàn)的網(wǎng)頁信息。到目前為止,很多以前流行的搜索引擎已經(jīng)漸漸消失,其他新的搜索引擎又開始出現(xiàn)。但是在近幾年出現(xiàn)的基于各種不同搜索算法的搜索引擎中, google已經(jīng)成為最流行的和成功的搜索引擎之一,google為何能夠成功在很大程度上歸因于簡(jiǎn)單而優(yōu)雅的pagera
2、nk算法。該算法的實(shí)現(xiàn)原理很簡(jiǎn)單,當(dāng)用戶提交他或她的想要查詢信息時(shí),搜索引擎分析其數(shù)據(jù)庫中已經(jīng)存放網(wǎng)站,然后返回用戶想要查詢的超鏈接列表。更重要的是,此列表按照與用戶查詢信息的相關(guān)度進(jìn)行排序,以方便用戶準(zhǔn)確有效地找到想要查詢的網(wǎng)頁。本論文首先討論搜索引擎的發(fā)展歷史、現(xiàn)實(shí)重要意義以及其發(fā)展趨勢(shì)。接著詳細(xì)介紹網(wǎng)頁排序算法的實(shí)現(xiàn)原理、該算法的優(yōu)缺點(diǎn)和如何改進(jìn)該算法、以及對(duì)網(wǎng)頁排序算法進(jìn)行實(shí)例分析,進(jìn)一步論述了google采用的網(wǎng)頁排序算法為何會(huì)取得如此大的成功。最后重點(diǎn)地介紹如何構(gòu)建簡(jiǎn)單有效的搜索引擎,這也是全文的難點(diǎn),這里只是實(shí)現(xiàn)搜索引擎的核心功能,還有更多搜索的功能急需進(jìn)一步完善。關(guān)鍵詞: 搜索
3、引擎 網(wǎng)頁排序算法 構(gòu)建搜索引擎 超鏈接abstractwith the development of internet, the information revolution gives rise to the search engine, a special tool whose task is to identify specifically information among billions of existing websites those are relevant to the users query. as we all know, web search engines ha
4、ve become the most important tools to access information that appear at the speed unevaluated. by now, many of search engines have gone out of business while others have merged. however, among millions of them based on various algorithms that have emerged in recent years, google has become one of th
5、e most popular and successful one and this companys triumph largely attributes to the simple but elegant algorithm, pagerank algorithm. this principle of this algorithm implements as follows. when a user submits his or her query, the search engine analyzes its repository of stored web sites and retu
6、rns the list of hyperlinks to those that contain information requested by the query. most importantly, this list is ordered so that most relevant web sites come up first, which might be convenient for the users to find the targets wanted. in this paper it begins our topic with the search engines his
7、tory of development, its practical significance and the future trend developed. then we discuss the principle of pagerank algorithm in detail, the algorithms merit and shortage, also the modified methods about this algorithm and numerical tests on pagerank algorithm. and it indicates that why google
8、s core search algorithm have so much potential for development. the last but not least, how to build effective search engines will be introduced. and how to efficiently build a simple engine will be the focus of this paper. in addition, the search engine is constructed to only achieve the core funct
9、ion, and there are many urgent functions to be improved.keywords: search engine pagerank algorithm build the index hyperlink目 錄摘要iabstractii第一章 前言11.1搜索引擎的歷史11.2搜索引擎的分類21.3搜索引擎的現(xiàn)實(shí)意義31.4搜索引擎的發(fā)展趨勢(shì)4第二章 搜索引擎原理52.1搜索引擎原理分析52.1.1收集信息62.1.2建立索引72.1.3查詢并返回結(jié)果72.1.4用戶接口72.2pagerank算法82.2.1算法原理82.2.2算法實(shí)例分析92.2
10、.2.1第一次計(jì)算第二次計(jì)算第n次計(jì)算142.2.3算法的不足偏重舊網(wǎng)頁主題飄移現(xiàn)象專業(yè)站點(diǎn)被忽視網(wǎng)頁中超鏈接對(duì)網(wǎng)站pr值的影響152.2.4算法的改進(jìn)具有時(shí)間反饋的改進(jìn)基于網(wǎng)頁鏈接和內(nèi)容分析的改進(jìn)17第三章 構(gòu)建搜索引擎193.1lucene入門193.1.1什么是lucene193.1.2lucene的特點(diǎn)193.1.3lucene構(gòu)建搜索引擎基本流程建立索引搜索流程213.2lucene檢索結(jié)果排序223.2.1
11、評(píng)分算法公式223.2.2評(píng)分算法的特點(diǎn)與不足223.2.3評(píng)分算法公式的改進(jìn)233.2.4另一種評(píng)分算法-向量空間算法243.3lucene構(gòu)建搜索引擎253.3.1構(gòu)建運(yùn)行環(huán)境253.3.2搜索引擎的代碼實(shí)現(xiàn)索引建立查詢2搜索結(jié)果28第四章 結(jié)論31致謝32參考文獻(xiàn)33第一章 前言1.1 搜索引擎的歷史實(shí)際上所說搜索引擎是在近10年的不斷發(fā)展中逐步形成的,建立在互聯(lián)網(wǎng)中和計(jì)算機(jī)技術(shù)之上。其實(shí)也有人說搜索引擎的鼻祖就是黃頁,誕生于19世紀(jì)末,因?yàn)辄S頁在電話誕生后成為了以電話為主體的信息門戶,而且黃頁把有電話的企業(yè)分門別類,的確與現(xiàn)的搜索引擎
12、有相似之處。下面就簡(jiǎn)短地介紹搜索引擎的發(fā)展歷史1:Ø 1990 年由montreal 的mcgill university 學(xué)生alan emtage、peter deutsch、bill wheelan 發(fā)明的archie。后來,程序員們開發(fā)出了一個(gè)名叫“spider”(蜘蛛)的“robot”(機(jī)器人)程序,它能自動(dòng)以人類無法達(dá)到的速度不斷重復(fù)地在網(wǎng)絡(luò)上檢索信息。Ø 1993年matthew gray開發(fā)了 world wide web wanderer,這是第一個(gè)利用html網(wǎng)頁之間的鏈接關(guān)系來檢測(cè)萬維網(wǎng)規(guī)模的“機(jī)器人(robot)”程序。開始,它僅僅用來統(tǒng)計(jì)互聯(lián)網(wǎng)上的
13、服務(wù)器數(shù)量,后來也能夠捕獲網(wǎng)址(url)。Ø 1994年,第一個(gè)既可搜索又可瀏覽的分類目錄einet galaxy(tradewave galaxy)誕生。除了網(wǎng)站搜索,它還支持gopher和telnet 搜索。Ø 1994年7月,卡內(nèi)基·梅隆大學(xué)(carnegie mellon university) 的michael mauldin將john leavitt的spider程序接入到其索引程序中,創(chuàng)建了lycos。除了相關(guān)性排序外,lycos還提供了前綴匹配和字符相近限制,lycos第一個(gè)在搜索結(jié)果中使用了網(wǎng)頁自動(dòng)摘要,而最大的優(yōu)勢(shì)還是它遠(yuǎn)勝過其它搜索引擎的數(shù)據(jù)
14、量。Ø 1995年12月,dec的正式發(fā)布altavista。altavista是第一個(gè)支持自然語言搜索的搜索引擎,第一個(gè)實(shí)現(xiàn)高級(jí)搜索語法的搜索引擎(如and, or, not等)。Ø 1999年2月,google完成了從alpha版到beta版的蛻變。google以網(wǎng)頁級(jí)別(pagerank)為基礎(chǔ),判斷網(wǎng)頁的重要性,使得搜索結(jié)果的相關(guān)性大大增強(qiáng)。而且google在pagerank、動(dòng)態(tài)摘要、網(wǎng)頁快照、dailyrefresh、多文檔格式支持、地圖、股票、詞典、尋人等集成搜索、多語言支持等,像altavista一樣,再一次徹底改變了搜索引擎的定義。Ø 2000年
15、1月,超鏈分析專利發(fā)明人、前infoseek資深工程師李彥宏與好友徐勇(加州伯克利分校博士)在北京中關(guān)村創(chuàng)立了百度(baidu)公司。2001年8月發(fā)布b搜索引擎beta版(此前baidu只為其它門戶網(wǎng)站搜狐、新浪、tom等提供搜索引擎),2001年10月22日正式發(fā)布baidu搜索引擎。Ø 2005年6月,新浪正式推出自主研發(fā)的搜索引擎“愛問”。1.2 搜索引擎的分類計(jì)算機(jī)技術(shù)飛速發(fā)展,關(guān)于搜索引擎的定義和發(fā)展過程,按其工作方式主要可分為全文搜索引擎、目錄索引類搜索引擎和元搜索引擎三類2。Ø 全文搜索引擎全文搜索引擎是名副其實(shí)的搜索引擎,它通過從互聯(lián)網(wǎng)上提取各網(wǎng)頁的信息而
16、建立的數(shù)據(jù)庫中,檢索與用戶查詢條件匹配的相關(guān)記錄,然后按一定的順序返回給用戶。而數(shù)據(jù)庫的建立是通過一個(gè)叫網(wǎng)絡(luò)機(jī)器人或叫網(wǎng)絡(luò)蜘蛛的軟件,定期自動(dòng)分析網(wǎng)絡(luò)上的各種鏈接并獲取網(wǎng)頁信息內(nèi)容,按規(guī)則加以分析整理,記入數(shù)據(jù)庫。此搜索引擎主要依靠網(wǎng)絡(luò)機(jī)器人搜索數(shù)據(jù),因此需要的數(shù)據(jù)庫容量非常龐大,但是收集內(nèi)容往往不夠準(zhǔn)確??梢钥闯觯俣群蚲oogle就是典型的全文搜索引擎系統(tǒng): Ø 目錄索引類搜索引擎目錄索引類搜索引擎雖然也具有搜索功能,卻從嚴(yán)格意義上來講不能算是真正的搜索引擎。因?yàn)榇怂阉饕媸峭ㄟ^人工的方式收集整理網(wǎng)絡(luò)資料形成數(shù)據(jù)庫的,能夠提供更為準(zhǔn)確的查詢結(jié)果,但收集的內(nèi)容卻非常有限。用戶完全可
17、以不用進(jìn)行關(guān)鍵詞查詢,僅靠分類目錄也可找到需要的信息。主要代表如yahoo雅虎,open directory project(dmoz),網(wǎng)易搜索。 Ø 元搜索引擎元搜索引擎可以在接受用戶查詢請(qǐng)求時(shí),同時(shí)在其他多個(gè)引擎上進(jìn)行搜索,并將搜索結(jié)果返回給用戶。著名的元搜索引擎有infospace、dogpile、vivisimo。 1.3 搜索引擎的現(xiàn)實(shí)意義互聯(lián)網(wǎng)正以前所未有的態(tài)勢(shì)改變整個(gè)世界,它現(xiàn)在已經(jīng)成為了人類有史以來資源數(shù)量最多、資源種類最全、資源規(guī)模最大的一個(gè)綜合信息庫。其信息來源豐富、分布廣泛,各種類型信息資源異構(gòu)地分布于網(wǎng)絡(luò)空間中,如果不能使龐雜的信息有序化,就很難獲取。如何準(zhǔn)
18、確有效地從互聯(lián)網(wǎng)上獲取信息,搜索引擎的重要性就顯得越來越重要。搜索引擎的工作原理實(shí)質(zhì)是信息的獲取,傳統(tǒng)的信息獲取技術(shù)是通過線性匹配查找的資源,這種方法無需對(duì)查找資源中的信息進(jìn)行預(yù)處理,僅適用于資源較少的情況。但面對(duì)當(dāng)前海量的信息,如何能夠快速、準(zhǔn)確、全面地獲取信息呢?一般信息獲取可為以下幾個(gè)部分:1) 在獲取信息之前,必須先構(gòu)建文本數(shù)據(jù)庫。這個(gè)文本數(shù)據(jù)用來保存所有用戶可能檢索的信息,數(shù)據(jù)庫的信息可能會(huì)不斷地變化。但是一旦文本模型確定下來后,就不應(yīng)對(duì)其再進(jìn)行大的變動(dòng)。2) 有了這種文本模型后,就應(yīng)該根據(jù)數(shù)據(jù)庫內(nèi)的文本建立索引。索引可以大大提高信息檢索的速度。采用哪種方式取決于信息檢索系統(tǒng)的規(guī)模。
19、大型信息檢索系統(tǒng)均采用倒排的方式來建立索引。3) 建立好索引后,就可以開始對(duì)其進(jìn)行檢索。通常是用戶提交一個(gè)檢索請(qǐng)求,該請(qǐng)求將被分析,然后利用文本操作進(jìn)行處理。對(duì)于真實(shí)的信息檢索系統(tǒng),在真正處理查詢請(qǐng)求前還可以進(jìn)行一些預(yù)處理。4) 根據(jù)用戶的查詢返回檢索結(jié)果,通常需要對(duì)檢索結(jié)果進(jìn)行一定的排序與過濾,以便把重要的檢索信息排在最前面。 用流程圖表示搜索引擎工作流程如下: 圖1-1 搜索引擎工作流程1.4 搜索引擎的發(fā)展趨勢(shì)在互聯(lián)網(wǎng)的發(fā)展初期,網(wǎng)站的數(shù)量比較少,信息查找相對(duì)容易。但是伴隨著網(wǎng)絡(luò)信息以指數(shù)的膨脹速度增長(zhǎng),單純的簡(jiǎn)單搜索已經(jīng)遠(yuǎn)遠(yuǎn)無法滿足用戶的需要。因此各類搜索引擎的品牌越來越多,如最初的g
20、oogle、yahoo到現(xiàn)今的baidu、msn、sogou等滿足大眾信息檢索需求的專業(yè)搜索網(wǎng)站也應(yīng)運(yùn)而生?,F(xiàn)在的搜索引擎往往將自己的搜索范圍擴(kuò)大到整個(gè)因特網(wǎng)上,然而數(shù)據(jù)庫規(guī)模龐大,為了提高查詢速度而往往忽視了查詢信息質(zhì)量。對(duì)于一次檢索,大型搜索引擎往往有成千上萬條符合要求的信息,而用戶只會(huì)瀏覽其中幾十條,也就是說用戶并不需要得到所有符合檢索要求的信息,因此全面、準(zhǔn)確、快速是衡量搜索引擎的重要標(biāo)準(zhǔn)。搜索引擎的發(fā)展趨勢(shì)應(yīng)該是更強(qiáng)調(diào)人的因素,用戶只需告訴搜索引擎想要查詢什么,而無需理會(huì)如何實(shí)現(xiàn)。而搜索引擎應(yīng)該具有判斷性收集信息的功能,即根據(jù)特定用戶的行為來決定信息的取舍,提供多樣化服務(wù),也就是說將
21、自動(dòng)分類技術(shù)、中文內(nèi)容分析技術(shù)及區(qū)域識(shí)別技術(shù)應(yīng)用到大型搜索引擎中,除了在信息檢索速度、更新頻率等基本技術(shù)指標(biāo)方面處于領(lǐng)先地位外,相關(guān)網(wǎng)頁檢索、糾錯(cuò)、模糊查詢、語音查詢技術(shù)也具有較高的水準(zhǔn)3。目前各搜索引擎的搜索功能仍然處理數(shù)據(jù)庫基礎(chǔ)建設(shè)和流程挖掘?qū)用妫阉鹘Y(jié)果仍處于對(duì)數(shù)據(jù)初步加工過程。但相信在不遠(yuǎn)的將來,搜索必然搜索流程的多次加工和搜索輸出項(xiàng)的個(gè)性化發(fā)展。一方面搜索巨頭的發(fā)展必將導(dǎo)致搜索服務(wù)繼續(xù)呈現(xiàn)高度集中的趨勢(shì);另一方面搜索技術(shù)、權(quán)力、需要、主體、利益等方面發(fā)生潛移默化的變化,又開始呼喚中小服務(wù)商的崛起以及與之密切相關(guān)的搜索領(lǐng)域的多樣化競(jìng)爭(zhēng)格局,搜索商業(yè)的集中和發(fā)散同時(shí)存在。第二章 搜索引擎
22、原理2.1 搜索引擎原理分析搜索引擎一般由搜索軟件、索引軟件和查詢軟件組成,其中搜索軟件用來在網(wǎng)絡(luò)上收集網(wǎng)絡(luò)信息;索引軟件對(duì)收集到網(wǎng)頁的信息進(jìn)行自動(dòng)標(biāo)引,并建立索引數(shù)據(jù)庫;查詢軟件則通過查詢索引數(shù)據(jù)庫為用戶提供服務(wù)。各種網(wǎng)絡(luò)搜索引擎通過網(wǎng)絡(luò)搜索軟件定期或不定期地在網(wǎng)絡(luò)上搜索信息,并對(duì)搜索到網(wǎng)絡(luò)信息進(jìn)行收集和整理,從而建立可供查詢的索引數(shù)據(jù)庫。因此搜索引擎的工作包括以下三個(gè)過程:一是在互聯(lián)網(wǎng)中發(fā)現(xiàn)、搜索網(wǎng)頁信息;二是對(duì)搜索的信息進(jìn)行提取和組織,生成索引數(shù)據(jù)庫;三是由檢索程序根據(jù)用戶輸入的查詢關(guān)鍵詞,在索引數(shù)據(jù)庫中快速查詢出相關(guān)文檔,進(jìn)行文檔與查詢內(nèi)容的相關(guān)度比較,對(duì)檢出結(jié)果進(jìn)行排序,并將查詢結(jié)果
23、返回給用戶。以下是搜索引擎的基本結(jié)構(gòu)4: 圖2-1 搜索引擎系統(tǒng)結(jié)構(gòu)圖 下面詳細(xì)地分析搜索引擎的工作三個(gè)流程以及相關(guān)的用戶接口:2.1.1 收集信息搜索引擎中網(wǎng)頁的采集工作主要由網(wǎng)絡(luò)搜索軟件(如robot、spider、worm)完成, 開發(fā)出性能良好的網(wǎng)絡(luò)搜索軟件是一個(gè)艱巨的工作。由于網(wǎng)絡(luò)帶寬窄、網(wǎng)頁更新快, 搜索引擎的網(wǎng)絡(luò)搜索軟件搜集所有網(wǎng)頁已經(jīng)成為不可能的事情,優(yōu)先獲取重要網(wǎng)頁逐漸成了網(wǎng)絡(luò)信息搜索中重點(diǎn)研究的問題。不同種類的搜索引擎有各自的信息收集方式和范圍,這樣就導(dǎo)致不同的搜索在檢索結(jié)果的數(shù)量以及質(zhì)量產(chǎn)生很大的差別。例如有些搜索引擎會(huì)把搜索范圍發(fā)往每一個(gè)站點(diǎn),記錄下每一網(wǎng)頁的所有文本內(nèi)
24、容;有些搜索引擎則會(huì)搜索那些剛剛被更新的網(wǎng)站,然后再將其鏈接收集起來;有些搜索引擎首先分析數(shù)據(jù)庫中的地址,以判別哪個(gè)站點(diǎn)最受歡迎,然后再去記錄這些網(wǎng)站的信息。當(dāng)然,除了主動(dòng)搜索方式外,用戶還可以手動(dòng)提交網(wǎng)頁的url,即由網(wǎng)站的擁有者自行向搜索引擎提交網(wǎng)頁,并將提交的網(wǎng)頁放入搜索引擎數(shù)據(jù)庫中。2.1.2 建立索引搜索引擎的第二個(gè)過程是對(duì)搜索軟件采集到的信息進(jìn)行自動(dòng)標(biāo)引,建立可供查詢的索引數(shù)據(jù)庫。當(dāng)然不同搜索引擎的索引數(shù)據(jù)庫規(guī)模和記錄的內(nèi)容是不同的,數(shù)據(jù)庫的規(guī)模將直接影響查詢的召回率。例如,有些搜索引擎對(duì)網(wǎng)頁內(nèi)容全文索引,即對(duì)網(wǎng)頁中每一單詞進(jìn)行索引;有些搜索引擎對(duì)網(wǎng)頁某些特征或分類進(jìn)行信息提??;還
25、有一些搜索引擎則根據(jù)網(wǎng)頁的熱門程度來決定是否對(duì)網(wǎng)頁建立索引。2.1.3 查詢并返回結(jié)果搜索引擎的最后一個(gè)階段是負(fù)責(zé)接收用戶請(qǐng)求和對(duì)該請(qǐng)求進(jìn)行檢索,并按相關(guān)度返回給用戶。大多數(shù)搜索引擎除具備分類瀏覽和自由詞全文檢索等基本功能外,還包括詞語檢索、范圍檢索、概念檢索以及位置檢索等。2.1.4 用戶接口前面介紹搜索引擎的具體三個(gè)流程,下面談一下用戶接口的作用。用戶接口主要是輸入用戶查詢、顯示查詢結(jié)果以及提供用戶相關(guān)性反饋機(jī)制。其最主要目的是方便用戶使用搜索引擎,高效率、多方式地從搜索引擎中獲取有效、及時(shí)地信息。在眾多智能搜索系統(tǒng)中,超鏈接分析是近期大家主要研究的問題, 而搜索引擎google所采用的p
26、agerank 算法尤其得到認(rèn)可,下面就重點(diǎn)介紹pagerank算法的原理。2.2 pagerank算法2.2.1 算法原理Ø pagerank算法5是1998年由斯坦福大學(xué)的sergey brin 和lawrence page 提出,它是基于以下原理:如果網(wǎng)頁a存在一條指向網(wǎng)頁p的超鏈,則認(rèn)為網(wǎng)頁a得到網(wǎng)頁p的認(rèn)可;如果有多個(gè)網(wǎng)頁指向網(wǎng)頁a,則認(rèn)為網(wǎng)頁p的地位比較重要,即當(dāng)網(wǎng)頁a有一個(gè)鏈接指向網(wǎng)頁p時(shí),就認(rèn)為網(wǎng)頁p獲得了一定的分?jǐn)?shù),該分值的多少取決于網(wǎng)頁a 的重要程度,即網(wǎng)頁a 的重要性越大,網(wǎng)頁p獲得的分?jǐn)?shù)就越高.Ø 由于考慮到互聯(lián)網(wǎng)上的鏈接相互指向的復(fù)雜程度6,每個(gè)網(wǎng)
27、頁所得的分?jǐn)?shù)的計(jì)算過程是一個(gè)迭代的過程,最終網(wǎng)頁將依照所得分?jǐn)?shù)排序并將排序的結(jié)果交給用戶,這個(gè)量化的分?jǐn)?shù)就是pagerank值.用pagerank量化公式表示如下: 假設(shè)pr(a)是網(wǎng)頁a的頁面級(jí)別; d 為界于(0,1)區(qū)間的衰減系數(shù),一般取0.85左右; 表示指向網(wǎng)頁a的其它網(wǎng)頁; 為網(wǎng)頁向外指出的鏈接數(shù)目. page rank公式如下: (2.1)Ø 事實(shí)上,根據(jù)上述公式可知,pr值的計(jì)算并不是僅僅一次就能完成的;由于網(wǎng)頁之間的相互鏈接,任意網(wǎng)頁pr的變化,都會(huì)引起其他與之相關(guān)鏈接關(guān)系的網(wǎng)頁pr的變化,因此計(jì)算某一網(wǎng)頁的pr值,都要經(jīng)過多次反復(fù)計(jì)算,在達(dá)到一定次數(shù)的重復(fù)計(jì)算后,
28、各網(wǎng)頁基本達(dá)到穩(wěn)定。Ø 由上述公式可知,某網(wǎng)頁有較多的鏈入網(wǎng)頁,則說明其它許多網(wǎng)頁都認(rèn)為該網(wǎng)頁比較重要的;若較高pr的網(wǎng)頁指向該網(wǎng)頁,則認(rèn)為有更重要的網(wǎng)頁認(rèn)為該網(wǎng)頁重要;若其它網(wǎng)頁都只一條鏈接指向該網(wǎng)頁p,則認(rèn)為許多網(wǎng)頁都認(rèn)為該網(wǎng)頁比較重要,這樣網(wǎng)頁p被推薦的機(jī)會(huì)就會(huì)更大。網(wǎng)頁的pr值越高,那么該網(wǎng)頁在檢索結(jié)果列表的位置就越靠近。2.2.2 算法實(shí)例分析 我們清楚了pagerank算法迭代公式為: 下面我們來舉個(gè)實(shí)例具體分析pagerank算法的實(shí)現(xiàn):假設(shè)有五個(gè)網(wǎng)頁,它們之間的鏈接關(guān)系如下:圖2-2 初始鏈接結(jié)構(gòu)根據(jù)上述迭代公式,每個(gè)網(wǎng)頁的pr初始值為1,其中衰減因子d為0.75,這
29、樣每個(gè)網(wǎng)頁就相當(dāng)有0.25(1-d)不用于傳遞,即每個(gè)網(wǎng)頁中0.75被平均地傳遞到其它鏈出網(wǎng)頁中,下列是迭代公式的計(jì)算過程: 第一次計(jì)算l 首先,對(duì)于網(wǎng)頁a,它有一個(gè)鏈出網(wǎng)頁,考慮衰減因子之后,網(wǎng)頁a有0.25不用傳遞,其它0.75被傳遞到網(wǎng)頁b。 同理,網(wǎng)頁b、網(wǎng)頁c、網(wǎng)頁d也同樣只有一個(gè)鏈出網(wǎng)頁。l 其次,對(duì)于網(wǎng)頁e,它有三個(gè)鏈出網(wǎng)頁a、b、d,這樣在考慮衰減因子后,網(wǎng)頁中的0.75被平均傳遞到網(wǎng)頁a、b、d。l 最后,得到第一次計(jì)算結(jié)果的pr情況:l 網(wǎng)頁apr(a)=0.25(網(wǎng)頁a未傳遞給其它網(wǎng)頁)+0.25(來自網(wǎng)頁e) =0.5即l 網(wǎng)頁bpr(b)=0.25(網(wǎng)頁
30、b未傳遞給其它網(wǎng)頁)+0.75(來自網(wǎng)頁a)+0.25(來自網(wǎng)頁e)+0.75(來自網(wǎng)頁d)=1.25 即l 網(wǎng)頁cpr(c)= 0.25(網(wǎng)頁c未傳遞給其它網(wǎng)頁)=0.25即 pr(c)=0.25l 網(wǎng)頁dpr(d)=0.25(網(wǎng)頁d未傳遞給其它網(wǎng)頁)+0.75(來自網(wǎng)頁c)+0.25(來自網(wǎng)頁e)=1.25即l 網(wǎng)頁epr(e) =0.25(網(wǎng)頁e未傳遞給其它網(wǎng)頁)+0.75(網(wǎng)頁b未傳遞給其它網(wǎng)頁)=1.00即 l 這樣可以得到第一次計(jì)算過程中網(wǎng)頁之間傳遞的pr情況如下: 圖2-3 第一次計(jì)算后網(wǎng)頁鏈接 第二次計(jì)算由于第一次計(jì)算后改變各網(wǎng)頁的pr值,勢(shì)必會(huì)引起與它相鄰網(wǎng)頁p
31、r值的改變,例如對(duì)于網(wǎng)頁a,網(wǎng)頁e的pr值改變必然會(huì)引起網(wǎng)頁a的pr值改變。因此計(jì)算仍然需要繼續(xù)。第二次計(jì)算各網(wǎng)頁的pr值與第一次計(jì)算各網(wǎng)頁的pr值方法相似,計(jì)算過程如下:l 網(wǎng)頁apr(a)=0.25(網(wǎng)頁a未傳遞給其它網(wǎng)頁)+0.50(來自網(wǎng)頁e)=0.75即l 網(wǎng)頁bpr(b)=0.25(網(wǎng)頁b未傳遞給其它網(wǎng)頁)+0.375(來自網(wǎng)頁a)+0.25(來自網(wǎng)頁e)+0.9375(來自網(wǎng)頁d)=1.8125 即l 網(wǎng)頁cpr(c) =0.25l 網(wǎng)頁dpr(d)=0.25(網(wǎng)頁d未傳遞給其它網(wǎng)頁)+0.1875(來自網(wǎng)頁c)+ 0.25(來自網(wǎng)頁e)=0.6875即l 網(wǎng)頁e pr(e) =
32、0.25(網(wǎng)頁e未傳遞給其它網(wǎng)頁)+0.75(網(wǎng)頁b未傳遞給其它網(wǎng)頁) =1.00即 這樣就可以得到第二次計(jì)算后 圖2-4 第二次計(jì)算后網(wǎng)頁鏈接情況 第n次計(jì)算 每次計(jì)算后各網(wǎng)頁pr值隨著改變,從而引起了新一輪的計(jì)算,這樣不斷進(jìn)行迭代計(jì)算各網(wǎng)頁的pr值,直至各網(wǎng)頁的pr值趨于穩(wěn)定狀態(tài),最終的穩(wěn)定狀態(tài)pr值將作為各網(wǎng)頁的最終pr值。由上述計(jì)算過程可以看出,pagerank算法使所有網(wǎng)頁的總和非常巧妙地達(dá)到平衡,就像物理中能量守恒定律,所有網(wǎng)頁的pr值總和保持不變。例如上述計(jì)算中,各網(wǎng)頁的初始pr值總和為5,第一次計(jì)算后各網(wǎng)頁的pr值總和也為5,第二次計(jì)算后各網(wǎng)頁的pr值總和也為5。
33、同時(shí),我們可以發(fā)現(xiàn)網(wǎng)頁之間可以通過相互鏈接7來獲得反饋值,例如由上述計(jì)算可知,各網(wǎng)頁相互鏈接,各網(wǎng)頁與其它網(wǎng)頁鏈接可以得到鏈接網(wǎng)頁的反饋值。由此我們可以想到假如在一個(gè)網(wǎng)站上,網(wǎng)站擁有者可以根據(jù)各網(wǎng)頁鏈接的設(shè)置來影響到網(wǎng)頁的pr值,從而使網(wǎng)頁的pr值受到更多主觀因素的影響。例如google如果認(rèn)為某網(wǎng)站具有較大的影響力,那么它會(huì)把這個(gè)網(wǎng)站的pr值設(shè)置高一些,這樣就可以方便用戶更加準(zhǔn)確搜索到對(duì)應(yīng)的網(wǎng)站;假如google認(rèn)為某網(wǎng)站是低質(zhì)量的垃圾網(wǎng)站,那么它就會(huì)把該網(wǎng)站的pr值設(shè)置相對(duì)低一點(diǎn)。2.2.3 算法的不足pagerank算法提出是成功的,符合網(wǎng)絡(luò)發(fā)展搜索引擎的運(yùn)作趨勢(shì),google的成功運(yùn)作
34、就是一個(gè)極好例子。但是pagerank算法還存在一些明顯的不足,因?yàn)閜agerank算法的提出是基于傳統(tǒng)文獻(xiàn)引文分析方法,并不完全適應(yīng)于網(wǎng)絡(luò)環(huán)境。因?yàn)榫W(wǎng)頁尤其是一些門戶站點(diǎn)的網(wǎng)頁有太多的分散主題,不像一篇學(xué)術(shù)文獻(xiàn)通常有較為集中的主題;而且由于網(wǎng)絡(luò)世界的開放性,網(wǎng)頁是時(shí)刻變化的,人們可以根據(jù)需要進(jìn)行內(nèi)容以及鏈接的變更,也可以采用有效的鏈接策略來影響網(wǎng)頁的pr值,不像傳統(tǒng)學(xué)術(shù)文獻(xiàn)一經(jīng)出版就很少進(jìn)行更改。況且網(wǎng)站和網(wǎng)頁日益商業(yè)化,很多公司的網(wǎng)頁不會(huì)鏈接到其對(duì)手的網(wǎng)站。下面詳細(xì)介紹pagerank算法的不足之處。 偏重舊網(wǎng)頁從公式(2-1) (2-1) 可以看出pagerank算法偏重
35、舊網(wǎng)頁8,因?yàn)閺?1)式中可以看出決定一個(gè)網(wǎng)頁pr值的主要因素是指向該網(wǎng)頁的鏈接個(gè)數(shù),但由于網(wǎng)頁在網(wǎng)絡(luò)存在的時(shí) 間越長(zhǎng),那么它被鏈接的機(jī)會(huì)就越大。這樣由(1)式可以看出舊網(wǎng)頁pr值比 新網(wǎng)頁pr值大,也就是說pagerank偏重舊網(wǎng)頁。 主題飄移現(xiàn)象 由于pagerank算法僅僅對(duì)互聯(lián)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)分析,無法區(qū)分網(wǎng)頁中的鏈接和該網(wǎng)頁有關(guān)還是無關(guān)的,即無法判斷網(wǎng)頁間主題的相關(guān)性,這樣容易在最后的推薦結(jié)果出現(xiàn)大量與主題無關(guān)卻又與具有很高的pagerank值的網(wǎng)頁,即出現(xiàn)所謂的主題飄移現(xiàn)象9。例如你在google查詢“圖片”,但又因?yàn)槟承┲匾W(wǎng)站但又與本次查詢主題無關(guān)的網(wǎng)站pr值過高而
36、出現(xiàn)在最前方,這樣會(huì)加重用戶搜索到相應(yīng)目標(biāo)的速度,在一定程度上加重了用戶的負(fù)擔(dān)。 專業(yè)站點(diǎn)被忽視專業(yè)站點(diǎn)的訪問量遠(yuǎn)遠(yuǎn)少于通俗站點(diǎn)的訪問量10,比如某個(gè)學(xué)術(shù)網(wǎng)站,它的內(nèi)容再好,也不可能在短時(shí)間內(nèi)迅速地得到大量的超級(jí)鏈接,所以無法得到合適的排名。但是專業(yè)站點(diǎn)的論述往往比通俗站點(diǎn)的論述更深刻、更有價(jià)值。 網(wǎng)頁中超鏈接對(duì)網(wǎng)站pr值的影響網(wǎng)頁中的超鏈接形式11各異應(yīng)該區(qū)別對(duì)待,而公式(1) 卻無法正確對(duì)待一個(gè)網(wǎng)頁中指向的超鏈接。例如下圖:(b)圖在(a)圖的基礎(chǔ)上在網(wǎng)頁a增加三個(gè)指向重要網(wǎng)頁d、網(wǎng)頁e和網(wǎng)頁f的超鏈接。從客觀分析,應(yīng)該網(wǎng)頁a的pr值應(yīng)該有所增加。但是由公式(1
37、)分析,網(wǎng)頁a的pr值不變,而且由于網(wǎng)頁a的鏈接數(shù)據(jù)增加,因此網(wǎng)站b的pr值有所減少,這樣不合常理的。產(chǎn)生這種情況的主要原因是過于簡(jiǎn)單地判定一個(gè)網(wǎng)頁指出的超鏈接會(huì)對(duì)該網(wǎng)頁產(chǎn)生負(fù)面影響。其實(shí)應(yīng)該分別看待這個(gè)問題:如果網(wǎng)頁a中的一個(gè)超鏈接所指向的網(wǎng)頁b在內(nèi)容上與該網(wǎng)頁內(nèi)容相關(guān),則此超鏈接增加網(wǎng)頁a的pr值,否則該超鏈接會(huì)減少網(wǎng)頁a的pr值。 圖2-5 網(wǎng)頁間鏈接結(jié)構(gòu)2.2.4 算法的改進(jìn) 根據(jù)上述對(duì)page rank算法不足之處的分析,可以看出一個(gè)新網(wǎng)站、小網(wǎng)站或者專業(yè)學(xué)術(shù)網(wǎng)站,由于它們不可能在短時(shí)間內(nèi)迅速得到大量的超級(jí)鏈接,這樣就會(huì)影響到搜索返回結(jié)果排名順序的可靠性,因此必須對(duì)pagerank算
38、法進(jìn)行加以改進(jìn),為此我們可以從下面幾個(gè)方面進(jìn)行改進(jìn)11。 具有時(shí)間反饋12的改進(jìn)由公式(1)可以pagerank算法存在偏重于舊網(wǎng)頁的缺點(diǎn),不能地反映網(wǎng)頁的實(shí)際重要性,也不能很好地滿足客戶的要求。因此應(yīng)將某些關(guān)于日期的因素加入,比如網(wǎng)頁的發(fā)布日期,因此網(wǎng)頁發(fā)布日期的引入能夠使在網(wǎng)絡(luò)上存在時(shí)間長(zhǎng)的網(wǎng)頁在檢索結(jié)果排名中沉下去,而新網(wǎng)頁迅速升起來。但由于很多網(wǎng)頁都是由系統(tǒng)自動(dòng)生成,并且大量html網(wǎng)頁的格式不規(guī)范,很難在網(wǎng)頁中提取到此網(wǎng)頁的發(fā)布時(shí)間。因此如何才能更好地表征新網(wǎng)頁的特征呢?可以這樣考慮,把網(wǎng)頁存在的時(shí)間通過搜索引擎搜索周期數(shù)來表征,它的核心思想是考慮到搜索引擎的搜索周期為
39、半個(gè)月到一個(gè)月,因此若一個(gè)網(wǎng)頁存在的時(shí)間很久,那么它在一個(gè)搜索周期內(nèi)此網(wǎng)頁可能被搜索到多次。如果把我們一個(gè)網(wǎng)頁無論被搜索到多次,都看作是搜索到一次,那么就可以有效地克服pagerank算法偏重于舊網(wǎng)頁。 基于網(wǎng)頁鏈接和內(nèi)容分析的改進(jìn)n 在pagerank算法中,由于知名網(wǎng)站被大量網(wǎng)站鏈接,這使得此知名網(wǎng)站獲得較高的pr值,這樣相對(duì)于某個(gè)特定的查詢,即使它與查詢微弱相關(guān)也會(huì)排在檢索結(jié)果的前列,也就是出現(xiàn)了主題漂移現(xiàn)象,因此主題漂移使得查詢的相關(guān)性遭到極大的破壞。如何才能有效地克服pagerank這種缺點(diǎn)呢?由此可以使用基于網(wǎng)頁鏈接和內(nèi)容的分析,對(duì)查詢主題進(jìn)行相關(guān)性評(píng)價(jià)。n 假設(shè)q
40、為查詢主題;為查詢文檔;項(xiàng)i在查詢q中出現(xiàn)的次數(shù);項(xiàng)i在文檔中出現(xiàn)的次數(shù);是www上包含項(xiàng)i的文檔數(shù)目的估計(jì)值;這樣就可以得到主題q與文檔的相似度可以按以下公式計(jì)算: (2-2)n 在鏈接關(guān)系的基礎(chǔ)上,加入頁面與查詢主題的相關(guān)性權(quán)重,以使得所產(chǎn)生的pagerank值高的頁面是針對(duì)用戶查詢主題的,這就形成了wpagerank算法。改進(jìn)公式如下: (2-3)其中a為給定的一個(gè)網(wǎng)頁,假設(shè)指向它的網(wǎng)頁;分別網(wǎng)頁所含的鏈接數(shù);d為衰減因子, 一般取0.85;為網(wǎng)頁a的wpagerank值。n 對(duì)于上述wpagerank算法公式可以這樣理解,假設(shè)網(wǎng)絡(luò)上有一個(gè)主題瀏覽者wpagerank13是訪問到網(wǎng)頁a的
41、概率,它從初始頁面集出發(fā),按照頁面鏈接前進(jìn),從不執(zhí)行back操作。在每一個(gè)頁面,瀏覽者對(duì)此頁面的鏈接感興趣的概率和此鏈接與主題的相關(guān)性成正比例。也有可能瀏覽者對(duì)此頁面的鏈接不感興趣,這個(gè)可能的概率是d。從直觀上看,如果有多個(gè)頁面指向某個(gè)頁面,則該頁面的pagerank值必定會(huì)提高,但是wpagerank不一定會(huì)高;若有wpagerank很高的頁面指向它,則此頁wpagerank也會(huì)很高。因此可以很大地避免主題飄移的現(xiàn)象。第三章 構(gòu)建搜索引擎3.1 lucene入門3.1.1 什么是lucenelucene是一個(gè)用java寫的全文檢索引擎工具包14,可以方便地嵌入各種應(yīng)用中以實(shí)現(xiàn)全文檢索/索引功
42、能,雖然它不是一個(gè)完整的全文檢索引擎,但是它是一個(gè)全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎及部分文本分析引擎。lucene的目的是為軟件開發(fā)人員提供一個(gè)簡(jiǎn)單易用的工具包,以方便地在目標(biāo)系統(tǒng)中實(shí)現(xiàn)全文檢索的功能,或者以此為基礎(chǔ)建立起完整的全文檢索引擎。lucene功能強(qiáng)大,能夠?qū)θ魏螖?shù)據(jù)做索引和搜索。lucene不管數(shù)據(jù)源是什么格式,只要它能被轉(zhuǎn)化為文字的形式,就可以被lucene所分析利用。例如在word、html、pdf還是其他什么形式的文件,只要可以從中抽取出文字形式的內(nèi)容就可以被lucene所用,就可以對(duì)它們進(jìn)行索引以及搜索。lucene是一個(gè)開放源代碼的項(xiàng)目,自從問世之時(shí)起,
43、就引發(fā)了開發(fā)源代碼社區(qū)的巨大響應(yīng)。主要因?yàn)閘ucene提供一個(gè)全文檢索引擎的架構(gòu),具有可擴(kuò)展性且易理解,因而它不僅被用于構(gòu)建具體的全文檢索應(yīng)用,而且也將它集成到了各種系統(tǒng)軟件中,以及用它來構(gòu)建各種web應(yīng)用,甚至某些商業(yè)軟件也采用lucene作為其內(nèi)部全文檢索系統(tǒng)的核心。3.1.2 lucene的特點(diǎn)lucene作為一個(gè)全文檢索引擎,具有以下突出的優(yōu)點(diǎn):Ø 索引文件獨(dú)立于應(yīng)用平臺(tái),lucene定義了一套以8位字節(jié)為基礎(chǔ)的索引文件格式,使得能夠兼容或者在不同的系統(tǒng)平臺(tái)下共享建立的索引文件。Ø 由于其源碼的開放性,任何人都可以從網(wǎng)站上獲取最新源碼,并進(jìn)行二次開發(fā),擴(kuò)展其功能。&
44、#216; 強(qiáng)大的面向?qū)ο笙到y(tǒng)架構(gòu),有利于功能擴(kuò)展,以模塊化的思想來學(xué)習(xí),更有利于理解。Ø 擴(kuò)展索引的時(shí)候不斷創(chuàng)建新的索引文件,然后定期地把這些小索引文件合并到原先的大索引文件中。Ø 在傳統(tǒng)全文檢索引擎的倒排索引基礎(chǔ)上,實(shí)現(xiàn)分塊索引,能夠?qū)π碌奈募⑿∥募饕?,提升索引速度,再與原索引進(jìn)行合并,以達(dá)到優(yōu)化的目的。當(dāng)然,lucene也有許多不足之處:Ø 不提供在internet上采集信息的功能,也就是說沒有提供專門的搜索軟件對(duì)網(wǎng)頁信息進(jìn)行自動(dòng)采集。Ø 如何將用戶最感興趣、最重要的網(wǎng)頁放在搜索結(jié)果的靠前位置,lucene在這方面還有待完善。Ø 只
45、支持文本格式,如txt,html等,不支持word,pdf等文件。Ø 由于中文分詞的特殊性,lucene在設(shè)計(jì)時(shí)并沒有考慮亞洲文字的特殊性,因此不能對(duì)有中文內(nèi)容的文件進(jìn)行有效的搜索和查找。3.1.3 lucene構(gòu)建搜索引擎基本流程 建立索引索引技術(shù)主要有3種:倒排索引,后綴數(shù)組和簽名文件15。其中l(wèi)ucene采用的索引技術(shù)為倒排索引技術(shù),它對(duì)于關(guān)鍵詞的搜索非常有效。從整體看,lucene建立索引有以下4步:l 提取文本為了能夠使用lucene對(duì)文檔數(shù)據(jù)建立索引,需要將建立索引的文檔數(shù)據(jù)轉(zhuǎn)換成lucene可以處理的類型。例如為word文檔數(shù)據(jù)建立索引,首先應(yīng)從此文檔中提
46、取文本信息,這樣可以有利于lucene的分析。圖3-1 多類文檔處理l 構(gòu)建document為了將前面所提取出來的文本組裝成lucene可以識(shí)別的格式,應(yīng)建立適當(dāng)?shù)膁ocument,因?yàn)槿魏涡枰M(jìn)行索引的文件都必須被轉(zhuǎn)化為document對(duì)象才能被索引和搜索到。l 分析并建立索引在提取了需要lucene建立索引的數(shù)據(jù)并且創(chuàng)建了document之后,接下來lucene會(huì)首先對(duì)所要建立索引的數(shù)據(jù)進(jìn)行分析,以使得在建立索引時(shí)可以更加容易地處理這些數(shù)據(jù),然后索引器會(huì)按lucene所規(guī)定的索引格式將數(shù)據(jù)寫入索引文件中。 搜索流程Ø 初始化lucene的檢索工具indexsearc
47、her所有檢索都會(huì)用到lucene中最基本的檢索工具indexsearcher,但在使用indexsearcher之前,還要對(duì)其進(jìn)行初始化。即需要設(shè)置索引存放的路徑,這樣才能讓查詢器定位索引,用于后面進(jìn)行搜索。Ø 構(gòu)建query在使用query之前,需要首先生成一個(gè)query對(duì)象,需指明查詢字段采用什么樣的方式進(jìn)行查詢,如模糊查詢、語義查詢、短語查詢、范圍查詢以及組合查詢等。Ø 搜索并處理返回結(jié)果在構(gòu)建完query對(duì)象后,就可以使用前面已經(jīng)初始化好的indexsearcher工具進(jìn)行檢索。indexsearcher提供了良好的檢索接口,用戶只需簡(jiǎn)單地將query對(duì)象傳入,就
48、可以一個(gè)返回結(jié)果。3.2 lucene檢索結(jié)果排序3.2.1 評(píng)分算法公式lucene用于計(jì)算某個(gè)關(guān)鍵字在對(duì)應(yīng)于某個(gè)文檔的得分:. (3-1)其中表示詞條t在文檔d中出現(xiàn)的詞頻;表示詞條t在文檔中的倒排詞頻;表示在索引過程中設(shè)置的字段參數(shù);表示在字段中存儲(chǔ)了多少詞條。3.2.2 評(píng)分算法的特點(diǎn)與不足Ø 從公式(3-1)可以此評(píng)分算法的特點(diǎn):1) 查詢的關(guān)鍵詞在一個(gè)文檔的位置并不重要,例如要查詢的關(guān)鍵詞在正文、標(biāo)題或標(biāo)注等,lucene評(píng)分公式并不在乎。2) 如果一個(gè)文檔中含有該查詢關(guān)鍵的次數(shù)越多,那么得分就越高。3) 若一個(gè)文檔中,如果除了該查詢?cè)~之外,其他不相關(guān)詞越多,則該得分就越
49、低。Ø 同時(shí),可以發(fā)現(xiàn)lucene評(píng)分算法的不足:1) 查找精確度不夠,例如我們總希望要查找的關(guān)鍵詞出現(xiàn)在正文中,而lucene不在乎被查詢的關(guān)鍵詞在文檔中位置,即使查找的關(guān)鍵詞出現(xiàn)在標(biāo)注中,該評(píng)分算法也無法識(shí)別。2) 沒有很好地體現(xiàn)網(wǎng)頁鏈入的度與鏈出的度。3.2.3 評(píng)分算法公式的改進(jìn)對(duì)lucene評(píng)分算法公式的改進(jìn)應(yīng)全面考慮影響網(wǎng)頁相關(guān)性的因素,使得新得分更客觀、更準(zhǔn)確,進(jìn)一步提高查詢效率。由于lucene不提供在internet上采集信息的功能,因此很難從網(wǎng)絡(luò)收集網(wǎng)頁信息。但可以考慮從以下幾個(gè)方面對(duì)lucene的評(píng)分公式進(jìn)行改進(jìn):Ø 網(wǎng)頁文檔的鏈接主要考慮互聯(lián)網(wǎng)各網(wǎng)頁
50、的鏈入情況與鏈出情況,這就要考慮采用前面的pagerank算法,采取基于“從許多優(yōu)質(zhì)的網(wǎng)頁鏈接過來的網(wǎng)頁,必定是優(yōu)質(zhì)網(wǎng)頁”的思想,也就是說一個(gè)網(wǎng)頁的得票越多,則認(rèn)為它的重要性越高。Ø 網(wǎng)頁的響應(yīng)時(shí)間網(wǎng)頁的響應(yīng)時(shí)間成為評(píng)價(jià)搜索的一個(gè)重要指標(biāo),它也是評(píng)分應(yīng)該考慮的問題之一。如果一個(gè)網(wǎng)頁的響應(yīng)時(shí)間過長(zhǎng),那么用戶也許會(huì)關(guān)閉此網(wǎng)頁,而瀏覽其它網(wǎng)頁。因此網(wǎng)頁的響應(yīng)時(shí)間也成為lucene評(píng)分應(yīng)該考慮的問題所在。Ø 關(guān)鍵詞在網(wǎng)頁的位置采用lucene評(píng)分公式應(yīng)該考慮關(guān)鍵詞在網(wǎng)頁中的位置,一般關(guān)鍵詞會(huì)出現(xiàn)在正文,但也有可能出現(xiàn)在網(wǎng)頁的其它位置,例如出現(xiàn)在網(wǎng)頁中的鏈接位置、標(biāo)題位置以及標(biāo)注位置
51、等等,這時(shí)要視此關(guān)鍵詞在網(wǎng)頁中位置的重要性而進(jìn)行加分或減分。Ø 日志記錄用戶行為如果僅僅從網(wǎng)頁本身的頁面信息和網(wǎng)頁在網(wǎng)絡(luò)上的鏈接關(guān)系來分析此網(wǎng)頁的質(zhì)量,而忽略了網(wǎng)頁的點(diǎn)擊率和網(wǎng)頁的平均訪問時(shí)間,那么檢索結(jié)果很難令人滿意。因?yàn)榫W(wǎng)頁的點(diǎn)擊率可以反映出此網(wǎng)頁與用戶的相關(guān)度,點(diǎn)擊率越高,相關(guān)度就越高,那么檢索結(jié)果排序時(shí)位置就越應(yīng)該靠前。同理,假如用戶瀏覽某個(gè)網(wǎng)頁時(shí)間越長(zhǎng),說明此網(wǎng)頁的質(zhì)量越高。而這些用戶行為都可以用日志來記錄。3.2.4 另一種評(píng)分算法-向量空間算法lucene評(píng)分公式主要從定量計(jì)算的角度對(duì)檢索結(jié)果進(jìn)行排序,但我們也可以考慮從語句相似度的角度來對(duì)檢索結(jié)果進(jìn)行評(píng)分排序。可以這樣
52、考慮:在向量空間模型16中,文檔被表示成一個(gè)k維向量,其中k的大小為所有被索引的文檔中的索引項(xiàng)個(gè)數(shù),而索引項(xiàng)通常情況文檔中的一個(gè)詞語或短語。而k維中每一項(xiàng)的值是該索引項(xiàng)在文檔中的權(quán)重,一般情況下權(quán)重的大小是大于或者等于0的值,若該索引項(xiàng)在文檔中不存在,則權(quán)重為0;否則權(quán)重大于0。用向量表示文檔,其中表示索引項(xiàng)i在文檔j中的權(quán)重。同理用向量表示查詢語句,這樣就可以利用文檔和查詢語句的相似性來得出查詢與文檔的相關(guān)性。而如何由文檔和查詢語句的相似性來得出查詢與文檔的相關(guān)性呢?可以考慮采用余弦系數(shù)來計(jì)算文檔和向量的相似程度。計(jì)算結(jié)果的數(shù)值在0與1之間,值越大,說明相似程度相大,因此查詢與文檔的相關(guān)性就
53、越大,那么對(duì)檢索結(jié)果進(jìn)行排序時(shí),就應(yīng)該把此文檔的排名位置越靠前。3.3 lucene構(gòu)建搜索引擎3.3.1 構(gòu)建運(yùn)行環(huán)境 操作系統(tǒng): windows xpjava平臺(tái): jdk 1.5server: tomcat 5.5開發(fā)環(huán)境: eclipse 搜索引擎的代碼實(shí)現(xiàn) 索引建立首先建立索引器并進(jìn)行初始化,在lucene中indexwriter類可以用來建立索引,它的功能是將文檔加入索引,同時(shí)控制索引過程中的各種參數(shù)。在構(gòu)建搜索引擎過程中,聲明索引器并進(jìn)行初始化如下:/索引器聲明private indexwriter writer=null;/索引器初始化write
54、r=new indexwriter(constants.index_store_path,new standardanalyzer(),true);接著向建立索引的文件構(gòu)造一個(gè)document對(duì)象,并添加在一個(gè)用戶自定義的域中,以便作為索引查詢,代碼實(shí)現(xiàn)如下: /生成文檔對(duì)象 document doc=new document(); /獲取文件流 fileinputstream is=new fileinputstream(f);reader reader=new bufferedreader(new inputstreamreader(is); /添加索引內(nèi)容 doc.add(field.t
55、ext("contents", reader); doc.add(field.keyword("path", f.getabsolutepath(); 查詢 查詢主要利用servlet和jsp頁面消息的交互驅(qū)動(dòng)實(shí)現(xiàn),可以在servlet程序中doget函數(shù)中獲取要查詢的關(guān)鍵詞,并在建立的索引中檢索關(guān)鍵詞,最后返回檢索結(jié)查。實(shí)現(xiàn)代碼如下:mystructure data=new mystructure();long time=0;try request.setcharacterencoding("utf-8"); /設(shè)置編
56、碼轉(zhuǎn)碼為utf-8 string search=(string) request.getparameter("secontent"); /獲取客戶端輸入的/搜索字符串if(!justify) /判斷是否第一次搜索,如果是則建立索引 querystr=new perform();time=querystr.predo(); justify=true; data=querystr.runquery(search.tostring(); data.setindextime(time);catch(exception e) e.printstacktrace(); 以下是搜索查詢界面:圖3-2 搜索界面 搜索結(jié)果搜索結(jié)果主要實(shí)現(xiàn)將前面檢索到的結(jié)果由servlet獲取,并返回給jsp頁面顯示出來。實(shí)現(xiàn)代碼如下:servlet實(shí)現(xiàn)將檢索結(jié)果返回:request.setattribute("searchresult",data); requestdispatcher=rd=request
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)牧設(shè)備回收合同范本
- app軟件采購合同范本
- 勞動(dòng)合同范本 簡(jiǎn)約
- 佛山機(jī)械購銷合同范本
- 京東供貨方合同范本
- 加工協(xié)作合同范本
- 勞務(wù)合同范本保密協(xié)議
- 動(dòng)漫公司產(chǎn)品合同范本
- 修理提成合同范例
- 全款買車正規(guī)合同范本
- 經(jīng)典文學(xué)作品中的女性形象研究外文文獻(xiàn)翻譯2016年
- 控股集團(tuán)公司組織架構(gòu)圖.docx
- 高爐煤氣安全知識(shí)的培訓(xùn)
- 2008 年全國高校俄語專業(yè)四級(jí)水平測(cè)試試卷
- 需求供給與均衡價(jià)格PPT課件
- 最常用2000個(gè)英語單詞_(全部標(biāo)有注釋)字母排序
- 人造革的幾種生產(chǎn)制造方法
- 在銀行大零售業(yè)務(wù)工作會(huì)議上的講話講解學(xué)習(xí)
- 古代傳說中的藝術(shù)形象-
- 水電站大壩土建安裝工程懸臂模板施工手冊(cè)
- 三體系內(nèi)審檢查表(共58頁).doc
評(píng)論
0/150
提交評(píng)論