【正文】
個(gè)很高的分值,也就是說 T 的越重要,網(wǎng)頁 A 得到的分值就會(huì)越高。 PageRank 算法是根據(jù)網(wǎng)頁之間的超鏈接來確定頁面的等級(jí)。其結(jié)構(gòu)圖如圖 22: 圖 22 IK Analyzer 結(jié)構(gòu)圖 本章小結(jié) 本章主要介紹了 Nutch 相關(guān)技術(shù),包括 Nutch 的組成部分 :抓取和搜索,重點(diǎn)介紹了抓取部分, 即 Fetcher、 Crawler 的詳細(xì)工作過程,以方便將此 其 修改成主題爬蟲。 基于詞頻統(tǒng)計(jì)的分詞方法 詞頻統(tǒng)計(jì)分詞,顧名思義,就是基于詞頻統(tǒng)計(jì)來進(jìn)行分詞,即根據(jù)在上下文語境中,相鄰字搭配出現(xiàn)的頻率越高就越可能成為一個(gè)詞。 調(diào)用 Cal1 (url, fle, content),然后逐步執(zhí)行: 山東大學(xué)本科畢業(yè)論文 13 調(diào)用符合此內(nèi)容類型的 () 執(zhí)行 (content) 利用新建立的 Fetcheroutput 和 URL 的 MD5 摘要,產(chǎn)生的內(nèi)容對(duì)象和己解析的 ParseText 調(diào)用 ()函數(shù) 循環(huán) 100 次,在 log 中記錄 撲捉各種小的異常以及記錄寫入 log 文件 Nutch 的目標(biāo)是讓每個(gè)人都很容易配置世界上一流的 Web 搜索引擎,為了完成這個(gè)目標(biāo),研發(fā)人員做出了不懈的努力,使得 Nutch 必須作到:每個(gè)月都需從互聯(lián)網(wǎng)上取幾十億的網(wǎng)頁,并為這幾十億的網(wǎng)頁維護(hù)作一個(gè)索引,同時(shí)對(duì)建立的索引文件需要進(jìn)行每秒千萬次的搜索,為用戶提供高質(zhì)量、高效率的搜索結(jié)果,并且以最小的成本運(yùn)作。默認(rèn)的抓取周期 是 30 天,如果已經(jīng)生成的舊 fetch 沒有刪除,而又生成了新的 fetch,還是會(huì)出現(xiàn)重復(fù)的 URL 的。 Nutch 遵循 Robots Exclusion 協(xié)議,可以用 定義保護(hù)私有網(wǎng)頁數(shù)據(jù)不被抓去。 3. index。文件夾 Content里保存抓取回來的網(wǎng)頁內(nèi)容,包括 頭信息和其它元信息。 b、鏈接數(shù)據(jù)庫 (linkdb):這里面包含的信息是每個(gè) URL 己知的鏈接信息。這組工具用來建立和維護(hù)幾個(gè)不同的數(shù)據(jù)結(jié)構(gòu): WebDB, segment, index。既然應(yīng)用服務(wù)器具有Tomcat 的功能,那么 Tomcat 有沒有存在的必要呢 ?事實(shí)上,我們的很多中小應(yīng)用不需要采用 EJB 等技術(shù), Jsp 和 Servlet 己經(jīng)足夠,這時(shí)如果 用應(yīng)用服務(wù)器就有些浪費(fèi)了。在 WEBINF 目錄下有一個(gè) 文件和一個(gè) classes 目錄, 是這個(gè)應(yīng)用的配置文件,而 classes 目錄下則包含編譯好的 Servlet 類和 Jsp 或 Servlet 所依賴的其它類 (如 JavaBean)。在Web 頁面處理中大致可分為三個(gè)步驟,第一步, Web 瀏 覽器向一個(gè)特定的服務(wù)器發(fā)出 Web 頁面請(qǐng)求;第二步, Web 服務(wù)器接收到 Web 頁面請(qǐng)求后,尋找所請(qǐng)求的 Web 頁面,并將所請(qǐng)求的 Web 頁面?zhèn)魉徒o Web 瀏覽器;第三步, Web 服務(wù)器接收到所請(qǐng)求的 Web 頁面,并將它顯示出來。通過寫入 Java 代碼,用各種對(duì)象和標(biāo)志變量制作特殊的“上下文”環(huán)境,就可以實(shí)現(xiàn) JavaCC 的中文分詞。 *:前面的內(nèi)容出現(xiàn) 0 次或多次。其中, SKIP 用來說明被忽略的串, TOKEN 用來說明在詞法層次上識(shí)別的 token。而該語言的布局也使得它易于添加產(chǎn)生式規(guī)則和行為。正規(guī)式就定義了一個(gè)非終結(jié)符怎樣被替換為另一個(gè)字符串。 JavaCC 簡(jiǎn)介 JavaCC 是一個(gè)功能極其強(qiáng)大的“ 編譯器的編譯器”工具,可用于編制上下文無關(guān)的語法,集分詞和語法分析于一身的針對(duì) Java 語言的文本自動(dòng)分詞軟件包,類似于 UNIX 系統(tǒng)中的 LEX 和 YACC 工具。國外的 Pluggd( )正在向這個(gè)方向努力。 主題搜索引擎集中了行業(yè)海量的信息和數(shù)據(jù),基于這些信息和數(shù)據(jù)的商務(wù)智能分析,將為行業(yè)創(chuàng)造非常有價(jià)值的信息增 值服務(wù)。 主題 搜索引擎專注具體、深入的縱向服務(wù),致力于某一特定領(lǐng)域內(nèi)信息的全面和內(nèi)容的深入,這個(gè)領(lǐng)域外的閑雜信息不收錄。最近的試驗(yàn)表明,即使大型的搜索引擎,它對(duì) Web 的覆蓋率也只有 3040%。從此搜索引擎進(jìn)入了高速發(fā)展時(shí)期。 隨著互聯(lián)網(wǎng)的迅速發(fā)展,使得檢索所有新出現(xiàn)的網(wǎng)頁變得越來越困難,因此,在 Matthew Gray 的 Wanderer 基礎(chǔ)上,一些編程者將傳統(tǒng)的“蜘蛛”程序工作原理作了些改進(jìn)。由于 Archie深受用戶歡迎,受其啟發(fā),美國內(nèi)華達(dá)大學(xué)于 1993 年開發(fā)了另一個(gè)與之非常相似的搜索工具 System Computing Services,不過此時(shí)的搜索工具除了索引文件外,已能檢索網(wǎng)頁。而互聯(lián)網(wǎng)已經(jīng)成為很多人獲取信息的主要渠道。 最后對(duì) 論文 進(jìn)行了總結(jié)分析。我們?cè)谑褂脗鹘y(tǒng)的通用搜索引擎時(shí),經(jīng)常會(huì)遇到這樣的問題,為了搜索到一些專業(yè)的基礎(chǔ)知識(shí),不 得不在眾多的網(wǎng)站中,花費(fèi)大量的時(shí)間去尋找,而主題搜索引擎的出現(xiàn)為解決這類問題提供了很好的方法。 in order to search some basic professional knowledge, we had to spend a lot of time to find the knowledge in many websites. While the Vertical Search Engine will solve this problem. In addition, Nutch has highly transparent, any unit or individual can view the search engine work, and the program configuration flexibility, Users can customize according to their needs. Through a long period of practical application, the results show that Nutch runs very stable. Therefore, selecting the Nutch Search Engine can provide a good researching platform for the loving people. The object of this project is to set up a News Vertical Search Engine based on Nutch. Nowadays plenty of people read news from the Inter. While the news websites always put some lowquality news to catch readers’ eyes, and the newspaper websites can hardly feed readers’ various needs. Thus, it is very necessary to provide a News Vertical Search Engine for them. The paper first introduced the history, present problems of Search Engine, and the advantages, present situation of Topical Search Engine. Then we discussed the strategies of Focused Crawler and proposed a solution of News Topical Search Engine with knowledge in the process of Nutch. After that, we talked about setting up and configuring the ponents we need. Then we ran the engine so we could pare the results with Baidu’s. At last, we tested the Search Engine and made a summary of this project. Keywords: Nutch。 在互聯(lián)網(wǎng)發(fā)展初期,網(wǎng)站相對(duì)較少,信息查找比較容易。由于專門用于檢索信息的“機(jī)器人”程序象蜘蛛一樣在網(wǎng)絡(luò)間爬來爬去,因此,搜索引擎的“機(jī)器人”程序就被稱為“蜘蛛”程序。 然而 Jump Station 和 WWW Worm只是以搜索工具在數(shù)據(jù)庫中找到匹配信息的先后次序排列搜索結(jié)果,因此毫無信息關(guān)聯(lián)度可言。象國外的 Inktomi(已被 Yahoo 收購),它本身并不是直接面向用戶的搜索引擎,但向包括 Overture(原 GoTo,已被 Yahoo收購)、 LookSmart、 MSN、 HotBot 等在內(nèi)的其他搜索引擎提供全文網(wǎng)頁搜索服務(wù)。目前,一般的大型搜索引擎都采用了并行機(jī)制,但并行帶來的改善效果仍遠(yuǎn)不能滿足人們的需要,人們需要從其它角度改善目前的困境。 山東大學(xué)本科畢業(yè)論文 4 主題 搜索引擎 研究現(xiàn)狀 主題 搜索引擎的優(yōu)勢(shì),將決定它在互聯(lián)網(wǎng)的一席之地。 主題 搜索引擎不能只提供一個(gè)窗口,它應(yīng)該是一個(gè)用戶高度參與交互的社會(huì)化平臺(tái)?;ヂ?lián) 網(wǎng)信息量越大,這種情況越嚴(yán)重,可以說是災(zāi)難。 JavaCC 使用了自動(dòng)機(jī)的理論,而不是遞歸下降分析, Nutch 正是利用 JavaCC 這個(gè)十分強(qiáng)大的工具,生成系統(tǒng)的分詞器。稱為線性是因?yàn)檫@種文法可以從前到后順序的被指定為一個(gè)句子。這一部分是可以省略的,因?yàn)槊恳粋€(gè)選項(xiàng)都山東大學(xué)本科畢業(yè)論文 7 有默認(rèn)值,當(dāng)我們沒有對(duì)某個(gè)選項(xiàng)進(jìn)行說明時(shí),它就采用默認(rèn)值。一般而言,語法中的每一個(gè)非終結(jié)符都對(duì)應(yīng)一個(gè)函數(shù)。 | :前面或后面。因此,所做的工作就是事先分出一個(gè)全部是中文的字符串,這一點(diǎn)通過下面的定義實(shí)現(xiàn): CHINESE: (CJK)+ (“”| CJK) CJK: [ “ \u3040” “ \u318f“, “ \u3300” “ \u337f”, “ \u3400” “ \u3d2d”, “ \u4e00” “ \u9fff”, “ \uf900”“\ufaff” ] 上面的 CHINESE 的定義為:由漢字開頭,包含漢字或空格的最長(zhǎng)的字符串,而漢字則定義為 CJK。 本系統(tǒng)中用到的 完整地實(shí)現(xiàn)了 和 JavaServer 規(guī)范 [11]。在 Tomcat 中,可以利用 Servlet 提供的事件監(jiān)聽器功能,對(duì)應(yīng)用或者 Session 實(shí)行監(jiān)聽 。抓取部分抓取頁面并把抓取回來的數(shù)據(jù)做成倒排索引,搜索部分則搜索倒排索引以回答用戶的請(qǐng)求。 WebDB 存儲(chǔ) 2 種實(shí)體:頁面和鏈接。每個(gè) segment 由 5 個(gè)文件夾組成,如果建立了索引就是六個(gè)文件夾。 parse_text 文件夾中保存從網(wǎng)頁中解析出來的文本數(shù)據(jù)。簡(jiǎn)單來說 Lucene 的 segment是 Lucene 索引庫的一部分,而 Nutch 的 Segment 是 WebDB 中被抓取和索引的一部分。抓取循環(huán)結(jié)束后,生成一個(gè)最終的索引 (第 7 步到第 10 步 )。下面我們仔細(xì)分析下這個(gè)類。事實(shí)上需要計(jì)算機(jī)能夠分出“研究生”這個(gè)詞組,而不是單個(gè)切分。這種分詞方法具有分詞速度快、實(shí)現(xiàn)簡(jiǎn)單和效率高的優(yōu)點(diǎn)。通用搜索引擎以提高 Web 的覆蓋率和盡可能多的下載網(wǎng)頁為主要目的,它的網(wǎng)絡(luò)爬蟲采用了數(shù)據(jù)結(jié)構(gòu)中圖的遍歷算法 (廣度或深度優(yōu)先策略 )。由于重要網(wǎng)站投的票應(yīng)該有較大的分量。因此, PageRank 算法的頁面排序結(jié)果就會(huì)根據(jù)頁面鏈接信息的迭代計(jì)算得到,在這里只是考慮靜態(tài)頁面并沒有考慮動(dòng)態(tài)網(wǎng)頁。因此在整個(gè)互聯(lián)網(wǎng)中有很高的應(yīng)用性和實(shí)踐性。 例如: 這個(gè)頁面鏈接了這些權(quán)威網(wǎng)頁 (authority),則這個(gè)頁面可以稱為中心網(wǎng)頁 (hub)。通過這個(gè)矩陣的一系列迭代運(yùn)算及定義的收斂閾值不間斷的對(duì)兩個(gè)向量值進(jìn)行更新直至收斂為止。 山東大學(xué)本科畢業(yè)論文 20 基于內(nèi)容 評(píng)價(jià) Fish Search 算法 基 于內(nèi)容評(píng)價(jià)的搜索策略的特點(diǎn)是利用網(wǎng)頁中文本信息作為某一相關(guān)領(lǐng)域的知識(shí)來指導(dǎo)搜索過程,并根據(jù)網(wǎng)頁內(nèi)容和網(wǎng)頁鏈接與 (關(guān)鍵詞和主題 )之間的相關(guān)度來評(píng)價(jià)這個(gè)網(wǎng)頁鏈接對(duì)搜索主題來說的價(jià)值的高低,這種基于內(nèi)容搜索策略代表有: Fish Search 算法、 Shark Search 算法。 2. 給每個(gè)從 URL 列表中提取的 URL 賦相應(yīng)的 depth 值,假設(shè)這個(gè) URL 文件列表是相關(guān),那么就對(duì)這個(gè) URL 文件列表中的 URL 的 potential_score 值賦為1,并且得到一個(gè)最初設(shè)定的 depth 值。 Fish Search 的搜索算法是模擬了魚群捕食以及延續(xù)后代的情況。子節(jié)點(diǎn)的 potential_score 的計(jì)算公式需要綜合考慮上面所講述的兩個(gè)因素,在 Shark Search 算法中求解 potential_score 的時(shí)候,利用下面講述的方法: ① 計(jì)算孩子節(jié)點(diǎn)繼承相關(guān)度, inherited_score(child_node): if(current_node 相關(guān) ) inherited_score(child_node)=δ *sim_score。 其他相關(guān)策略 基于鞏固學(xué)習(xí)的