天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁(yè) > 科技論文 > 搜索引擎論文 >

機(jī)器人搜索引擎_主題搜索引擎的研究與應(yīng)用

發(fā)布時(shí)間:2016-11-10 19:14

  本文關(guān)鍵詞:主題搜索引擎的研究與應(yīng)用,由筆耕文化傳播整理發(fā)布。



成都理工大學(xué) 碩士學(xué)位論文 主題搜索引擎的研究與應(yīng)用 姓名:黃波 申請(qǐng)學(xué)位級(jí)別:碩士 專業(yè):地球探測(cè)與信息技術(shù) 指導(dǎo)教師:苗放 20070601

摘要

主題搜索引擎的研究與應(yīng)用
作者簡(jiǎn)介:黃波,男,1981年9月出生,2004年9月從師于成都理工大學(xué)苗放教授, 于2007年6月畢業(yè)于成都理工大學(xué)地球探測(cè)與信息技術(shù)專業(yè)。




搜索技術(shù)的進(jìn)步使得人類對(duì)數(shù)據(jù)、信息、知識(shí)進(jìn)入了前所未有的共享模式。 搜索是虛擬的人類意識(shí)。搜索技術(shù)反映個(gè)體在特定時(shí)期和范圍內(nèi)的行為取向和信 息喜好,無(wú)數(shù)搜索的集合和綜合信息最終可以用以推測(cè)人類作為整體的文化屬 性。 隨著信息多元化的增長(zhǎng),千篇一律的給所有用戶同一個(gè)入口顯然已經(jīng)不能滿 足特定用戶更深入的查詢需求。因此我們需要一個(gè)分類細(xì)致精確、數(shù)據(jù)全面深入、 更新及時(shí)的面向主題的搜索引擎。主題搜索引擎是針對(duì)某一特定領(lǐng)域提供的有一 定價(jià)值的信息和相關(guān)服務(wù)。以構(gòu)筑某一主題領(lǐng)域的Internet網(wǎng)絡(luò)信息資源庫(kù)為 目標(biāo),智能地在互聯(lián)網(wǎng)上搜集符合此主題需要的信息資源。其特點(diǎn)就是“專、精、 深”,且具有行業(yè)色彩。 本文在基于Lucene搜索引擎框架的研究和應(yīng)用基礎(chǔ)上,對(duì)它的設(shè)計(jì)原理和 特色以及評(píng)分體系進(jìn)行深入的研究。Nutch是一個(gè)建立在Lucene核心之上的Web 搜索的實(shí)現(xiàn)。本文利用Nutch易于擴(kuò)展的插件機(jī)制進(jìn)行二次開發(fā)。研發(fā)一個(gè)第三 方工具把Lucene特殊的數(shù)據(jù)格式轉(zhuǎn)化為可視化的結(jié)構(gòu),以便研發(fā)人員對(duì)索引數(shù) 據(jù)進(jìn)行分析查詢。本文提出按主題行業(yè)分類信息,建立相關(guān)主題詞庫(kù)的觀點(diǎn),更 高效的快速建立主題搜索引擎,并結(jié)合改進(jìn)的中文分詞技術(shù)進(jìn)行驗(yàn)證實(shí)現(xiàn)。論述 了主題搜索引擎對(duì)行業(yè)應(yīng)用的可適用性。 關(guān)鍵詞:搜索引擎,中文分詞,知識(shí)共享,倒排索引,主題詞庫(kù)

成都理工大學(xué)碩士學(xué)位論文

The research and application of Topic—specific Search Engine
Introduction of the Author:HuangBo was born on Sep,1 98 1.Under the guidance of Prof.Miao Fang.,he was graduated from College of Information Engineering at Chengdu University of Technology.

ABSTRACT
Search

technology

progress made Search

human
is


sharing unprecedented virtual

access on

data,

information and
technology
Can be

knowledge,

human

consciousness,

search

reflected the behavior

and

information
and

preferences in the individual

specific period,the set of countless search

comprehensive
as a

information

eventually

used to speculate the direction of mankind

whole cultural.
users

With the

growth of multi-information,providing all meet specific
user’S

with the same

entrance


apparently unable to

needs

in-depth inquiry.So we need

topic.oriented search engine which update timely for
a on

Can

classify accurate,comprehensive


and

in?depth,

data.Topic—specific search engine is tied to provide

specific field

certain value of the

information and
resources

related services.The target is to build

intemet

information

resources

in some particular topic area,intelligent gathering the
on

related topic

information

the intemet.Its feature is the”specialized,

sophisticated,deep”and the
This paper based
on

industry
Lucene

background.
search engine framework for the research

and

application,it described in detail the design in the scoring system.Nutch is of lucene.Nutch provide
a a

and

characteristics.It also studies deeply
on

web search implementation which built

the base

complete plug—in mechanism which Can be easily extended


for secondary development.This paper develops lucene special data

third-party tool to visualize the

format,in

order

to

convenience the developers to


analyze and

search the indexing data.This paper raise

view to establish




related topic-dictionary

for all kinds of different related industry,and establish

topic search engine more

efficiently,and certify

it

by the help

of improved that

Chinese word

segmentation

techniques.Then
to

discussed the applicability

the topic search engine applied

some industry.

Keywords:Search

engine,Chinese

Segmentation,Knowledge Sharing,Inverted

index,Topic dictionary

II

獨(dú)創(chuàng)性聲明

本人聲明所呈交的學(xué)位論文是本人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的 研究成果。據(jù)我所知,除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含其

他人已經(jīng)發(fā)表或撰寫過(guò)的研究成果,也不包含為獲得盛壑理王太堂或其他教
育機(jī)構(gòu)的學(xué)位或證書而使用過(guò)的材料。與我一同工作的同志對(duì)本研究所做的任何 貢獻(xiàn)均已在論文中作了明確的說(shuō)明并表示謝意。

X-P
學(xué)位論文作者導(dǎo)師簽名: 學(xué)位論文作者簽名:

\勿飲
加7年6月
乙日

蒼,胺

學(xué)位論文版權(quán)使用授權(quán)書

本學(xué)位論文作者完全了解盛都堡王太堂有關(guān)保留、使用學(xué)位論文的規(guī)定,
有權(quán)保留并向國(guó)家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和磁盤,允許論文被查閱和

借閱。本人授權(quán)盛壑理王太堂可以將學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)
據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存、匯編學(xué)位論文。 (保密的學(xué)位論文在解密后適用本授權(quán)書)

學(xué)位論文作者簽名:

事,波 乞滯
‘月1日

第1章引言

第1章引言
1.1搜索技術(shù)對(duì)人類的社會(huì)意義
最初搜索引擎技術(shù)和資本門檻本身并不高,但隨著人性因素的彰顯而進(jìn)入深 度競(jìng)爭(zhēng)階段的互聯(lián)網(wǎng)時(shí)代來(lái)臨之后,搜索之爭(zhēng)趨于深度競(jìng)爭(zhēng),深刻理解搜索對(duì)于 人類的社會(huì)意義將成為競(jìng)爭(zhēng)戰(zhàn)略和策略的研判前提。 一、搜索是社會(huì)化的信息處理 搜索技術(shù)的發(fā)展使得人類對(duì)數(shù)據(jù)、信息、知識(shí)的存取運(yùn)動(dòng)進(jìn)入前所未有的共 享模式。在傳統(tǒng)知識(shí)的整理層面,搜索技術(shù)的目標(biāo)是重新建立人類傳統(tǒng)知識(shí)的存 取秩序;在新知識(shí)的創(chuàng)新生產(chǎn)層面,搜索技術(shù)的目標(biāo)是促進(jìn)協(xié)同型知識(shí)機(jī)制的完 善,進(jìn)而形成全面大眾全面參與的知識(shí)社會(huì);在社會(huì)公共生活層面,搜索技術(shù)的 目標(biāo)是讓自然界人類社會(huì)和思維的有用知識(shí)實(shí)現(xiàn)客觀、公正、高效、完整的共享; 在個(gè)人化的網(wǎng)絡(luò)生存層面,搜索技術(shù)的目標(biāo)是方便個(gè)人無(wú)后顧之憂的獲得最好的 信息。由上可知,搜索技術(shù)發(fā)展的目標(biāo)是成為一種綜合而客觀的人類生存系統(tǒng), 從個(gè)人和社會(huì)層面改變?nèi)祟惖纳鏍顟B(tài)。在不同層面,搜索的要求也會(huì)分別側(cè)重 于客觀、準(zhǔn)確、及時(shí)、深入、創(chuàng)新、聯(lián)系、思想、個(gè)性、娛樂(lè)、學(xué)習(xí)、教育等不 同的特性要求,人類社會(huì)生活有多么豐富多彩,搜索技術(shù)的未來(lái)空間就有多么宏 大無(wú)窮,搜索門類及其競(jìng)爭(zhēng)領(lǐng)域就有多么復(fù)雜綜合。在目前搜索發(fā)展階段,大而 全的搜索巨頭占據(jù)搜索舞臺(tái)的主角地位,雖然未來(lái)多樣化搜索競(jìng)爭(zhēng)的戰(zhàn)國(guó)時(shí)代必 然來(lái)臨,但是當(dāng)前搜索競(jìng)爭(zhēng)的基本出發(fā)點(diǎn)還是必須建立在適度集中的搜索格局的 歷史條件之上,Google、百度等搜索巨頭的方向,往往代表了人類搜索技術(shù)基于 現(xiàn)狀的中期方向,其中最為核心的特征便是搜索競(jìng)爭(zhēng)的深度化。 二、搜索是社會(huì)化的信息再生產(chǎn) 搜索技術(shù)進(jìn)步使得個(gè)人、組織和社會(huì)面對(duì)全新的信息結(jié)構(gòu)和知識(shí)模式,也使 得傳統(tǒng)的、現(xiàn)實(shí)的、未來(lái)的信息面臨全新的個(gè)人、組織和社會(huì)的需求特征,在兩 者共同影響下,信息生產(chǎn)領(lǐng)域發(fā)生必然的變革,其典型標(biāo)志便是搜索技術(shù)成為社 會(huì)化的信息生產(chǎn)的重要組成部分。搜索技術(shù)使得隱知識(shí)更深入快速的轉(zhuǎn)化為顯知 識(shí),使得知識(shí)傳播的范圍空前擴(kuò)大,使得社會(huì)性使用知識(shí)的權(quán)利空前平等,使得 個(gè)人的集合力量得以影響權(quán)威的形成、影響知識(shí)分享權(quán)力、影響知識(shí)生產(chǎn)過(guò)程, 在此基礎(chǔ)上一種基于搜索的無(wú)界、高效、平等特性的全新的社會(huì)化信息再生產(chǎn)機(jī) 制應(yīng)運(yùn)而生,搜索的過(guò)程自身也因?yàn)槠渖鐣?huì)化屬性而產(chǎn)生出人類前所未見(jiàn)的新信 息資源。

成都理丁大學(xué)碩+學(xué)位論文

三、搜索是虛擬的人類意識(shí) 人類的社會(huì)化特征是實(shí)現(xiàn)人類智能化的捷徑,無(wú)數(shù)個(gè)體的關(guān)系集成、思維行 動(dòng)及其綜合形成的動(dòng)態(tài)文化最終構(gòu)成相對(duì)整體性的人類群體特征。進(jìn)而指引全社 會(huì)進(jìn)行人工智能似的思維和進(jìn)步。以此角度看,搜索技術(shù)反映個(gè)體在特定時(shí)期和
范圍內(nèi)的行為取向和信息喜好,通過(guò)搜索我們獲得了一條體現(xiàn)人類共同文化、時(shí)

尚、思維、偏好的新思路,無(wú)數(shù)搜索的集合和綜合信息最終可以用以推測(cè)人類作 為擬人整體的文化屬性,搜索信息流從某個(gè)角度完全可以視同人類社會(huì)的部分大 腦思維潛流,如果說(shuō)過(guò)去因?yàn)樗阉骷夹g(shù)沒(méi)有出現(xiàn)我們無(wú)法由信息集合的角度感受 人類虛擬大腦的思維流動(dòng),那么搜索技術(shù)的進(jìn)步和成熟,搜索行為和信息的國(guó)民 性擴(kuò)張,帶領(lǐng)我們進(jìn)入全新的人類自我意識(shí)的社會(huì)外化過(guò)程,通過(guò)搜索,人類個(gè) 體與人類整體之間可以實(shí)現(xiàn)空前暢通的對(duì)話。 四、搜索是全新的社會(huì)關(guān)系的大生產(chǎn) 搜索從面向信息的表層發(fā)展階段必然向面向社會(huì)關(guān)系的深層發(fā)展階段前進(jìn), 搜索的目的將不僅僅是對(duì)于信息的搜索,同時(shí)也是對(duì)于社會(huì)行為和社會(huì)關(guān)系的搜 索。從個(gè)體需求角度看,搜索滿足對(duì)于信息的個(gè)性化需求;從組織需求的角度看, 搜索同時(shí)滿足對(duì)于信息、社會(huì)行為特征和社會(huì)關(guān)系的個(gè)性化需求。一方面搜索技 術(shù)和服務(wù)的進(jìn)步使得人類社會(huì)的共享型搜索數(shù)據(jù)庫(kù)日益龐大,與此相對(duì)應(yīng)人類知 識(shí)結(jié)構(gòu)秩序的變革也必然日益深入,進(jìn)一步與此相對(duì)應(yīng)人類的基于知識(shí)的權(quán)力結(jié) 構(gòu)的變革也必然日益深入。所以,未來(lái)社會(huì)性的強(qiáng)權(quán)來(lái)自龐大的搜索巨頭并不是 杞人憂天。另外一方面,搜索技術(shù)和服務(wù)的進(jìn)步使得人類社會(huì)行為特征和思維流 日益外化,歷年積累的人類搜索進(jìn)程的龐大數(shù)據(jù)成為搜索巨頭的另外一大權(quán)力來(lái) 源,對(duì)這一權(quán)力源的監(jiān)控和公開化必然在不遠(yuǎn)的將來(lái)列于網(wǎng)絡(luò)最重要的議題之 一。由于搜索在社會(huì)關(guān)系變化中的外化和監(jiān)控功能,搜索服務(wù)商在社會(huì)關(guān)系方面 可以發(fā)揮更大的影響力。從這個(gè)角度看,無(wú)論是否公開和共享搜索行為數(shù)據(jù),搜 索技術(shù)本身都會(huì)自發(fā)的進(jìn)行社會(huì)關(guān)系的大生產(chǎn),只是其中存在是否公開流程、是 否大眾參與、是否分享權(quán)力的不同情況而已【51。

1.2搜索引擎的發(fā)展歷史
在互聯(lián)網(wǎng)發(fā)展初期,網(wǎng)站相對(duì)較少,信息查找比較容易。然而伴隨互聯(lián)網(wǎng)爆 炸性的發(fā)展,普通網(wǎng)絡(luò)用戶想找到所需的資料簡(jiǎn)直如同大海撈針,這時(shí)為滿足大 眾信息檢索需求的專業(yè)搜索網(wǎng)站便應(yīng)運(yùn)而生了。 現(xiàn)代意義上的搜索引擎的祖先,是1990年由蒙特利爾大學(xué)學(xué)生Alan
Emtage

發(fā)明的Archie。雖然當(dāng)時(shí)World Wide Web還未出現(xiàn),但網(wǎng)絡(luò)中文件傳輸還是相



第1章引言

當(dāng)頻繁的,而且由于大量的文件散布在各個(gè)分散的FTP主機(jī)中,查詢起來(lái)非常 不便,因此;klanEmtage想到了開發(fā)一個(gè)可以以文件名查找文件的系統(tǒng),于是便 有了Archie。 Archie工作原理與現(xiàn)在的搜索引擎已經(jīng)很接近,它依靠腳本程序自動(dòng)搜索網(wǎng) 上的文件,然后對(duì)有關(guān)信息進(jìn)行索引,供使用者以一定的表達(dá)式查詢。由于Archie 深受用戶歡迎,受其啟發(fā),美國(guó)內(nèi)華達(dá)System 外,已能檢索網(wǎng)頁(yè)。 當(dāng)時(shí),“機(jī)器人”一詞在編程者中十分流行。電腦“機(jī)器人”是指某個(gè)能以 人類無(wú)法達(dá)到的速度不間斷地執(zhí)行某項(xiàng)任務(wù)的軟件程序。由于專門用于檢索信息 的“機(jī)器人”程序像蜘蛛一樣在網(wǎng)絡(luò)間爬來(lái)爬去,因此,搜索引擎的“機(jī)器人” 程序就被稱為“蜘蛛”程序。 世界上第一個(gè)用于監(jiān)測(cè)互聯(lián)網(wǎng)發(fā)展規(guī)模的“機(jī)器人”程序是Matthew 開發(fā)的World
wide Web Gray

Computing

Services大學(xué)于1993

年開發(fā)了另一個(gè)與之非常相似的搜索工具,不過(guò)此時(shí)的搜索工具除了索引文件

Wanderer。剛開始它只用來(lái)統(tǒng)計(jì)互聯(lián)網(wǎng)上的服務(wù)器數(shù)量,

后來(lái)則發(fā)展為能夠檢索網(wǎng)站域名。與Wanderer相對(duì)應(yīng),Martin Koster于1993 年lO月創(chuàng)建了ALIWEB,它是Archie的HTTP版本。ALIWEB不使用“機(jī)器人”程 序,而是靠網(wǎng)站主動(dòng)提交信息來(lái)建立自己的鏈接索引,類似于現(xiàn)在我們熟知的
Yahoo。

隨著互聯(lián)網(wǎng)的迅速發(fā)展,使得檢索所有新出現(xiàn)的網(wǎng)頁(yè)變得越來(lái)越困難,因此, 在Matthew Gray的Wanderer基礎(chǔ)上,一些編程者將傳統(tǒng)的“蜘蛛”程序工作原 理作了些改進(jìn)。其設(shè)想是,既然所有網(wǎng)頁(yè)都可能有連向其他網(wǎng)站的鏈接,那么從 跟蹤一個(gè)網(wǎng)站的鏈接開始,就有可能檢索整個(gè)互聯(lián)網(wǎng)。到1993年底,一些基于 此原理的搜索引擎開始紛紛涌現(xiàn),其中以JumpStation、The
Worm,和Repository—Based
Software World Wide Web

Engineering(RBSE)spider最負(fù)盛名。

然而JumpStation和w聊Worm只是以搜索工具在數(shù)據(jù)庫(kù)中找到匹配信息的先后 次序排列搜索結(jié)果,因此毫無(wú)信息關(guān)聯(lián)度可言。而RBSE是第一個(gè)在搜索結(jié)果排 列中引入關(guān)鍵字串匹配程度概念的引擎。 最早現(xiàn)代意義上的搜索引擎出現(xiàn)于1994年7月。當(dāng)時(shí)Michael Mauldin將
John

Leavitt的蜘蛛程序接入到其索引程序中,創(chuàng)建了大家現(xiàn)在熟知的Lycos。

同年4月,斯坦福大學(xué)的兩名博士生,David Filo和美籍華人楊致遠(yuǎn)共同創(chuàng)辦 了超級(jí)目錄索引Yahoo,并成功地使搜索引擎的概念深入人心。從此搜索引擎進(jìn) 入了高速發(fā)展時(shí)期。目前,互聯(lián)網(wǎng)上有名有姓的搜索引擎已達(dá)數(shù)百家,其檢索的 信息量也與從前不可同日而語(yǔ)。 隨著互聯(lián)網(wǎng)規(guī)模的急劇膨脹,一家搜索引擎光靠自己?jiǎn)未颡?dú)斗已無(wú)法適應(yīng)目

成都理T大學(xué)碩+學(xué)位論文

前的市場(chǎng)狀況,因此現(xiàn)在搜索引擎之間開始出現(xiàn)了分工協(xié)作,并有了專業(yè)的搜索 引擎技術(shù)和搜索數(shù)據(jù)庫(kù)服務(wù)提供商。比如國(guó)外的Inktomi,它本身并不是直接面 向用戶的搜索引擎,而是向包括LookSmart、MSN、HotBot等在內(nèi)的其他搜索引 擎提供全文網(wǎng)頁(yè)搜索服務(wù)。國(guó)內(nèi)的百度也屬于這一類,搜狐和新浪用的就是它的 技術(shù)。因此從這個(gè)意義上說(shuō),它們是搜索引擎中的搜索引擎!玻梗

1.3搜索引擎分類
搜索引擎按其工作方式主要可分為三種,分別是全文搜索引擎、目錄索弓1類 搜索引擎和元搜索引擎。全文搜索引擎是最廣泛也是用得最多的一種,一般所說(shuō) 的搜索引擎都指的是全文搜索引擎。 全文搜索引擎是名副其實(shí)的搜索引擎,具代表性的有Google、Inktomi、百
度、中搜等。它們都是通過(guò)從互聯(lián)網(wǎng)上提取的各個(gè)網(wǎng)站的信息而建立的數(shù)據(jù)庫(kù)中,

檢索與用戶查詢條件匹配的相關(guān)記錄,然后按一定的排列順序?qū)⒔Y(jié)果返回給用
戶,因此他們是真正的搜索引擎。

從搜索結(jié)果來(lái)源的角度,全文搜索引擎又可細(xì)分為兩種,一種是擁有自己的 檢索程序,并自建網(wǎng)頁(yè)數(shù)據(jù)庫(kù),搜索結(jié)果直接從自身的數(shù)據(jù)庫(kù)中調(diào)用;另一種則 是租用其他引擎的數(shù)據(jù)庫(kù),并按自定的格式排列搜索結(jié)果。 目錄索引雖然有搜索功能,但在嚴(yán)格意義上算不上是真正的搜索引擎,僅僅 是按目錄分類的網(wǎng)站鏈接列表而已。用戶完全可以不用進(jìn)行關(guān)鍵詞查詢,僅靠分 類目錄也可找到需要的信息。目錄索引中最具代表性的是Yahoo。國(guó)內(nèi)的搜狐、 新浪、網(wǎng)易搜索也都屬于這~類。 元搜索引擎在接受用戶查詢請(qǐng)求時(shí),同時(shí)在其他多個(gè)引擎上進(jìn)行查詢,并將 結(jié)果返回給用戶。著名的元搜索引擎有InfoSpace、Vivisimo等,中文元搜索引 擎中具代表性的有搜星搜索引擎。在搜索結(jié)果排列方面,有的直接按來(lái)源引擎排 列搜索結(jié)果,如Dogpile,有的則按自定的規(guī)則將結(jié)果重新排列組合,如
givisimo。

除上述三大類引擎外,還有以下幾種非主流形式: 1、集合式搜索引擎:如HotBot在2002年底推出的引擎。該引擎類似META 搜索引擎,但區(qū)別在于不是同時(shí)調(diào)用多個(gè)引擎進(jìn)行搜索,而是由用戶從提供的4 個(gè)引擎當(dāng)中選擇,因此叫它“集合式”搜索引擎更確切些。 2、門戶搜索引擎:如AOL
Search、8SN

Search等雖然提供搜索服務(wù),但自

身既沒(méi)有分類目錄也沒(méi)有網(wǎng)頁(yè)數(shù)據(jù)庫(kù),其搜索結(jié)果完全來(lái)自其他引擎。 3、免費(fèi)鏈接列表:這類網(wǎng)站一般只簡(jiǎn)單地滾動(dòng)排列鏈接條目,少部分有簡(jiǎn)



第1章引言

單的分類目錄,不過(guò)規(guī)模比起Yahoo等目錄索引來(lái)要小得多。 由于上述網(wǎng)站都為用戶提供搜索查詢服務(wù),為方便起見(jiàn),我們通常將其統(tǒng)稱 為搜索引擎。

1.4搜索引擎組成及工作原理
搜索引擎主要由網(wǎng)絡(luò)蜘蛛,索引器和查詢器三部分組成。
(1)網(wǎng)絡(luò)蜘蛛(Web Spider)的主要功能是從指定的地址或網(wǎng)頁(yè)出發(fā)遍歷互聯(lián)

網(wǎng)收集網(wǎng)頁(yè),并沿著任何網(wǎng)頁(yè)中的所有URL爬到其它網(wǎng)頁(yè),重復(fù)這過(guò)程,并把爬 過(guò)的所有網(wǎng)頁(yè)收集到頁(yè)面存儲(chǔ)庫(kù)中。 (2)索引器(Indexer)對(duì)收集回來(lái)的網(wǎng)頁(yè)進(jìn)行分析,提取相關(guān)網(wǎng)頁(yè)信息(包括 網(wǎng)頁(yè)所在URL、編碼類型、頁(yè)面內(nèi)容包含的關(guān)鍵詞、關(guān)鍵詞位置、生成時(shí)間、大 小、與其它網(wǎng)頁(yè)的鏈接關(guān)系等),根據(jù)一定的相關(guān)度算法進(jìn)行大量復(fù)雜計(jì)算,得 到每一個(gè)網(wǎng)頁(yè)(針對(duì)頁(yè)面內(nèi)容)及超鏈中每一個(gè)關(guān)鍵詞的相關(guān)度(或重要性),然后 用這些相關(guān)信息建立網(wǎng)頁(yè)索引數(shù)據(jù)庫(kù)。 (3)當(dāng)用戶輸入關(guān)鍵詞搜索后,搜索請(qǐng)求經(jīng)過(guò)分解,由查詢器(Searcher)從 網(wǎng)頁(yè)索引數(shù)據(jù)庫(kù)中找到符合該關(guān)鍵詞的所有相關(guān)網(wǎng)頁(yè)。所有相關(guān)網(wǎng)頁(yè)針對(duì)該關(guān)鍵 詞的相關(guān)信息在索引庫(kù)中都有記錄,只需綜合相關(guān)信息和網(wǎng)頁(yè)級(jí)別形成相關(guān)度數(shù) 值,然后進(jìn)行排序,相關(guān)度越高,排名越靠前。最后由頁(yè)面生成系統(tǒng)將搜索結(jié)果 的鏈接地址和頁(yè)面內(nèi)容摘要等內(nèi)容組織起來(lái)返回給用戶。 搜索引擎的工作流程可以簡(jiǎn)化歸結(jié)為以下四個(gè)步驟: (1)網(wǎng)上抓取網(wǎng)頁(yè): (2)建立索引數(shù)據(jù)庫(kù): (3)在索引數(shù)據(jù)庫(kù)中搜索: (4)對(duì)搜索結(jié)果進(jìn)行處理和排序。 網(wǎng)絡(luò)蜘蛛從互聯(lián)網(wǎng)上抓取網(wǎng)頁(yè),把網(wǎng)頁(yè)送入頁(yè)面存儲(chǔ)庫(kù),從網(wǎng)頁(yè)中提取URL, 把URL送入URL數(shù)據(jù)庫(kù),網(wǎng)絡(luò)蜘蛛控制得到網(wǎng)頁(yè)的URL,控制網(wǎng)絡(luò)蜘蛛抓取其它 網(wǎng)頁(yè),反復(fù)循環(huán)直到把所有鏈接的網(wǎng)頁(yè)抓取完成。這其間也可以控制對(duì)網(wǎng)頁(yè)索引
的深度和數(shù)目。

系統(tǒng)從頁(yè)面存儲(chǔ)庫(kù)中得到文本信息,送入索引器模塊建立索引,形成索引庫(kù)。 同時(shí)進(jìn)行鏈接信息提取,把鏈接信息(包括錨文本、鏈接本身等信息)送入鏈接數(shù) 據(jù)庫(kù),為網(wǎng)頁(yè)評(píng)級(jí)提供依據(jù)。



成都理丁大學(xué)碩十學(xué)位論文

1.5本文研究?jī)?nèi)容和成果
本文首先對(duì)搜索引擎的發(fā)展歷史、現(xiàn)狀、存在的問(wèn)題及其未來(lái)發(fā)展趨勢(shì)進(jìn)行 了探討,提出了基于行業(yè)主題詞庫(kù)的搜索引擎的研究思路,對(duì)主題詞庫(kù)進(jìn)行優(yōu)化 改進(jìn),并把計(jì)算所的提供的中文分詞技術(shù)引進(jìn)nutch中。本文提出按主題行業(yè)分 類信息,建立相關(guān)主題詞庫(kù)的觀點(diǎn),更高效的快速建立主題搜索引擎。 本文對(duì)搜索引擎的研究成果如下: (1)本文通過(guò)提出按主題行業(yè)分類信息,建立相關(guān)主題詞庫(kù)的觀點(diǎn),選擇性 能好、效率高、經(jīng)濟(jì)合理的技術(shù)框架,從而更高效的快速建立主題搜索引擎。 (2)對(duì)開源框架lucene的源碼和結(jié)構(gòu)進(jìn)行了較為深入的研究,并在此基礎(chǔ)上 進(jìn)行二次開發(fā),研發(fā)一個(gè)數(shù)據(jù)管理工具把lucene特殊的數(shù)據(jù)格式轉(zhuǎn)化為可視化 的結(jié)構(gòu),以便研發(fā)人員對(duì)索引數(shù)據(jù)進(jìn)行分析查詢。 (3)對(duì)某一主題網(wǎng)站建立索引庫(kù),并進(jìn)行分析查詢,把自己建立的主題搜索 引擎查詢結(jié)果和網(wǎng)站現(xiàn)有的搜索結(jié)果進(jìn)行比較分析,得出了較有意義的結(jié)果。

1.6本文組織結(jié)構(gòu)
本論文的總體結(jié)構(gòu)是從理論的分析研究到實(shí)踐嘗試的過(guò)程,它由四個(gè)部分組
成:

第1章:引言。主要通過(guò)闡述搜索引擎的社會(huì)意義,發(fā)展歷史以及組成和工 作原理,進(jìn)一步得出研究搜索引擎的必要性和發(fā)展意義。 第2章:主題搜索引擎。講述主題搜索引擎的研究?jī)?nèi)容,發(fā)展現(xiàn)狀和突破創(chuàng) 新點(diǎn),突出選擇主題搜索引擎作為研究目標(biāo)的可行性。 第3章:Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)。通過(guò)對(duì)開源框架Lucene進(jìn)行詳細(xì) 深入的研究,對(duì)實(shí)現(xiàn)源碼加以改進(jìn),并引入相關(guān)增強(qiáng)用戶體驗(yàn)的Ajax技術(shù)和中 文分詞技術(shù)來(lái)改進(jìn)搜索引擎。 第4章:主題搜索引擎的實(shí)現(xiàn)。通過(guò)建立一個(gè)實(shí)例搜索引擎來(lái)加以對(duì)比分析。 建立相關(guān)主題詞庫(kù)來(lái)優(yōu)化索引內(nèi)容,引入計(jì)算所的中文分詞處理方式來(lái)改進(jìn)主題 搜索引擎的查詢結(jié)果。



第2章主題搜索引擎

第2章主題搜索引擎
2.1主題搜索引擎研究的目的和意義
搜索是一種服務(wù),外界對(duì)搜索引擎的評(píng)價(jià)體系形式多樣,除了當(dāng)前的競(jìng)價(jià)排 名,未來(lái)基于搜索的商業(yè)模式和業(yè)務(wù)模式會(huì)在網(wǎng)絡(luò)廣告、電子商務(wù)、付費(fèi)信息服 務(wù)等方面有所突破,個(gè)性化搜索及搜索分析將占主導(dǎo)地位。 選擇研究主題搜索而不是通用搜索引擎的原因: (1)搜索引擎的技術(shù)門檻

越來(lái)越高。Google的創(chuàng)始人是超級(jí)名校Staaford計(jì)算機(jī)系的PHI),Baidu的Robin Li也是領(lǐng)了多項(xiàng)搜索技術(shù)專利才敢切入搜索領(lǐng)域?梢哉f(shuō),沒(méi)有3年以上的搜 索技術(shù)積累,請(qǐng)不要涉及搜索領(lǐng)域。(2)搜索引擎的資金投入非常大,Google 光是爬蟲服務(wù)器就數(shù)萬(wàn)之巨,再加上網(wǎng)絡(luò)帶寬的購(gòu)買,相信這些投入非一般人可 以承受?梢哉f(shuō),沒(méi)有千萬(wàn)級(jí)別的資金在手,請(qǐng)不要進(jìn)入搜索引擎領(lǐng)域。(3) 通用搜索引擎經(jīng)過(guò)多年的發(fā)展已經(jīng)非常成熟,各個(gè)巨頭都已經(jīng)各自占山為王,在 快魚吃慢魚的互聯(lián)網(wǎng)里,落后就意味著無(wú)法生存。 隨著信息多元化的增長(zhǎng),千篇一律的給所有用戶同一個(gè)入口顯然已經(jīng)不能滿 足特定用戶更深入的查詢需求。同時(shí),這樣的通用搜索引擎在目前的硬件條件下, 要及時(shí)更新以得到互聯(lián)網(wǎng)上較全面的信息是不太可能的。針對(duì)這種情況,我們需 要一個(gè)分類細(xì)致精確、數(shù)據(jù)全面深入、更新及時(shí)的面向主題的搜索引擎。由于主 題搜索運(yùn)用了人工分類以及特征提取等智能化策略,因此它將更加有效和準(zhǔn)確。

2.2主題搜索引擎的發(fā)展
搜索引擎是上世紀(jì)90年代興起的信息檢索技術(shù),經(jīng)過(guò)十多年的發(fā)展,它已 經(jīng)滲透到了人們生活的各個(gè)領(lǐng)域。然而,傳統(tǒng)的搜索引擎,也即通用搜索引擎, 考慮了所有人的需求,即不管用戶是希望找計(jì)算機(jī)論文方面的信息還是要找籃球 運(yùn)動(dòng)的信息都一致對(duì)待,這樣的搜索引擎需要耗費(fèi)巨大的資源而速度較慢。并且, 由于通用搜索引擎所面向的領(lǐng)域太廣泛,某些利于用戶提高檢索精度和查全率的 技術(shù),比如自動(dòng)分類,在其中的應(yīng)用效果不理想。 所謂主題搜索引擎,是針對(duì)某一特定領(lǐng)域、某一特定人群或某一特定需求提 供的有一定價(jià)值的信息和相關(guān)服務(wù)。以構(gòu)筑某一專題或?qū)W科領(lǐng)域的Internet網(wǎng)絡(luò) 信息資源庫(kù)為目標(biāo),智能地在互聯(lián)網(wǎng)上搜集符合這一專題或?qū)W科需要的信息資 源,能夠?yàn)榘▽W(xué)科信息門戶、專業(yè)信息機(jī)構(gòu)、特定行業(yè)領(lǐng)域、公司信息中心、


成都理T大學(xué)碩+學(xué)位論文

行業(yè)專家等等在內(nèi)的信息用戶,提供整套的網(wǎng)絡(luò)信息資源解決方案。其特點(diǎn)就是 “專、精、深”,且具有行業(yè)色彩。它是與通用搜索引擎截然不同的引擎類型。主 題搜索引擎專注具體、深入的縱向服務(wù),致力于某一特定領(lǐng)域內(nèi)信息的全面和內(nèi) 容的深入,這個(gè)領(lǐng)域外的閑雜信息不收錄。

2.3主題搜索引擎的突破與創(chuàng)新
主題型搜索引擎與通用搜索引擎存在著很大的差別: (1)服務(wù)目的不同 通用搜索引擎面向任何用戶提供對(duì)任何信息的查詢,而主題型搜索引擎則面 向?qū)I(yè)用戶向他們提供對(duì)特定專業(yè)的信息檢索。 (2)搜索方式不同 通用搜索引擎對(duì)網(wǎng)絡(luò)進(jìn)行逐頁(yè)的爬行,試圖遍歷整個(gè)Web。而主題型搜索引 擎則采用一定的策略預(yù)測(cè)相關(guān)網(wǎng)頁(yè)的位置,動(dòng)態(tài)的調(diào)整網(wǎng)頁(yè)爬行方向,使系統(tǒng)盡 可能的在與主題相關(guān)的網(wǎng)頁(yè)集中的地方爬行,這節(jié)約了大量的網(wǎng)絡(luò)資源。 (3)對(duì)硬件和網(wǎng)絡(luò)的要求不同 通用搜索引擎對(duì)硬件需求高,而主題型搜索引擎由于沒(méi)有遍歷整個(gè)Web節(jié) 約了大量的網(wǎng)絡(luò)資源,而且沒(méi)有自己的大型索引數(shù)據(jù)庫(kù),硬件需求也比較低。 主題搜索引擎的優(yōu)勢(shì),將決定它在互聯(lián)網(wǎng)的一席之地。主題搜索的突破點(diǎn)和
創(chuàng)新點(diǎn)在于: (1).實(shí)時(shí)性

主題搜索引擎需要獲取的信息來(lái)自于某一特定領(lǐng)域的,這比起通用搜索引擎 漫無(wú)邊際的信息抓取,有一個(gè)非常大的優(yōu)勢(shì),那就是信息的實(shí)時(shí)性。由于互聯(lián)網(wǎng) 上的信息量非常巨大,通用搜索引擎的數(shù)據(jù)更新周期短則十幾天,長(zhǎng)則幾個(gè)月, 而主題搜索引擎的數(shù)據(jù)更新完全可以以秒為單位。 (2)數(shù)據(jù)挖掘分析,報(bào)表 行業(yè)的歷史發(fā)展、最新動(dòng)向、趨勢(shì)都是行業(yè)從業(yè)人員非常關(guān)注的話題。主題 搜索引擎集中了行業(yè)海量的信息和數(shù)據(jù),基于這些信息和數(shù)據(jù)的商務(wù)智能分析, 將為行業(yè)創(chuàng)造非常有價(jià)值的信息增值服務(wù)。 (3)個(gè)性化,社會(huì)化 查詢服務(wù)只是主題搜索引擎的一部分,主題搜索引擎在用戶的個(gè)性化方向的 發(fā)展非常重要。主題搜索引擎不能只提供一個(gè)窗口,它應(yīng)該是一個(gè)用戶高度參與 交互的社會(huì)化平臺(tái)。主題搜索引擎需要能夠獲取并且分析用戶的偏好信息,從而 提供更加完善而且準(zhǔn)確的數(shù)據(jù)服務(wù)。 (4)智能化語(yǔ)義網(wǎng)


第2章主題搜索引擎

語(yǔ)義網(wǎng)將有可能成為下一代互聯(lián)網(wǎng),這樣網(wǎng)絡(luò)上的數(shù)據(jù)和信息將被計(jì)算機(jī)程 序所理解。這將為主題搜索引擎提供一個(gè)巨大的機(jī)會(huì),爬蟲程序如果能理解網(wǎng)絡(luò) 上的數(shù)據(jù),將對(duì)信息的收集和整理更加準(zhǔn)確和專業(yè),搜索服務(wù)的查全率和查準(zhǔn)率
將更高。

(5)多元化查詢 目前的搜索引擎,都只局限于關(guān)鍵字搜索,其中主要的原因是,對(duì)用戶的查 詢需求無(wú)法建模,無(wú)法模式化。而關(guān)鍵字搜索帶來(lái)的問(wèn)題是,搜索結(jié)果過(guò)多,并 且不準(zhǔn)確;ヂ(lián)網(wǎng)信息量越大,這種情況越嚴(yán)重,甚至可以說(shuō)是災(zāi)難。多元化查 詢服務(wù)的提供,將會(huì)成為對(duì)抗競(jìng)爭(zhēng)對(duì)手的殺手锏。 主題搜索引擎有著自己獨(dú)特的架構(gòu)(如圖2.1),有針對(duì)該相關(guān)主題領(lǐng)域的 主題詞庫(kù),以供在建立索引時(shí)能夠更加集中的把相關(guān)信息給予更高得評(píng)分。并隨 時(shí)更新詞庫(kù)。

——————一查詢k——一 l接El I
查詢,返回結(jié)果 查詢?nèi)論?用戶 l查詢?nèi)罩?br />
索引信 息庫(kù)


計(jì)算機(jī)專業(yè)詞

建立倒排 索引
自動(dòng) 更新

,,

文檔過(guò)濾、 特征提取

計(jì)算機(jī)

蘭警E
檔集

主題詞



I#Ⅱ±目甘口

爬蟲

原始信

息庫(kù) 圖2.1主題搜索引擎架構(gòu)
Fig.2-1 Framework of Topic-specific search engine



成都理。r人學(xué)碩士學(xué)位論文

2.4主題搜索引擎的國(guó)內(nèi)外研究現(xiàn)狀
主題搜索引擎大都處于研究和試驗(yàn)階段,利用它搜索的結(jié)果再經(jīng)過(guò)專業(yè)人士

的加工而形成的面向某一學(xué)科、領(lǐng)域的網(wǎng)絡(luò)垂直門戶網(wǎng)站己經(jīng)出現(xiàn)。目前面向主
題的網(wǎng)絡(luò)信息搜索主要有兩種技術(shù):is]

一是基于內(nèi)容的搜索。這類搜索方式是傳統(tǒng)的信息檢索技術(shù)的延伸。它的主 要方式就是在搜索引擎內(nèi)部建立一個(gè)針對(duì)主題的詞表,搜索引擎的爬行器根據(jù)其 內(nèi)設(shè)的詞表對(duì)網(wǎng)上的信息進(jìn)行索引。各個(gè)不同的系統(tǒng)詞表建設(shè)的復(fù)雜度也大不相 同。現(xiàn)在這種詞表的建設(shè)越來(lái)越多的引入了知識(shí)表示的方法;诒倔w論 (ontology)的搜索引擎開始出現(xiàn)。一個(gè)本體強(qiáng)調(diào)相關(guān)領(lǐng)域的本質(zhì)概念,同時(shí)也強(qiáng) 調(diào)這些概念間的本質(zhì)聯(lián)系。以ontology為基礎(chǔ)建立的詞表能更好的顯示一個(gè)領(lǐng)域 主題中各個(gè)概念(即搜索系統(tǒng)的檢索詞)之間的關(guān)系,能更好的表現(xiàn)一個(gè)主題。在 www的智能信息檢索應(yīng)用中,ontology通常作為用戶感興趣領(lǐng)域的領(lǐng)域模型, 同時(shí)還作為文檔統(tǒng)一注釋的知識(shí)表示語(yǔ)言。一些學(xué)者也提出了概念空間的理論, 用概念空間來(lái)實(shí)現(xiàn)語(yǔ)義索引。所謂概念空間是某個(gè)領(lǐng)域中一組抽象概念的集合, 并且這組概念之間存在一定的語(yǔ)義上的關(guān)聯(lián);诟拍羁臻g的文本檢索系統(tǒng)也較 好地解決了信息檢索過(guò)程中的詞匯不匹配的問(wèn)題以及信息過(guò)載的問(wèn)題,大大提高
了信息檢索的效率和質(zhì)量。

二是基于鏈接分析的檢索。90年代末期,國(guó)外信息檢索界開始以social network為模型對(duì)互聯(lián)網(wǎng)進(jìn)行模擬。一些學(xué)者認(rèn)為網(wǎng)頁(yè)之間的鏈接指引關(guān)系同社 會(huì)網(wǎng)絡(luò)中的關(guān)系有相似之處,尤其與傳統(tǒng)的引文索引非常相似。通過(guò)對(duì)鏈接進(jìn)行 分析,可以找出各個(gè)網(wǎng)頁(yè)之間的引用關(guān)系,由于引用網(wǎng)頁(yè)與被引用網(wǎng)頁(yè)在內(nèi)容上 一般都比較相關(guān),所以就可以很容易地按照引用關(guān)系將大量網(wǎng)頁(yè)分類。在美國(guó), 很多基于這種超鏈分析的檢索系統(tǒng)原形己經(jīng)產(chǎn)生,應(yīng)用于他們的數(shù)字圖書館系統(tǒng)
中。

下面介紹一些較具有代表性的系統(tǒng)。
(1)Elsevier的Scirus系統(tǒng)

Scirus科學(xué)搜索引擎是一種專為搜索高度相關(guān)的科學(xué)信息而設(shè)計(jì)的搜索引 擎,獲得2001《搜索引擎觀察》授予的“最佳專業(yè)搜索引擎”獎(jiǎng)。Scirus是目前 互聯(lián)網(wǎng)上最全面、綜合性最強(qiáng)的科技文獻(xiàn)門戶網(wǎng)站之一。它只面向包含有科學(xué)內(nèi) 容的網(wǎng)站,如大學(xué)和作者個(gè)人主頁(yè)以及Elsevier自己的數(shù)據(jù)庫(kù)。
(2)Berkeley的Focused Project

這個(gè)系統(tǒng)由一個(gè)印度裔的科學(xué)家S.Charkrabarti帶頭從事,他是最早從事這 方面研究的人之一。該系統(tǒng)通過(guò)兩個(gè)程序來(lái)指導(dǎo)爬行器:一個(gè)是分類器Classifier,

lO

第2章主題搜索引擎

用來(lái)計(jì)算下載文檔與預(yù)訂主題的相關(guān)度:另一個(gè)程序是凈化器Distiller,用來(lái)篩選 那些指向很多相關(guān)資源的頁(yè)面(也稱中心網(wǎng)頁(yè))。 (3)NEC研究院的CiteSeer Citeseer是~個(gè)非常有名的針對(duì)計(jì)算機(jī)科學(xué)領(lǐng)域論文的檢索系統(tǒng)。Citeseer
的核心是ACI(Automatically Citation index)M,它可以自動(dòng)地對(duì)互聯(lián)網(wǎng)上的電子

文件(Postscript和PDF等格式)進(jìn)行索引并分類。 (4)美國(guó)國(guó)家科學(xué)數(shù)字圖書館的Collecfion
Building

Program(CBP)

這個(gè)項(xiàng)目旨在為科學(xué)、數(shù)學(xué)、工程和技術(shù)創(chuàng)建大規(guī)模的在線數(shù)字圖書館,試 圖研究在某一主題上資源自動(dòng)建設(shè)的可能性。CBP具有自己的特點(diǎn):第一,因?yàn)?CBP是面向教育、面向教學(xué)的,所以主題精確度比覆蓋度更重要;第二,CBP不 存儲(chǔ)資源原文,而只是提供URL;第三,CBP只需要用戶最少量的輸入,如關(guān)鍵 詞,系統(tǒng)就可以全自動(dòng)的將有關(guān)該主題的最相關(guān)的有限數(shù)量URL返回給用戶。

成都理工大學(xué)碩十學(xué)位論文

第3章Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)
3.1

Lucene的框架結(jié)構(gòu)
Lucene是一個(gè)高性能、可伸縮的信息搜索庫(kù)。它可以為自己的應(yīng)用程序添

加索引和搜索能力。Lucene是用java實(shí)現(xiàn)的成熟的、免費(fèi)的開源項(xiàng)目,是著名 的Apache大家庭的一員,并且基于Apachc軟件許可。同時(shí),Lucene是當(dāng)前與 近幾年內(nèi)非常流行的免費(fèi)的Java信息搜索庫(kù)。其實(shí)現(xiàn)框架(如圖3-1)

圖3-1
F;g.3-1

Luoene應(yīng)用框架
AppI ied

fra㈣rk

in Lucene

Lucene是一個(gè)軟件庫(kù),一個(gè)開發(fā)工具包,而不是一個(gè)具有完整特征的搜索 應(yīng)用程序。它本身只關(guān)注文本的索引和搜索,并且這些功能完成的非常好。Lucene 使得應(yīng)用程序只針對(duì)它的問(wèn)題域來(lái)處理業(yè)務(wù)規(guī)則,而把復(fù)雜的索引和搜索實(shí)現(xiàn)隱 藏在一組簡(jiǎn)單易用的API之后?梢园眩蹋酰悖澹睿逭J(rèn)為成一層,而應(yīng)用程序位于它
之上。

Lucene并不關(guān)心數(shù)據(jù)的來(lái)源、格式、甚至它的語(yǔ)言,只要它能轉(zhuǎn)換成文本。 這意味著能夠利用Lucene來(lái)索引和搜索以下格式的文件:遠(yuǎn)程WEB服務(wù)器上 的web頁(yè)面,存放在本地文件系統(tǒng)中的文檔,簡(jiǎn)單文本文件,MS.word文檔, HrML或PDF文件,以至于其它任何能夠抽取出文本信息的文件格式。同時(shí)

12

第3章Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)

Lucent能夠索引存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù),給予用戶許多數(shù)據(jù)庫(kù)都不能提供的全 文檢索功能。Lucent提供了一些核心類用于在應(yīng)用程序中增加索引和搜索功能。
3.1.1

Lucene的詳細(xì)結(jié)構(gòu)分析

使用Lucent提供的API來(lái)做基礎(chǔ)開發(fā)需要熟悉它的開發(fā)流程結(jié)構(gòu)(如圖3.2)

圖3-2

Lucane的流程圖
in Lucena

Fig.3-2 FIOW chart

Lucene十分精練純粹,僅一個(gè)jar包,可以直接引用到工程中,通過(guò)調(diào)用其 接口,就可以為應(yīng)用增添全文檢索功能。Luccne使用起來(lái)很簡(jiǎn)單,與JDBC有 些類似。Lucene的結(jié)構(gòu)很清晰,每個(gè)package司職一項(xiàng),且Luccne的主要?jiǎng)幼?都采用了抽象類,擴(kuò)展起來(lái)十分方便。相對(duì)于一些商業(yè)化全文檢索,Luccne的 入庫(kù)速度更快。因?yàn)樗拇鎯?chǔ)采取分步合并的方法,先建立小索引,待時(shí)機(jī)成熟 才把小索引合并到大索引樹上。Lucent性能穩(wěn)定,使用簡(jiǎn)單。因此,我們?cè)诓?作應(yīng)用數(shù)據(jù)時(shí)可以同步進(jìn)行全文檢索庫(kù)的操作而不會(huì)影響系統(tǒng)的效能。 Lucene的組成結(jié)構(gòu)分析:對(duì)于外部應(yīng)用來(lái)說(shuō)索引模塊(index)和檢索模塊
(search)是主要的外部應(yīng)用入口:
表3-1
Tab e3-1 Lucene

API類包結(jié)構(gòu)
UCOll0

Structure of I

AP I

成都理工大學(xué)碩十學(xué)位論文 查詢分析器 存儲(chǔ)結(jié)構(gòu) 底層IO/存儲(chǔ)結(jié)構(gòu) 一些公用的數(shù)據(jù)結(jié)構(gòu)

org.apache.Lucene.queryParsed org.apache.Lucene.document/ org.apache.Lucene.store/

org.apache.Lucene.util/

對(duì)文檔進(jìn)行索引,Lucene提供了五個(gè)基礎(chǔ)的類,他們分別是Documem,Field,
IndexWriter,Analyzer,Directory。

Document:描述文檔,文檔可以是html,tXt等等,它由Field組成。可以把 Document看成記錄,Field看成字段. Field:文檔的屬性,比如文檔的標(biāo)題。 Analyzer:在一個(gè)文檔被索引之前,首先需要對(duì)文檔內(nèi)容進(jìn)行分詞處理,這 部分工作就是由Analyzer來(lái)完成的。Analyzer類是一個(gè)抽象類,它有多個(gè)實(shí)現(xiàn)。 針對(duì)不同的語(yǔ)言和應(yīng)用需要選擇適合的Analyzer。Analyzer把分詞后的內(nèi)容交 給IndexWriter來(lái)建立索引。 IndexWriter:是Lueene用來(lái)創(chuàng)建索引的一個(gè)核心的類,作用是把一個(gè)個(gè)的 Document對(duì)象加到索引中來(lái)。 Directory:這是一個(gè)抽象類,它目前有兩個(gè)實(shí)現(xiàn),第一個(gè)是FSDireetory, 它表示一個(gè)存儲(chǔ)在文件系統(tǒng)中的索引的位置。第二個(gè)是RAMDirectory,它表示 一個(gè)存儲(chǔ)在內(nèi)存當(dāng)中的索引的位置。 下面主要介紹lucene的各個(gè)文件包詳細(xì)組成

1、org.apache.1ucene.document
以下介紹兩種主要的類:

a)org.apache.1ucene.document.Document:
Document文檔類似數(shù)據(jù)庫(kù)中的一條記錄,可以由好幾個(gè)字段(Field)組成,

并且字段可以套用不同的類型(詳細(xì)見(jiàn)b)。Document的幾種接口(表3—2):

…超巳魚
ield tring get(String

Tab I e3-2 Document

{——每連——
nterface

表3-2 Document接口

field)一

name)一 ield getField(String nanle) ield[】getFields(String

琴加一,字段.塑ieId)到Document—8P— 隊(duì)文檔中獲得_個(gè)字壁塑空塑塞查
』由字段名獲得字段值

na薔了——碼字段名獲得字段值的藁

b)org.apache.1ucene.document.Field 即上文所說(shuō)的“字段”,它是Document的片段section。
14

第3章Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)

Field的構(gòu)造函數(shù): Field(String Banle,String string,boolean
8t01.e,boolean index,boolean

token)。

Indexed:如果字段是Indexed的,表示這個(gè)字段是可檢索的。 Stored:如果字段是Stored的,表示這個(gè)字段的值可以從檢索結(jié)果中得到。 Tokenized:如果一個(gè)字段是Tokenized的,表示它是有經(jīng)過(guò)Analyzer轉(zhuǎn)變后 成為一個(gè)tokens序列,在這個(gè)轉(zhuǎn)變過(guò)程tokenization中,Analyzer提取出需要進(jìn) 行索引的文本,而剔除一些冗余的詞句。Token是索引時(shí)候的基本單元,代表一 個(gè)被索引的詞,例如一個(gè)英文單詞,或者一個(gè)漢字。因此,所有包含中文的文本 都必須是Tokenized的。
2、org.apache.Lueene.index

以下介紹兩種主要的類: org.apache.Lucene.index.indexWriter是將文檔加入索引,同時(shí)控制索引過(guò)程
中的各種參數(shù)。 org.apache.Lucene.index.indexReader刪除索引中不要的文檔

IndexWriter的構(gòu)造函數(shù)有三種接口,針對(duì)目錄Directory、文件File、文件 路徑String三種情況。
例如IndexWfiteKString path,Analyzer
a’boolean

create),path為文件路徑,a

為分析器,create標(biāo)志是否重建索引(true:建立或者覆蓋己存在的索引,false: 擴(kuò)展已存在的索引。)
一些重要的方法:

表3-3 Index的函數(shù)
TabIe3—3 Index function

旦壟

!多蓮

…t(D…ocume~nt旦盟
Indexes(Directory[]dirs)

鎏引添加二坌文檔
蔣目錄中已存在索引添加到這個(gè)索}

!。!堡。。。。。。。。。。。!旦!。。。。。!
ptimize

牌提償!堡曼f逐墊堊!整全塞!
并索引并優(yōu)化 閉



10se0

IndexWriter?yàn)榱藴p少大量的10維護(hù)操作,在每得到一定量的索引后建立新的 小索引文件,然后再定期將它們整合到一個(gè)索引文件中,因此在索引結(jié)束時(shí)必須 進(jìn)行wirter.optimize0,以便將所有索引合并優(yōu)化。
3、org.apache.1ucene.analysis

Analyzer分析器主要工作是篩選,一段文檔進(jìn)來(lái)以后,經(jīng)過(guò)它,出去的時(shí)候 只剩下那些有用的部分,其他則剔除。而這個(gè)分析器也可以自己根據(jù)需要而編寫。

成都理T大學(xué)碩士學(xué)何論文

org.apache.1ucene.analysis.Analyzer:這是一個(gè)虛構(gòu)類,以下兩個(gè)接口均繼承
它而來(lái)。

org.apache.1ucene.analysis.SimpleAnalyzer:分析器,支持最簡(jiǎn)單拉丁語(yǔ)言。 org.apache.1ucene.analysis.standard.StandardAnalyzer:標(biāo)準(zhǔn)分析器,除了拉丁 語(yǔ)言還支持亞洲語(yǔ)言,并在一些匹配功能上進(jìn)行完善。在這個(gè)接口中還有一個(gè)很
重要的構(gòu)造函數(shù):StandardAnalyzer(String[】stopWords),可以對(duì)分析器定義一些

使用詞語(yǔ),這不僅可以免除檢索一些無(wú)用信息,而且還可以在檢索中定義禁止的 政治性、非法性的檢索關(guān)鍵詞。
4、org.apache.1ucene.search

(1)org.apache.1ucene.search.indexSearcher是Lucene中最基本的檢索工具,所 有的檢索都會(huì)用到IndexSearcher檢索工具,但是在使用IndexSearcher之前,還 要做一些準(zhǔn)備工作,即對(duì)檢索工具IndexSearcher進(jìn)行初始化。 初始化IndexSeareher,需要設(shè)置索引存放的路徑,這樣才能讓查詢器定位索 引,用于后面進(jìn)行搜索。如下為一個(gè)實(shí)例化IndexSearcher的過(guò)程:
Searcher searcher=new IndexSearcher(indexDir);

返回的結(jié)果是IndexSearcher類的一個(gè)實(shí)例,indexDir表示索引文件的存放路徑。 以下是IndexSearcher的所有構(gòu)造函數(shù):
public

IndexSearcher(String path)throws IOException{

this(IndexReader.open(path),true); )
public

IndexSearcher(Directory directory)throws lOException{

this(IndexReader.open(directory),true); }
public

IndexSearcher(IndexReader r){

this(r,false); }
private

IndexSearcher(IndexReader r,boolean closeReader){

reader=r:

this.eloseReader=eloseReader;



可以看到,IndexSearcher一共提供了四種構(gòu)造函數(shù)來(lái)初始化一個(gè)IndexSearcher 對(duì)象。第一個(gè)方法最為簡(jiǎn)單,它直接使用了索引存放的路徑作為參數(shù)來(lái)構(gòu)造對(duì)象。 第二種方式則是使用Directory類型的對(duì)象來(lái)構(gòu)建IndexSearcher第三種是直接使 用IndexReader來(lái)初始化一個(gè)IndexSearcher?qū)ο蟆5谒姆N則是在第三種的基礎(chǔ)上 加了一個(gè)布爾型的開關(guān),用于判斷在關(guān)閉lndexSearcher時(shí)是否要關(guān)閉所帶的 IndexReader?qū)ο?梢钥闯,?shí)際上,無(wú)論傳入的參數(shù)類型是什么,IndexSearcher 最終都還是使用IndexReader來(lái)做為實(shí)際的索引目錄讀取器。前三種構(gòu)造函數(shù)均



第3章Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)

首先根據(jù)傳入的參數(shù)生成一個(gè)IndexReader?qū)ο,然后調(diào)用了第四種構(gòu)造方法來(lái) 完成kndexSearcher的初始化工作。 (2)org.apache.1ucene.search.query只是Lucene的search包中的一個(gè)抽象類, 這個(gè)抽象類有許多子類,代表了不同類型的檢索。如常見(jiàn)的TermQuery就是將 一個(gè)簡(jiǎn)單的關(guān)鍵字進(jìn)行封裝后的對(duì)象,類似的還有BooleanQuery,即布爾型的查 找。 搜索流程中的第二步就是構(gòu)建一個(gè)Query。Query的中文意義就是“查詢”。 在Lucene中,它是一個(gè)很重要的概念,就是指對(duì)于需要查詢的字段采用什么樣 的方式進(jìn)行查詢,如模糊查詢、語(yǔ)義查詢、短語(yǔ)查詢、范圍查詢、組合查詢等。 正是因?yàn)椋眩酰澹颍拇嬖,Lucene才有了非常豐富的查詢語(yǔ)言。 在使用Query之前,需要首先生成一個(gè)Query對(duì)象。Lucene既允許直接生成 一個(gè)Query類型的對(duì)象,也允許使用QueryParser類的parse0方法來(lái)返回一個(gè) Query類型的對(duì)象。這兩種方法在功能上是完全一樣的,只是后者在使用時(shí)更方 便一些,而前者則更為靈活. 當(dāng)用戶輸入一個(gè)關(guān)鍵字,搜索引擎接收到后,并不是立刻就將它放入后臺(tái)開 始進(jìn)行關(guān)鍵字的檢索,而應(yīng)當(dāng)首先對(duì)這個(gè)關(guān)鍵字進(jìn)行一定的分析和處理,使之成 為一種后臺(tái)可以理解的形式,只有這樣,才能提高檢索的效率,同時(shí)檢索出更加 有效的結(jié)果。那么,在Lucene中,這種處理,其實(shí)就是構(gòu)建一個(gè)Query對(duì)象。 IndexSearcher?qū)ο蟮模螅澹幔颍悖璺椒ㄖ锌偸切枰粋(gè)Query對(duì)象(或是Query子類的 對(duì)象),下面來(lái)介紹各種Query類。

按詞條搜索--TermQuery
“與或”搜索--BooleanQuery 在某一范圍內(nèi)搜索—_RangeQuery 使用前綴搜索--l'refixQuery 多關(guān)鍵字的搜索--PhraseQuery 使用短語(yǔ)綴搜索--PhrasePrefixQuery 相近詞語(yǔ)的搜索--FuzzyQuery 使用通配符搜索--WildcardQuery TermQuery是最簡(jiǎn)單、也是最常用的Query。TerrnQuery可以理解成為“詞 條搜索”,在搜索引擎中最基本的搜索就是在索引中搜索某一詞條,而TermQuery 就是用來(lái)完成這項(xiàng)工作的。 在Lucene中詞條是最基本的搜索單位,從本質(zhì)上來(lái)講一個(gè)詞條其實(shí)就是一個(gè)名/ 值對(duì)。只不過(guò)這個(gè)“名”是字段名,而“值”則表示字段中所包含的某個(gè)關(guān)鍵字。 要使用TermQuery進(jìn)行搜索首先需要構(gòu)造一個(gè)Term對(duì)象,示例代碼如下:

17

成都理工大學(xué)碩十學(xué)位論文

Term aTerm。new

Term(”contents”,。3ava”);

然后使用aTerm對(duì)象為參數(shù)來(lái)構(gòu)造一個(gè)TermQuery對(duì)象,代碼設(shè)置如下:
Query query=new TermQuery(aTerm);

這樣所有在“contents”字段中包含有“java”的文檔都會(huì)在使用TermQuery進(jìn) 行查詢時(shí)作為符合查詢條件的結(jié)果返回。 (3)org.apache.1ucene.search.hits是搜索結(jié)果的集合類,搜索并處理返回結(jié)果。 在構(gòu)建完Query對(duì)象后,就可以使用前面已經(jīng)初始化好的IndexSearcher工具來(lái) 進(jìn)行檢索了。IndexSearcher提供了良好的檢索接13,用戶只需簡(jiǎn)單地將Query 對(duì)象傳入,就可以得到一個(gè)返回結(jié)果。當(dāng)然,這個(gè)過(guò)程看似簡(jiǎn)單,其中也有許多 值得思考的問(wèn)題,如檢索結(jié)果的排序、過(guò)濾等。 在搜索完成之后,就需要把搜索結(jié)果返回并顯示給用戶,只有這樣才算是完 成了搜索的任務(wù)。在Lucene中搜索結(jié)果的集合是用Hits類的實(shí)例來(lái)進(jìn)行表示的。 所有的search方法都返回一個(gè)類型為Hi協(xié)的對(duì)象。 Hits對(duì)象中主要有以下幾個(gè)經(jīng)常使用的方法。 lengthO:返回搜索到結(jié)果的總數(shù)量。
doc(int n):返回第n個(gè)文檔。 id(int n):返回第n個(gè)文檔的內(nèi)部ID號(hào)。

score(n):返回第n個(gè)文檔的得分。 其中,length()方法和doc(intn)方法共同使用,就可以遍歷結(jié)果集中的所有 文檔記錄。不過(guò)有一點(diǎn)值得注意,如果一個(gè)結(jié)果集含有100000條記錄,而Hits 對(duì)象一次性就把檢索結(jié)果全部返回,那么這個(gè)Hi協(xié)對(duì)象的結(jié)果就會(huì)大不一樣。 它并不是一次性將所有的結(jié)果返回,而是采取一種懶惰的方式來(lái)加載返回結(jié)果, 即當(dāng)用戶將要訪問(wèn)某個(gè)文檔的時(shí)候,Hits對(duì)象在內(nèi)部對(duì)Lucene的索引又進(jìn)行了 一次檢索,才將這個(gè)最新的結(jié)果返回給用戶。 3.1.2評(píng)分機(jī)制 評(píng)分其實(shí)是搜索引擎中很重要的概念,通常情況下,當(dāng)用戶輸入一個(gè)關(guān)鍵字, 搜索引擎接收到信息后即可開始進(jìn)行搜索。對(duì)于檢索到的結(jié)果,需要按一定的順 序返回給用戶。因此需要引入一種機(jī)制來(lái)對(duì)檢索結(jié)果進(jìn)行排序,以便更加合理的 將結(jié)果返回給用戶BOl。 評(píng)分機(jī)制就是對(duì)檢索結(jié)果按照某種標(biāo)準(zhǔn)進(jìn)行評(píng)估,然后按分值的高低來(lái)對(duì)結(jié) 果進(jìn)行排序。同時(shí),對(duì)于一個(gè)商用的搜索引擎,評(píng)分機(jī)制是其收入來(lái)源的主要部 分,例如某公司向搜索引擎交納一定的費(fèi)用,該搜索引擎將其搜索結(jié)果中關(guān)于該 公司的信息部分權(quán)值加大,以便在返回結(jié)果給用戶時(shí)讓該公司獲得更加靠前的位
1S

第3章Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)

置,這種做法增加了用戶瀏覽該公司網(wǎng)頁(yè)和產(chǎn)品的機(jī)會(huì),無(wú)形之中給該公司帶來(lái) 了更大的社會(huì)影響和潛在的商機(jī)。因此,采用何種評(píng)分機(jī)制,從各方面來(lái)說(shuō)都是
非常重要的。

Lucene的對(duì)各文檔的得分是在用戶進(jìn)行檢索時(shí)實(shí)時(shí)計(jì)算出來(lái)的,如果在建立 索引時(shí)就已經(jīng)給每個(gè)文檔的得分計(jì)算好,那么當(dāng)用戶輸入任何關(guān)鍵字時(shí),得分最 高的文檔都會(huì)被排在返回結(jié)果的最前面,這顯然不合理。因此所有文檔的得分應(yīng) 當(dāng)都與用戶輸入的關(guān)鍵字有關(guān)系,而且是實(shí)時(shí)運(yùn)算的結(jié)果。

芝:礦(f
t/n窖

in

d)+idf(t)4 boost(t.field

in

d)+lengthNorm(t.field

in

d)

通過(guò)這個(gè)評(píng)分公式得到的只是原始的得分,但由Hits對(duì)象返回的關(guān)于某一文 檔的評(píng)分卻不一定是其原始的得分。因?yàn),評(píng)分最高的文檔的得分如果超過(guò)了 1.0,那么接下來(lái)的所有評(píng)分都會(huì)以這個(gè)評(píng)分為標(biāo)準(zhǔn)進(jìn)行計(jì)算,因此所有Hits對(duì) 象的得分都只能小于或等于1.0。

表3-4評(píng)分公式中的因子說(shuō)明
Table3-4 Introduction ofthe
score

formula

因素
tf(t in d)

在公式中的作用描述

詞條t在文檔d中出現(xiàn)的次數(shù),查詢關(guān)鍵詞出現(xiàn)的頻
率越高,文檔的得分就越高

idf(t)

詞條t在文檔中的倒排詞頻,.這個(gè)函數(shù)表示的是t在
所有文檔中一共在多少個(gè)文檔中出現(xiàn)過(guò)。因?yàn)槲臋n出現(xiàn) 的次數(shù)越少就越容易定位,所以文檔數(shù)越少,得分就越 高

boost(t.field

in

d)
in

在索引過(guò)程中設(shè)置的文字字段參數(shù) d)

lengthNorm(t.field

字段的標(biāo)準(zhǔn)化值,表明在字段中存儲(chǔ)了多少詞條, 這個(gè)數(shù)值是在索引過(guò)程中計(jì)算出來(lái)的,并且也存
儲(chǔ)在索引中

coord(q,d)

協(xié)調(diào)因子,它的計(jì)算是基于文檔d中所包含的所 有可供查詢的詞條數(shù)量,查詢?cè)~q在在文檔d中
命中的個(gè)數(shù)越多,則該因子也就越大 這個(gè)函數(shù)是一個(gè)調(diào)節(jié)因子,不影響具體的排序情況。主
要是用來(lái)讓排序結(jié)果在不同的查詢條件之問(wèn)可以比較

queryNorm(q)

在公式中加入加權(quán)因子(boost factor),可有效地對(duì)某個(gè)查詢或某一域給評(píng) 分帶來(lái)的影響施加控制。Lucene在索引時(shí),顯式地通過(guò)boost(t.field
in d)來(lái)設(shè)置

某個(gè)域的加權(quán)因子。該加權(quán)因子的默認(rèn)值為1.0。在索引期間,也可以為Document 對(duì)象設(shè)置加權(quán)因子。它隱式地把該文檔中所有域的初始加權(quán)因子都設(shè)置為指定

19

成都理工大學(xué)碩士學(xué)位論文

值。特定域的加權(quán)因子是初始加權(quán)因子的倍數(shù),經(jīng)過(guò)一定處理后才最終得出該域 加權(quán)因子的值。在索引過(guò)程中,有可能多次將同一域添加到同一個(gè)文檔中,在這 種情況下,該域的加權(quán)因子就等于該域在這個(gè)文檔的所有加權(quán)因子之和。 在這個(gè)公式中除了一些明確的因子外,其他一部分作為查詢標(biāo)準(zhǔn)(queryNorm) 的因子可以在每次查詢的基礎(chǔ)上計(jì)算出來(lái)。Query對(duì)象本身對(duì)匹配文檔的評(píng)分也 會(huì)產(chǎn)生一定的影響。加權(quán)處理某一Query對(duì)象僅在應(yīng)用程序執(zhí)行多重子旬的查詢 時(shí)比較有效;如果只搜索單個(gè)項(xiàng),加權(quán)處理該項(xiàng)相當(dāng)于同時(shí)對(duì)所有匹配該項(xiàng)的文 檔都進(jìn)行了相同比例的加權(quán)。在多重子句的布爾查詢中,一些文檔可能只匹配其 中的一個(gè)子句,使用不同的加權(quán)因子可以用來(lái)區(qū)分不同的查詢條件。Query對(duì)象
加權(quán)因子的值也默認(rèn)為1.0。

在這個(gè)評(píng)分公式中,對(duì)絕大多數(shù)因子的控制都是通過(guò)Similarity實(shí)例來(lái)實(shí)現(xiàn) 的。如果不另外指定,在默認(rèn)的情況下Lucene會(huì)用DefaultSimilarity來(lái)實(shí)現(xiàn) Similarity類。此外,DefaultSimilarity類還負(fù)責(zé)處理評(píng)分中更多的計(jì)算過(guò)程,例 如,項(xiàng)頻率(term丘equeney)因子就是實(shí)際頻率的平方根。索引過(guò)程中改變加權(quán) 因子或使用了Similarity類的方法后,為了同時(shí)協(xié)調(diào)所有的相關(guān)因子,應(yīng)用程序 需要對(duì)索引進(jìn)行重建。 Lucene的搜索結(jié)果默認(rèn)按相關(guān)度排序,這個(gè)相關(guān)度排序是基于內(nèi)部的Score
和DoclD,Score又基于關(guān)鍵詞的內(nèi)部評(píng)分和做索引時(shí)的boost。默認(rèn)Score高

的排前面,,如果Score一樣,再按索引順序,先索引的排前面。那么如果要先索 引的排后面,只要構(gòu)造一個(gè)SortField[]就可以實(shí)現(xiàn)該功能 //評(píng)分降序,評(píng)分一樣時(shí)后索引的排前面
new

SortField[]{SortField.FIELD

SCORE,flew

SortField(null,SortField.DOC,true)}

∥評(píng)分升序,評(píng)分一樣時(shí)后索引的排前面,此為最不相關(guān)的排前面
new

SortField[]{new SortField(null,SortField.SCORE,true),new SortField(null,SortField.DOC,

true))

Lucene中的相似度排序主要是在org.apache.1ucene.search包下的Similarity 類中定義的,Similarity是一個(gè)抽象類,默認(rèn)的相似度排序算法是在 DefaultSimilarity類中實(shí)現(xiàn)。除了內(nèi)置的得分算法外,Lucene還提供了一種方法 來(lái)改變每個(gè)文檔的得分。初始化Document后,使用了Document的setBoost方 法來(lái)改變一下文檔的boost因子。這種做法的實(shí)際目的是將文檔的得分乘以這個(gè) 因子,以這個(gè)新的數(shù)作為文檔的得分。

第3章Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)

3.1.3倒排索;

倒排文件就是把文檔到詞的關(guān)系倒排成詞到文檔的關(guān)系。倒排文件機(jī)制是一 種面向單詞的索引機(jī)制,利用它可以提高網(wǎng)絡(luò)檢索速度。倒排文件結(jié)構(gòu)由詞匯和 出現(xiàn)情況兩部分組成。對(duì)于每個(gè)單詞,都有一個(gè)列表(稱為詞匯列表)來(lái)記錄單詞 在所有文本中出現(xiàn)的位置,這些位置可以是單詞的位置(是文本中的第幾個(gè)單詞) 也可以是字符的位置(是文本中的第幾個(gè)字符)。在倒排索引中,詞匯表對(duì)空間的 需求相對(duì)較小。 倒排索引源于實(shí)際應(yīng)用中需要根據(jù)屬性的值來(lái)查找記錄。這種索引表中的每 ~項(xiàng)都包括一個(gè)屬性值和具有該屬性值的各記錄的地址。由于不是由記錄來(lái)確定 屬性值,而是由屬性值來(lái)確定記錄的位置,因而稱為倒排索引。索引文件為了 使得以項(xiàng)為基礎(chǔ)的搜索更加有效而儲(chǔ)存有所有項(xiàng)的統(tǒng)計(jì)數(shù)字。Lueene的索引使 用的就是倒排索引的索引方式,這是因?yàn),這種索引方式是從特定的關(guān)鍵字可以 列出所有包含它的文檔,與通常方式的由文檔列出所有關(guān)鍵字正好是反過(guò)來(lái)的。 Lucene是一個(gè)高性能的java全文檢索工具包,它使用的是倒排文件索引結(jié) 構(gòu)。該結(jié)構(gòu)及相應(yīng)的生成算法如下: 設(shè)有兩篇文章1和2 文章1的內(nèi)容為:RuifivesinBeOhag,IliveinBeringtoo.
文章2的內(nèi)容為:I
once

lived in Shanghai.

1油于lucene是基于關(guān)鍵詞索引和查詢的,首先我們要取得這兩篇文章的關(guān)
鍵詞,通常我們需要如下處理措施

a.我們現(xiàn)在有的是文章內(nèi)容,即一個(gè)字符串,我們先要找出字符串中的所有 單詞,即分詞。英文單詞由于用空格分隔,比較好處理。中文單詞間是連在一起 的需要特殊的分詞處理。 b.文章中的“in'’,‘'once…'too”等詞沒(méi)有什么實(shí)際意義,中文中的“的“是”等 字通常也無(wú)具體含義,這些不代表概念的詞可以過(guò)濾掉 c用戶通常希望查“Hve'’時(shí)能把含“lives”,“lived'’的文章也找出來(lái),所以需要 把“lives'’,“lived”還原成“livC’ d.文章中的標(biāo)點(diǎn)符號(hào)通常不表示某種概念,也可以過(guò)濾掉 在lucene中以上措施由Analyzer類完成 經(jīng)過(guò)上面處理后 文章1的所有關(guān)鍵詞為:[Rui】【live]【Beijing]【live】【Bering] 文章2的所有關(guān)鍵詞為:【I】[1ive】【shanghai】

2l

成都理T大學(xué)碩士學(xué)位論文

2)有了關(guān)鍵詞后,我們就可以建立倒排索引了。上面的對(duì)應(yīng)關(guān)系是:“文章 號(hào)”對(duì)“文章中所有關(guān)鍵詞”。倒排索引把這個(gè)關(guān)系倒過(guò)來(lái),變成:“關(guān)鍵詞”對(duì)“擁 有該關(guān)鍵詞的所有文章號(hào)”。文章1,2經(jīng)過(guò)倒排后變成
關(guān)鍵詞文章號(hào) Beijing
i l.2 livel,2 shanghai 2 Rui 1 1

通常僅知道關(guān)鍵詞在哪些文章中出現(xiàn)還不夠,我們還需要知道關(guān)鍵詞在文章 中出現(xiàn)次數(shù)和出現(xiàn)的位置,通常有兩種位置: a)字符位置,即記錄該詞是文章中第幾個(gè)字符。 b)關(guān)鍵詞位置,即記錄該詞是文章中第幾個(gè)關(guān)鍵詞(優(yōu)點(diǎn)是節(jié)約索引空間、 詞組查詢快),lucene中記錄的就是這種位置。 加上“出現(xiàn)頻率”和“出現(xiàn)位置”信息后,我們的索引結(jié)構(gòu)變?yōu)椋?關(guān)鍵詞文章號(hào)【出現(xiàn)頻率】出現(xiàn)位置
Beijing 1 12】3,6

i1【l】,2[1】4,1
live

112],211】2,5,2 211】3

shanghai Rui

1[1】1

以live這行為例我們說(shuō)明一下該結(jié)構(gòu):live在文章1中出現(xiàn)了2次,那么“2,5” 就表示live在文章1中出現(xiàn)的兩個(gè)位置,文章2中出現(xiàn)了一次,剩下的‘‘2”就表 示live是文章2中第2個(gè)關(guān)鍵字。 以上就是lueene索引結(jié)構(gòu)中最核心的部分。我們注意到關(guān)鍵字是按字符順 序排列的,因此lucene可以用二元搜索算法快速定位關(guān)鍵詞。 實(shí)現(xiàn)時(shí)lucene將上面三列分別作為詞典文件、頻率文件、位置文件保存。 其中詞典文件不僅保存有每個(gè)關(guān)鍵詞,還保留了指向頻率文件和位置文件的指 針,通過(guò)指針可以找到該關(guān)鍵字的頻率信息和位置信息。 Lucene中使用了field的概念,用于表達(dá)信息所在位冕(如標(biāo)題中,文章中, ud中),在建索引中,該field信息也記錄在詞典文件中,每個(gè)關(guān)鍵詞都有一個(gè) field信息(因?yàn)槊總(gè)關(guān)鍵字一定屬于一個(gè)或多個(gè)field)。 為了減小索引文件的大小,Lueene對(duì)索引還使用了壓縮技術(shù)。首先,對(duì)詞 典文件中的關(guān)鍵詞進(jìn)行了壓縮,關(guān)鍵詞壓縮為<前綴長(zhǎng)度,后綴>,例如:當(dāng)前

第3章Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)

詞為“阿拉伯語(yǔ)”,上一個(gè)詞為“阿拉伯”,那么“阿拉伯語(yǔ)”壓縮為島,語(yǔ)>。其次, 大量用到的是對(duì)數(shù)字的壓縮,數(shù)字只保存與上一個(gè)值的差值(這樣可以減小數(shù)字 的長(zhǎng)度,進(jìn)而減少保存該數(shù)字需要的字節(jié)數(shù))。例如當(dāng)前文章號(hào)是16389(不壓 縮要用3個(gè)字節(jié)保存),上一文章號(hào)是16382,壓縮后保存7(只用一個(gè)字節(jié))。 下面我們可以通過(guò)對(duì)該索引的查詢來(lái)解釋一下為什么要建立索引。 假設(shè)要查詢單詞“live'’,lncene先對(duì)詞典二元查找、找到該詞,通過(guò)指向頻 率文件的指針讀出所有文章號(hào),然后返回結(jié)果。詞典通常非常小,因而,整個(gè)過(guò) 程的時(shí)間是毫秒級(jí)的。 如果用普通的順序匹配算法,不建索引,而是對(duì)所有文章的內(nèi)容進(jìn)行字符串 匹配,這個(gè)過(guò)程將會(huì)相當(dāng)緩慢,當(dāng)文章數(shù)目很大時(shí),時(shí)間往往是無(wú)法忍受的。 下面是倒排索引構(gòu)造基本算法描述: 1.產(chǎn)初始化+,
Create an empty dictionary
structure S.

2.產(chǎn)搜集文檔中的所有項(xiàng)?/
For each document

D1 In the collection,1≤i≤N,
it into index terms

1)Read口,parsing

2)For eachindextermt∈Dj,
i.Let

E.1

be the丘equency in



oft.

ii.Search S fort. iii.IftisnotinS.insertt
iv.Append 3.


node

storing<i,只.f>to

the list corresponding to term t.

嚴(yán)倒排文件得輸出?/
word)

For each term 1≤t≤n fn is the number ofdistinct

(1)Start



new inverted file entry. list corresponding to t,append<i,E,l>to this

(2)For each<i,E.f>in the
inverted file entry.

(3)Ifrequired,compress the inverted (4)Append this inverted

file entry.

file entry to the inverted file.

3.2

Lucene的設(shè)計(jì)原理和特色
Lucene的API接口設(shè)計(jì)的比較通用,輸入輸出結(jié)構(gòu)都很像數(shù)據(jù)庫(kù)的表=>記

錄_>字段,所以很多傳統(tǒng)的應(yīng)用的文件、數(shù)據(jù)庫(kù)等都可以比較方便的映射到

成都理工大學(xué)碩士學(xué)位論文

Lucene的存儲(chǔ)結(jié)構(gòu)/接口中。總體上看:可以先把Lucene當(dāng)成一個(gè)支持全文索弓 的數(shù)據(jù)庫(kù)系統(tǒng)。比較一下Lucene和數(shù)據(jù)庫(kù):

表3-5 Lucene數(shù)據(jù)庫(kù)和普通關(guān)系數(shù)據(jù)庫(kù)結(jié)構(gòu)的對(duì)比
Tab I e3-5 Contrast Lucene between I
ucene

DB and

common

DB

數(shù)據(jù)庫(kù) 數(shù)據(jù)源:record(fieldl,field2…)record(fieldI..) 、SQL:insert/ IDB
Index

數(shù)據(jù)源:doe(fieldl,field2…)doc(fieldl,field2…]
、indexer/

Lucene

Indexl

/searcher、

/SQL:select、 結(jié)果:results(record(fieldl,field2。) record(fieldl…)) Record:記錄,包含多個(gè)字段 Field:字段

結(jié)果:Hits(doc(fleldl,field2)doc(fieldl…)) Document:一個(gè)需要進(jìn)行索引的“單元” 一個(gè)Document由多個(gè)字段組成 Field:字段

Hits:查詢結(jié)果集,由匹配的Document組成 RecordSet:查詢結(jié)果集,由多個(gè)Record組成

全文檢索≠like”%keyword%”

通常比較厚的書籍后面常常附關(guān)鍵詞索引表,它能夠幫助讀者比較快地找到 相關(guān)內(nèi)容的頁(yè)碼。索引之所以效率高,另外一個(gè)原因是它是排好序的。對(duì)于檢索 系統(tǒng)來(lái)說(shuō)核心是一個(gè)排序問(wèn)題。 由于數(shù)據(jù)庫(kù)索引不是為全文索引設(shè)計(jì)的,因此,使用like”%keyword%”時(shí), 數(shù)據(jù)庫(kù)索引是不起作用的,在使用like查詢時(shí),搜索過(guò)程又變成類似于一頁(yè)頁(yè)翻 書的遍歷過(guò)程了,所以對(duì)于含有模糊查詢的數(shù)據(jù)庫(kù)服務(wù)來(lái)說(shuō),LIKE對(duì)性能的危 害是極大的。如果是需要對(duì)多個(gè)關(guān)鍵詞進(jìn)行模糊匹配:like”%keywordl%”and
”%keyword2%”…其效率也就可想而知了。
like

所以建立一個(gè)高效檢索系統(tǒng)的關(guān)鍵是建立一個(gè)類似于科技索引一樣的 反向索引機(jī)制,將數(shù)據(jù)源排序按順序存儲(chǔ)的同時(shí),有另外一個(gè)排好序的關(guān)鍵 詞列表,用于存儲(chǔ)關(guān)鍵詞=>文章映射關(guān)系,利用這樣的映射關(guān)系索引:【關(guān) 鍵詞=>出現(xiàn)關(guān)鍵詞的文章編號(hào),出現(xiàn)次數(shù)(甚至包括位置:起始偏移量,結(jié) 束偏移量),出現(xiàn)頻率1,檢索過(guò)程就是把模糊查詢變成多個(gè)可以利用索引的 精確查詢的邏輯組合的過(guò)程。從而大大提高了多關(guān)鍵詞查詢的效率,所以, 全文檢索問(wèn)題歸結(jié)到最后是一個(gè)排序問(wèn)題。 由此可以看出模糊查詢相對(duì)數(shù)據(jù)庫(kù)的精確查詢是一個(gè)非常不確定的問(wèn) 題,這也是大部分?jǐn)?shù)據(jù)庫(kù)對(duì)全文檢索支持有限的原因。Lucene最核心的特征

第3章Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)

是通過(guò)特殊的索引結(jié)構(gòu)實(shí)現(xiàn)了傳統(tǒng)數(shù)據(jù)庫(kù)不擅長(zhǎng)的全文索引機(jī)制,并提供了 擴(kuò)展接口,以方便針對(duì)不同應(yīng)用的定制。 可以通過(guò)表格對(duì)比數(shù)據(jù)庫(kù)的模糊查詢:
表3-6 Lucene全文索引和普通數(shù)據(jù)庫(kù)索引對(duì)比
TabIe3-6 Contrast between Iucefle fuI I jndex and common index

Lucene全文索引引擎 索引 將數(shù)據(jù)源中的數(shù)據(jù)都通過(guò)全文索 引一一建立反向索引

數(shù)據(jù)庫(kù) 對(duì)于LIKE查詢來(lái)說(shuō),數(shù)據(jù)傳統(tǒng)的索引是根 本用不上的。數(shù)據(jù)需要逐個(gè)便利記錄進(jìn)行 GREP式的模糊匹配,比有索引的搜索速度 要有多個(gè)數(shù)量級(jí)的下降。

匹配 效果

通過(guò)詞元(term)進(jìn)行匹配。通過(guò)

使用:like’%net%’會(huì)把netherlands也 匹配出來(lái)。

語(yǔ)言分析接口的實(shí)現(xiàn),可以實(shí)現(xiàn)
對(duì)中文等非英語(yǔ)的支持。

多關(guān)鍵詞的模糊匹配,不能匹配詞序顛倒的
沒(méi)有匹配程度的控制:比如有記錄中net 出現(xiàn)5詞和出現(xiàn)1次的,結(jié)果是一樣的。

匹配 度 結(jié)果 輸出

有匹配度算法,將匹配程度(相
似度)比較高的結(jié)果排在前面。

通過(guò)特別的算法,將最匹配度最 高的頭100條結(jié)果輸出,結(jié)果集
是緩沖式的小批量讀取的。 通過(guò)不同的語(yǔ)言分析接口實(shí)現(xiàn), 可以方便的定制出符合應(yīng)用需要 的索引規(guī)則(包括對(duì)中文的支持)

返同所有的結(jié)果集,在匹配條目非常多的時(shí)
候需要大量的內(nèi)存存放這些臨時(shí)結(jié)果集

可定 制性

沒(méi)有接口或接口復(fù)雜。無(wú)法定制

結(jié)論

高負(fù)載的模糊查詢應(yīng)用,需要負(fù)

責(zé)的模糊查詢的規(guī)則,索引的資
料量比較大

使用率低,模糊匹配規(guī)則簡(jiǎn)單或者需要模糊 查詢的資料量少

全文檢索和數(shù)據(jù)庫(kù)應(yīng)用最大的不同在于:讓最相關(guān)的頭100條結(jié)果滿足98% 以上用戶的需求 Lucene的創(chuàng)新之處: 大部分的搜索(數(shù)據(jù)庫(kù))引擎都是用B樹結(jié)構(gòu)來(lái)維護(hù)索引,索引的更新會(huì) 導(dǎo)致大量的IO操作,Lucene在實(shí)現(xiàn)中,對(duì)此稍微有所改進(jìn):不是維護(hù)一個(gè)索 引文件,而是在擴(kuò)展索引的時(shí)候不斷創(chuàng)建新的索引文件,然后定期的把這些 新的小索引文件合并到原先的大索引中,這樣在不影響檢索的效率的前提下, 提高了索引的效率12]。
表3—7
Table3-7

Lucene和其他全文檢索系統(tǒng)創(chuàng)新對(duì)比:
Contrast
between Iucene and other search
system

Lucene

I其他開源全文檢索系統(tǒng)

量索引和批量阿以進(jìn)行增量的索引(Append),可以對(duì)于大量數(shù)據(jù)I很多系統(tǒng)只支持批量索
索引

隧行批量索引,并且接口設(shè)計(jì)用于優(yōu)化批量索引和f引,數(shù)據(jù)源增加需要重

成都理一r大學(xué)碩十學(xué)位論文 小批量的增量索引。 建索引。

Lucene沒(méi)有定義具體的數(shù)據(jù)源,而是一個(gè)文檔的結(jié) 很多系統(tǒng)只針對(duì)網(wǎng)頁(yè), 數(shù)據(jù)源 構(gòu),因此可以非常靈活的適應(yīng)各種應(yīng)用(只要前端 缺乏其他格式文檔的靈 有合適的轉(zhuǎn)換器把數(shù)據(jù)源轉(zhuǎn)換成相應(yīng)結(jié)構(gòu)) Lueene的文檔是由多個(gè)字段組成的,甚至可以控制 那些字段需要進(jìn)行索引,那些字段不需要索引,索 活性。

索引內(nèi)容抓取 引的字段也分為需要分詞和不需要分詞的類型:
需要進(jìn)行分詞的索引,比如:標(biāo)題,文章內(nèi)容 不需要進(jìn)行分詞的索引,比如:作者/日期

缺乏通用性,往往將文 檔整個(gè)索引了

通過(guò)語(yǔ)言分析器的不同擴(kuò)展實(shí)現(xiàn):可以過(guò)濾掉不需
要的詞:an 語(yǔ)言分析
the

of等

西文語(yǔ)法分析:將jumps juraped jumper都?xì)w結(jié)成 jump進(jìn)行索71/檢索 非英文支持:對(duì)亞洲語(yǔ)言,阿拉伯語(yǔ)言的索引支持

缺乏通用接口實(shí)現(xiàn)

查詢分析

通過(guò)查詢分析接口實(shí)現(xiàn),可以定制查詢語(yǔ)法規(guī)則:

Lucene的另外一個(gè)特點(diǎn)是在收集結(jié)果的過(guò)程中將匹配度低的結(jié)果自動(dòng)過(guò)濾 掉了。這也是和數(shù)據(jù)庫(kù)應(yīng)用需要將搜索的結(jié)果全部返回不同之處。

3.3增強(qiáng)用戶體驗(yàn)的Ajax技術(shù)
Ajax是Asynchronous
JavaScript and

XML的簡(jiǎn)寫。Ajax并不是一門新的語(yǔ)

言或技術(shù),它實(shí)際上是幾項(xiàng)技術(shù)按一定的方式組合在一起,并在共同的協(xié)作中發(fā) 揮各自的作用,它包括: 使用XHTML和CSS標(biāo)準(zhǔn)化呈現(xiàn): 使用DOM實(shí)現(xiàn)動(dòng)態(tài)顯示和交互: 使用)【1ⅥL和xSLT進(jìn)行數(shù)據(jù)交換與處理; 使用XMLHttpRequest進(jìn)行異步數(shù)據(jù)讀取; 最后用JavaScript綁定和處理所有數(shù)據(jù); Ajax是基于服務(wù)器技術(shù)的不確定性,獨(dú)立于服務(wù)器語(yǔ)言的一門技術(shù)。所有
的開發(fā)人員都能使用并且一起討論相同的表現(xiàn)層。

Ajax的核心在于對(duì)Intemet默認(rèn)的請(qǐng)求/響應(yīng)模式進(jìn)行了修改,修改后框架基 本的流程是:對(duì)象初始化專發(fā)送請(qǐng)求專服務(wù)器接收÷服務(wù)器返回專客戶端 接收專修改客戶端頁(yè)面內(nèi)容。只不過(guò)這個(gè)過(guò)程是異步的,中間加入了一個(gè)Ajax 中『自J層。Web應(yīng)用開發(fā)人員現(xiàn)在可以自由的與服務(wù)器異步交互,這使得許多以 前原本只能在胖客戶端上完成的任務(wù)很完美的表現(xiàn)在客戶端了。比如在客戶端能 夠快速的驗(yàn)證表單輸入的正確性。正是Ajax的提出消除了胖客戶(或桌面)應(yīng)
用與瘦客戶(或Web)應(yīng)用之間的界限。

第3章Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)

由于AjaX的使用使得系統(tǒng)響應(yīng)和頁(yè)面加載更加流暢,使得web的工作性能 接近桌面客戶端軟件。Ajax使、№b中的界面與應(yīng)用分離(也可以說(shuō)是數(shù)據(jù)與呈 現(xiàn)分離),有利于分工合作、減少非技術(shù)人員對(duì)頁(yè)面的修改造成的Web應(yīng)用程 序錯(cuò)誤、提高效率、也更加適用于現(xiàn)在的發(fā)布系統(tǒng)。也可以把以前的一些服務(wù)器 負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端,充分利用客戶端閑置的處理能力來(lái)處理。 Ajax數(shù)據(jù)跨過(guò)線路而不是整個(gè)頁(yè)面?zhèn)鬏敗_@種數(shù)據(jù)交換是經(jīng)由特定的瀏覽 器對(duì)象XMLHttpRcquest(XHR)實(shí)現(xiàn)的;再由適當(dāng)?shù)倪壿媮?lái)處理每個(gè)數(shù)據(jù)請(qǐng)求的結(jié) 果,頁(yè)面的某個(gè)特定區(qū)域而不是完整的頁(yè)面被更新。從而達(dá)到更快的速度,更少 的擁擠和更好的信息傳送控制。 使用XHR對(duì)象與服務(wù)器進(jìn)行異步通信,這樣就能創(chuàng)建更加動(dòng)態(tài)的Web應(yīng)用。 例如,假設(shè)有一個(gè)下拉列表,這個(gè)列表是根據(jù)另外一個(gè)域或下拉列表的輸入來(lái)填 寫的。正常情況下,必須在加載第一個(gè)頁(yè)面時(shí)把所有數(shù)據(jù)都發(fā)送給客戶,然后使 用JavaScript根據(jù)輸入來(lái)填寫下拉列表。這么做會(huì)讓頁(yè)面變得很臃腫,使下拉列 表不再“動(dòng)態(tài)”,頁(yè)面很可能膨脹得過(guò)大,達(dá)不到預(yù)期的效果。利用Ajax的話, 當(dāng)作為觸發(fā)源的域有變化,或者失去了輸入焦點(diǎn),就可以向服務(wù)器做一個(gè)簡(jiǎn)單的 請(qǐng)求,只要求得到更新下拉列表所需的部分信息。 在web應(yīng)用中我們的最終目的是接收服務(wù)器的返回信息,修改當(dāng)前文檔的 內(nèi)容。在客戶端采用Aj8.X技術(shù)來(lái)更新文檔,以及處理服務(wù)器返回的XML文檔。 能夠更加快捷方便的完成我們的文檔更新。 文檔對(duì)象模型(DOM)是表示文檔(比如HTML和Ⅺv兒)和訪問(wèn)、操作 構(gòu)成文檔的各種元素的應(yīng)用程序接121(API)。一般的,支持Javaseript的所有 瀏覽器都支持DOM。它是W3C定義的標(biāo)準(zhǔn)的文檔對(duì)象模型,以樹形結(jié)構(gòu)表示 HTML和XML文檔,定義了遍歷這個(gè)樹和檢查、修改樹的節(jié)點(diǎn)的方法和屬性。 Web站點(diǎn)正在證明Aja)【的有效性、穩(wěn)定性,并且使Web看起來(lái)更像是一個(gè) 桌面應(yīng)用程序:即真正意義的web開發(fā)。Ajax特殊之處在于它可以使用驗(yàn)證過(guò) 的現(xiàn)有技術(shù)完成這~切。換句話說(shuō)就是,任何標(biāo)準(zhǔn)瀏覽器r可以處理JavaScfipt 和DOM的瀏覽器)都可以正常工作。您不需要單獨(dú)安裝其他插件。 Ajax能夠贏得廣泛認(rèn)可的原因是基于它要縮短Web應(yīng)用程序和桌面應(yīng)用程 序之間的差距。相對(duì)于微軟整體推出胖客戶的理念把很多網(wǎng)絡(luò)上的應(yīng)用搬到本地 運(yùn)行時(shí),基于本地化的用戶體驗(yàn)成為了一個(gè)很重要的方向,我們的目標(biāo)就是要讓 用戶更好的使用我們的產(chǎn)品。用戶的支持就是我們的技術(shù)更新的動(dòng)力。因此用戶 體驗(yàn)是一個(gè)很重要的課題。沒(méi)有用戶就沒(méi)有我們產(chǎn)品的推廣,就不可能使我們計(jì) 算機(jī)廣泛的推廣應(yīng)用。

成都理丁=大學(xué)碩士學(xué)位論文

3.4中文分詞技術(shù)
英文是以詞為單位,詞和詞之間是靠空格隔開,而中文是以字為單位,句子 中所有的字連起來(lái)才能描述一個(gè)意思。例如,英文句子I
am


student,用中文則

為:“我是一個(gè)學(xué)生”。計(jì)算機(jī)可以很簡(jiǎn)單通過(guò)空格知道student是一個(gè)單詞,但 是不能很容易明白“學(xué)”、“生”兩個(gè)字合起來(lái)才表示一個(gè)詞。把中文的漢字序列切 分成有意義的詞,就是中文分詞,有些人也稱為切詞。我是一個(gè)學(xué)生,分詞的結(jié) 果是:我是一個(gè)學(xué)生。 對(duì)于搜索引擎來(lái)說(shuō),最重要的并不是找到所有結(jié)果,因?yàn)樵谏习賰|的網(wǎng)頁(yè)中 找到所有結(jié)果沒(méi)有太多的意義,沒(méi)有人能看得完,最重要的是把最相關(guān)的結(jié)果排 在最前面,這也稱為相關(guān)度排序。中文分詞的準(zhǔn)確度常常直接影響到對(duì)搜索結(jié)果 的相關(guān)度排序。中文分詞技術(shù)屬于自然語(yǔ)言處理技術(shù)范疇,對(duì)于一句話,人可以 通過(guò)自己的知識(shí)來(lái)明白哪些是詞,哪些不是詞,但如何讓計(jì)算機(jī)也能理解,其處
理過(guò)程就是分詞算法。

現(xiàn)有的分詞算法可分為三大類:基于字符串匹配的分詞方法、基于理解的分
詞方法和基于統(tǒng)計(jì)的分詞方法。

1、基于字符串匹配的分詞方法 這種方法又叫做機(jī)械分詞方法,它是按照一定的策略將待分析的漢字串與一 個(gè)“充分大的”機(jī)器詞典中的詞條進(jìn)行匹配,若在詞典中找到某個(gè)字符串,則匹配 成功(識(shí)別出一個(gè)詞)。按照掃描方向的不同,串匹配分詞方法可以分為正向匹 配和逆向匹配;按照不同長(zhǎng)度優(yōu)先匹配的情況,可以分為最大(最長(zhǎng))匹配和最 。ㄗ疃蹋┢ヅ洌话凑帐欠衽c詞性標(biāo)注過(guò)程相結(jié)合,又可以分為單純分詞方法和 分詞與標(biāo)注相結(jié)合的一體化方法。常用的幾種機(jī)械分詞方法如下: 1)正向最大匹配法(由左到右的方向); 2)逆向最大匹配法(由右到左的方向); 3)最少切分(使每一句中切出的詞數(shù)最。 還可以將上述各種方法相互組合,例如,可以將正向最大匹配方法和逆 向最大匹配方法結(jié)合起來(lái)構(gòu)成雙向匹配法。由于漢語(yǔ)單字成詞的特點(diǎn),正向最小 匹配和逆向最小匹配一般很少使用。一般說(shuō)來(lái),逆向匹配的切分精度略高于正向 匹配,遇到的歧義現(xiàn)象也較少。統(tǒng)計(jì)結(jié)果表明,單純使用正向最大匹配的錯(cuò)誤率 為1/169,單純使用逆向最大匹配的錯(cuò)誤率為l/245。但這種精度還遠(yuǎn)遠(yuǎn)不能滿足 實(shí)際的需要。實(shí)際使用的分詞系統(tǒng),都是把機(jī)械分詞作為一種初分手段,還需通 過(guò)利用各種其它的語(yǔ)言信息來(lái)進(jìn)一步提高切分的準(zhǔn)確率。

第3章Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)

一種方法是改進(jìn)掃描方式,稱為特征掃描或標(biāo)志切分,優(yōu)先在待分析字符 串中識(shí)別和切分出一些帶有明顯特征的詞,以這些詞作為斷點(diǎn),可將原字符串分 為較小的串再來(lái)進(jìn)行機(jī)械分詞,從而減少匹配的錯(cuò)誤率。另一種方法是將分詞和 詞類標(biāo)注結(jié)合起來(lái),利用豐富的詞類信息對(duì)分詞決策提供幫助,并且在標(biāo)注過(guò)程 中又反過(guò)來(lái)對(duì)分詞結(jié)果進(jìn)行檢驗(yàn)、調(diào)整,從而極大地提高切分的準(zhǔn)確率。 對(duì)于機(jī)械分詞方法,可以建立一個(gè)一般的模型,在這方面有專業(yè)的學(xué)術(shù)論 文,這里不做詳細(xì)論述。 2、基于理解的分詞方法 這種分詞方法是通過(guò)讓計(jì)算機(jī)模擬人對(duì)句子的理解,達(dá)到識(shí)別詞的效果。 其基本思想就是在分詞的同時(shí)進(jìn)行句法、語(yǔ)義分析,利用句法信息和語(yǔ)義信息來(lái) 處理歧義現(xiàn)象。它通常包括三個(gè)部分:分詞子系統(tǒng)、句法語(yǔ)義子系統(tǒng)、總控部分。 在總控部分的協(xié)調(diào)下,分詞子系統(tǒng)可以獲得有關(guān)詞、句子等的句法和語(yǔ)義信息來(lái) 對(duì)分詞歧義進(jìn)行判斷,即它模擬了人對(duì)句子的理解過(guò)程。這種分詞方法需要使用 大量的語(yǔ)言知識(shí)和信息。由于漢語(yǔ)語(yǔ)言知識(shí)的籠統(tǒng)、復(fù)雜性,難以將各種語(yǔ)言信 息組織成機(jī)器可直接讀取的形式,因此目前基于理解的分詞系統(tǒng)還處在試驗(yàn)階
段。 3、基于統(tǒng)計(jì)的分詞方法

從形式上看,詞是穩(wěn)定的字的組合,因此在上下文中,相鄰的字同時(shí)出現(xiàn)的 次數(shù)越多,就越有可能構(gòu)成一個(gè)詞。因此字與字相鄰共現(xiàn)的頻率或概率能夠較好 的反映成詞的可信度?梢詫(duì)語(yǔ)料中相鄰共現(xiàn)的各個(gè)字的組合的頻度進(jìn)行統(tǒng)計(jì), 計(jì)算它們的互現(xiàn)信息。定義兩個(gè)字的互現(xiàn)信息,計(jì)算兩個(gè)漢字x、Y的相鄰共現(xiàn) 概率;ガF(xiàn)信息體現(xiàn)了漢字之間結(jié)合關(guān)系的緊密程度。當(dāng)緊密程度高于某一個(gè)閾 值時(shí),便可認(rèn)為此字組可能構(gòu)成了一個(gè)詞。這種方法只需對(duì)語(yǔ)料中的字組頻度進(jìn) 行統(tǒng)計(jì),不需要切分詞典,因而又叫做無(wú)詞典分詞法或統(tǒng)計(jì)取詞方法。但這種方 法也有一定的局限性,會(huì)經(jīng)常抽出一些共現(xiàn)頻度高、但并不是詞的常用字組,例 如“這一”、“之一”、“有的”、“我的”、“許多的”等,并且對(duì)常用詞的識(shí)別精度差, 時(shí)空開銷大。實(shí)際應(yīng)用的統(tǒng)計(jì)分詞系統(tǒng)都要使用一部基本的分詞詞典(常用詞詞 典)進(jìn)行串匹配分詞,同時(shí)使用統(tǒng)計(jì)方法識(shí)別一些新的詞,即將串頻統(tǒng)計(jì)和串匹 配結(jié)合起來(lái),既發(fā)揮匹配分詞切分速度快、效率高的特點(diǎn),又利用了無(wú)詞典分詞 結(jié)合上下文識(shí)別生詞、自動(dòng)消除歧義的優(yōu)點(diǎn)。 到底哪種分詞算法的準(zhǔn)確度更高,目前并無(wú)定論。對(duì)于任何一個(gè)成熟的分 詞系統(tǒng)來(lái)說(shuō),不可能單獨(dú)依靠某~種算法來(lái)實(shí)現(xiàn),都需要綜合不同的算法。 中文是一種十分復(fù)雜的語(yǔ)言,讓計(jì)算機(jī)理解中文語(yǔ)言更是困難。在中文分 詞過(guò)程中,有兩大難題一直沒(méi)有完全突破。

成都理工大學(xué)碩十學(xué)位論文

1、歧義識(shí)別

歧義是指同樣的一句話,可能有兩種或者更多的切分方法。例如:表面的,因?yàn)?“表面”和“面的”都是詞,那么這個(gè)短語(yǔ)就可以分成“表面的”和“表面的”。這種 稱為交叉歧義。由于沒(méi)有人的知識(shí)去理解,計(jì)算機(jī)很難知道到底哪個(gè)方案正確。 交叉歧義相對(duì)組合歧義來(lái)說(shuō)是還算比較容易處理,組合歧義就必需根據(jù)整 個(gè)句子來(lái)判斷了。例如,在句子“這個(gè)門把手壞了”中,“把手”是個(gè)詞,但在句子 “請(qǐng)把手拿開”中,“把手”就不是一個(gè)詞;在句子“將軍任命了一名中將”中,“中將” 是個(gè)詞,但在句子“產(chǎn)量三年中將增長(zhǎng)兩倍”中,“中將”就不再是詞。 如果交叉歧義和組合歧義計(jì)算機(jī)都能解決的話,在歧義中還有一個(gè)難題, 是真歧義。真歧義意思是給出一句話,由人去判斷也不知道哪個(gè)應(yīng)該是詞,哪個(gè) 應(yīng)該不是詞。例如:“乒乓球拍賣完了”,可以切分成“乒乓球拍賣完了”、也 可切分成“乒乓球拍賣完了”,如果沒(méi)有上下文其他的句子,恐怕誰(shuí)也不知道 “拍賣”在這里算不算一個(gè)詞。
2、新詞識(shí)別

新詞,專業(yè)術(shù)語(yǔ)稱為未登錄詞。也就是那些在字典中都沒(méi)有收錄過(guò),但又 確實(shí)能稱為詞的那些詞。最典型的是人名,人可以很容易理解句子“王軍虎去廣 州了”中,“王軍虎”是個(gè)詞,因?yàn)槭且粋(gè)人的名字,但要是讓計(jì)算機(jī)去識(shí)別就困 難了。如果把“王軍虎”做為一個(gè)詞收錄到字典中去,全世界有那么多名字,而且 每時(shí)每刻都有新增的人名,收錄這些人名本身就是一項(xiàng)巨大的工程。即使這項(xiàng)工 作可以完成,還是會(huì)存在問(wèn)題, 新詞中除了人名以外,還有機(jī)構(gòu)名、地名、產(chǎn)品名、商標(biāo)名、簡(jiǎn)稱、省略 語(yǔ)等都是很難處理的問(wèn)題,而且這些又正好是人們經(jīng)常使用的詞,因此對(duì)于搜索 引擎來(lái)說(shuō),分詞系統(tǒng)中的新詞識(shí)別十分重要。目前新詞識(shí)別準(zhǔn)確率已經(jīng)成為評(píng)價(jià) 一個(gè)分詞系統(tǒng)好壞的重要標(biāo)志之一。
中文分詞的應(yīng)用

目前在自然語(yǔ)言處理技術(shù)中,中文處理技術(shù)比西文處理技術(shù)要落后很大一 段距離,許多西文的處理方法中文不能直接采用,就是因?yàn)橹形谋匦栌蟹衷~這道 工序。中文分詞是其他中文信息處理的基礎(chǔ),搜索引擎只是中文分詞的一個(gè)應(yīng)用。 其他的比如機(jī)器翻譯(MT)、語(yǔ)音合成、自動(dòng)分類、自動(dòng)摘要、自動(dòng)校對(duì)等等, 都需要用到分詞。因?yàn)橹形男枰衷~,可能會(huì)影響一些研究,但同時(shí)也為一些企 業(yè)帶來(lái)機(jī)會(huì),因?yàn)閲?guó)外的計(jì)算機(jī)處理技術(shù)要想進(jìn)入中國(guó)市場(chǎng),首先也是要解決中 文分詞問(wèn)題。在中文研究方面,相比外國(guó)人來(lái)說(shuō),中國(guó)人有十分明顯的優(yōu)勢(shì)。 分詞準(zhǔn)確性對(duì)搜索引擎來(lái)說(shuō)十分重要,但如果分詞速度太慢,即使準(zhǔn)確性 再高,對(duì)于搜索引擎來(lái)說(shuō)也是不可用的,因?yàn)樗阉饕嫘枰幚頂?shù)以億計(jì)的網(wǎng)頁(yè),

第3章Lucene的實(shí)現(xiàn)原理及相關(guān)技術(shù)

如果分詞耗用的時(shí)間過(guò)長(zhǎng),會(huì)嚴(yán)重影響搜索引擎內(nèi)容更新的速度。因此對(duì)于搜索 引擎來(lái)說(shuō),分詞的準(zhǔn)確性和速度,二者都需要達(dá)到很高的要求。 中文分詞幾種常用的方式:
A.單字分詞

單字分詞,顧名思義,就是按照中文一個(gè)字一個(gè)字地進(jìn)行分詞。以這樣方式 切分出來(lái)的詞再進(jìn)入索引,稱為字索引,但是這種方式隨著索引的增大,相應(yīng)索 引條目的內(nèi)容會(huì)不斷增大,嚴(yán)重影響效率。如:我們是中國(guó)人,效果:我\們\是\
中\國(guó)\人。 B.二分法

二分法,就是無(wú)論什么詞都按兩個(gè)字進(jìn)行切分,不考慮詞義。如:我們是中 國(guó)人,效果:我們\{『]是\是中\中國(guó)\國(guó)人。 C.詞庫(kù)分詞 詞庫(kù)分詞是用一個(gè)已經(jīng)建立好的詞的集合(按照某種算法)去匹配目標(biāo),當(dāng) 遇上集合中已經(jīng)存在的詞時(shí),就將它切分出來(lái)。通常詞庫(kù)分詞被認(rèn)為是最理想的 中文分詞算法。如:我們是中國(guó)人,通成效果為:我們\是\中國(guó)、中國(guó)人。 對(duì)于詞庫(kù)分詞方式,詞庫(kù)的建立是關(guān)鍵,它需要統(tǒng)計(jì)大量的內(nèi)容,然后根據(jù) 各種詞出現(xiàn)的頻率、概率再來(lái)進(jìn)行篩選,最終決定什么詞應(yīng)當(dāng)放進(jìn)詞庫(kù)。還有一 些高級(jí)的詞庫(kù)加入了語(yǔ)義和詞性的標(biāo)注,甚至還有不同詞的權(quán)重,使用這樣的詞 庫(kù)進(jìn)行分詞的效果應(yīng)該很是理想的。 基于自動(dòng)切分的最大優(yōu)點(diǎn)是沒(méi)有詞表維護(hù)成本,實(shí)現(xiàn)簡(jiǎn)單,缺點(diǎn)是索引 效率低,但對(duì)于中小型應(yīng)用來(lái)說(shuō),基于二元語(yǔ)法的切分還是夠用的;诙 元切分后的索引一般大小和源文件差不多,而對(duì)于英文,索引文件一般只有 原文件的30%40%不同。
表3-8自動(dòng)切分和詞表切分比較
Table3-8 Contrast between auto partiCiDIe and l ist partjCjP Je

自動(dòng)切分 實(shí)現(xiàn) 查詢 存儲(chǔ)效率 維護(hù)成本

詞表切分 實(shí)現(xiàn)復(fù)雜 適于實(shí)現(xiàn)比較復(fù)雜的查詢語(yǔ)法規(guī)則

實(shí)現(xiàn)非常簡(jiǎn)單
增加了查詢分析的復(fù)雜度

索引冗余大,幾乎和原文一樣大 索引效率高,為原文大小的30%左右 無(wú)詞表維護(hù)成本 嵌入式系統(tǒng):運(yùn)行環(huán)境資源有限 詞表維護(hù)成本非常高:中日韓等語(yǔ)言需要 分別維護(hù)。還需要包括詞頻統(tǒng)計(jì)等內(nèi)容

適用領(lǐng)域

分布式系統(tǒng):無(wú)詞表同步問(wèn)題 多語(yǔ)言環(huán)境:無(wú)詞表維護(hù)成本

對(duì)查詢和存儲(chǔ)效率要求高的專業(yè)搜索引擎

目前比較大的搜索引擎的語(yǔ)言分析算法一般是以上兩種方法的結(jié)合。

成都理I:大學(xué)碩士學(xué)位論文

第4章主題搜索引擎的實(shí)現(xiàn)
4.1

Nutch的結(jié)構(gòu)設(shè)計(jì)和特點(diǎn)
Lucene是一個(gè)提供全文文本搜索的函數(shù)庫(kù),它不是一個(gè)應(yīng)用軟件。它提供

的很多API函數(shù)可以運(yùn)用到各種實(shí)際應(yīng)用程序中。 Nutch是一個(gè)建立在Lucene核心之上的Web搜索的實(shí)現(xiàn),它在Lueene的基 礎(chǔ)上添加了網(wǎng)絡(luò)爬蟲和一些和web相關(guān)的應(yīng)用包。其目的就是想從一個(gè)簡(jiǎn)單的 站內(nèi)索引和搜索推廣到全球網(wǎng)絡(luò)的搜索上,就像Google和Yahoo一樣。具有很 好的擴(kuò)展功能,為用戶進(jìn)行二次開發(fā)提供了良好的框架。 Nutch是基于Lueene的。Lueene為Nuteh提供了文本索引和搜索的API。 總體上Nutch可以分為2個(gè)部分:抓取部分和搜索部分。抓取程序抓取頁(yè)面并把 抓取回來(lái)的數(shù)據(jù)做成反向索引,搜索程序則對(duì)反向索引搜索回答用戶的請(qǐng)求。抓 取程序和搜索程序的接口是索引。兩者都使用索引中的字段。 實(shí)際上搜索程序和抓取程序可以分別位于不同的機(jī)器上。 抓取程序是被Nuteh的抓取工具驅(qū)動(dòng)的。這是一組工具,用來(lái)建立和維護(hù)幾
個(gè)不同的數(shù)據(jù)結(jié)構(gòu):web database,a 到的3個(gè)不同的數(shù)據(jù)結(jié)構(gòu)。
The web
set

ofsegments,index。下面逐個(gè)解釋上面提

database(WebDB)。是一個(gè)特殊存儲(chǔ)數(shù)據(jù)結(jié)構(gòu),用來(lái)映像被抓取

網(wǎng)站數(shù)據(jù)的結(jié)構(gòu)和屬性的集合。WebDB用來(lái)存儲(chǔ)從抓取開始(包括重新抓。 的所有網(wǎng)站結(jié)構(gòu)數(shù)據(jù)和屬性。WebDB只是被抓取程序使用,搜索程序并不使用 它。WebDB存儲(chǔ)2種實(shí)體:頁(yè)面和鏈接。頁(yè)面表示網(wǎng)絡(luò)上的一個(gè)網(wǎng)頁(yè),這個(gè) 網(wǎng)頁(yè)的Ud作為標(biāo)示被索引,同時(shí)建立一個(gè)對(duì)網(wǎng)頁(yè)內(nèi)容的MD5哈希簽名。跟網(wǎng) 頁(yè)相關(guān)的其它內(nèi)容也被存儲(chǔ),包括:頁(yè)面中的鏈接數(shù)量(外鏈接),頁(yè)面抓取信 息(在頁(yè)面被重復(fù)抓取的情況下),還有表示頁(yè)面級(jí)別的分?jǐn)?shù)score。鏈接表示 從一個(gè)網(wǎng)頁(yè)的鏈接到其它網(wǎng)頁(yè)的鏈接。因此WebDB可以說(shuō)是一個(gè)網(wǎng)絡(luò)圖,節(jié)點(diǎn) 是頁(yè)面,鏈接是邊。 Segment是網(wǎng)頁(yè)的集合,并且它被索引。Segment的Fetchlist是抓取程序 使用的url列表,它是從WebDB中生成的。Fetcher的輸出數(shù)據(jù)是從fetchlist中 抓取的網(wǎng)頁(yè)。Feteher的輸出數(shù)據(jù)先被反向索引,然后索引后的結(jié)果被存儲(chǔ)在
segment中。Segment的生命周期是有限制的,當(dāng)下一輪抓取開始后它就沒(méi)有用

了。默認(rèn)的重新抓取間隔是30天。因此刪除超過(guò)這個(gè)時(shí)間期限的segment是可 以的。而且也可以節(jié)省不少磁盤空間。Segment的命名是日期加時(shí)間,因此很直
32

第4章主題搜索引擎的實(shí)現(xiàn)

觀的可以看出他們的存活周期。 索引庫(kù)是反向索引所有系統(tǒng)中被抓取的頁(yè)面,他并不直接從頁(yè)面反向索引產(chǎn) 生,它是合并很多小的segment的索引中產(chǎn)生的。Nutch使用Lucene來(lái)建立索 引,因此所有Lucene相關(guān)的工具API都用來(lái)建立索引庫(kù)。需要說(shuō)明的是Lucene

的segment的概念和Nutch的segment概念是完全不同的,不要混淆哦。簡(jiǎn)單來(lái) 說(shuō)Lucene的segment是Lucene索引庫(kù)的一部分,而Nutch的Segment是
WebDB中被抓取和索引的一部分。 Nutch是一個(gè)可以構(gòu)造大型分布式的搜索引擎。Nutch的核心部分目前已經(jīng) 被重新用分布式的處理模型Map Reduce實(shí)現(xiàn)了。并且Nutch也吸引了很多研究 者,他們非常樂(lè)于嘗試新的搜索算法,因?yàn)閷?duì)Nutch來(lái)說(shuō),這是非常容易實(shí)現(xiàn) 擴(kuò)展的。Nutch是非常靈活的,擴(kuò)展性好,它可以很好的被客戶訂制并集成到應(yīng) 用程序中,使用Nutch的插件機(jī)制,Nutch可以作為一個(gè)搜索不同信息載體的 搜索平臺(tái)。當(dāng)然,最簡(jiǎn)單的就是集成Nutch到自己的站點(diǎn),為用戶提供搜索服務(wù)。 Nutch提供了一個(gè)高效、開源、易操作的搜索引擎,內(nèi)部有許多細(xì)微之處都是值 得借鑒的,例如采用了hadoop的分布式文件系統(tǒng),類似eclipse的插件技術(shù)。當(dāng) 然,為了讓搜索引擎能夠處理數(shù)以億計(jì)的網(wǎng)頁(yè),以上的模塊都應(yīng)該是分布式的。 也就是說(shuō),可以在多臺(tái)機(jī)器上并行運(yùn)行。Nutch的結(jié)構(gòu)圖設(shè)計(jì)(如圖4.1)

回國(guó)叵三習(xí) 因固叵司
團(tuán)園回固
Hadoop 圖4—1
F i g.4-1

Nutch結(jié)構(gòu)圖
Nutch

Structure of

Nutch是一個(gè)開源Java實(shí)現(xiàn)的搜索引擎。它提供了我們運(yùn)行自己的搜索弓

成都理_下大學(xué)碩+學(xué)位論文

擎所需的全部工具。Nutch是開放源代碼的,因此任何人都可以查看他的排序算 法是如何工作的。商業(yè)的搜索引擎排序算法都是保密的,我們無(wú)法知道搜索出來(lái) 的排序結(jié)果是如何算出來(lái)的。更進(jìn)一步,一些搜索引擎允許競(jìng)價(jià)排名,比如百度, 這樣的索引結(jié)果并不是和站點(diǎn)內(nèi)容相關(guān)的。因此Nutch對(duì)學(xué)術(shù)搜索和政府類站 點(diǎn)的搜索來(lái)說(shuō),是個(gè)好選擇。因?yàn)橐粋(gè)公平的排序結(jié)果是非常重要的。

4.2主題搜索引擎的主題詞庫(kù)
Nutch有出色的架構(gòu)實(shí)現(xiàn),對(duì)于開發(fā)插件非常容易。主題搜索爬行的對(duì)象不 一樣,它只針對(duì)某些固定的網(wǎng)站,在評(píng)分過(guò)程中,針對(duì)該主題建立一個(gè)詞庫(kù),把 與詞庫(kù)中相關(guān)性大的查詢?cè)~句加大權(quán)因子。在主題搜索中我們依舊要求更好的用 戶體驗(yàn),Ajax技術(shù)幫助我們實(shí)現(xiàn)這個(gè)目標(biāo).提供更好的搜索界面。 4.2.1構(gòu)造主題詞庫(kù) 主題詞是表達(dá)和描述文件、資料等主題內(nèi)容并用于標(biāo)引和檢索的規(guī)范化語(yǔ) 詞。它和自然語(yǔ)言中的詞是有區(qū)別的,是專門為文件、資料等的標(biāo)引和檢索而設(shè) 計(jì)的一種標(biāo)準(zhǔn)化詞匯。主題詞是從自然語(yǔ)言的主要詞匯中選出的標(biāo)準(zhǔn)化詞匯,并 且能反映文本的主題內(nèi)容,它必定包含一定的分類意義。所以,分類詞庫(kù)中的詞也
可以從主題詞庫(kù)中產(chǎn)生。

主題詞標(biāo)引是指抽取信息中能夠表達(dá)其核心內(nèi)容的詞或詞組.并將這些詞或 詞組轉(zhuǎn)化為受控詞的過(guò)程。這里所指的主題詞是某一特定專業(yè)檢索和標(biāo)引用的規(guī) 范詞。具體思路是利用漢語(yǔ)自動(dòng)分詞的研究成果,采用詞典分詞法將文獻(xiàn)進(jìn)行切 分,通過(guò)詞加權(quán)或詞頻統(tǒng)計(jì)法對(duì)切分后的詞進(jìn)行排序確定關(guān)鍵詞,利用主題詞表將 關(guān)鍵詞轉(zhuǎn)化、合并、去重、重新排序后確定系統(tǒng)正式使用的主題詞.并追加文獻(xiàn) 代號(hào)送入系統(tǒng)主題詞字段中。在實(shí)現(xiàn)過(guò)程中,為了繼續(xù)發(fā)揚(yáng)關(guān)鍵詞標(biāo)引過(guò)程中能 夠及時(shí)反映新出現(xiàn)的專業(yè)術(shù)語(yǔ),及時(shí)更新詞表,把原文獻(xiàn)給出的關(guān)鍵詞一并加入 到切分后的詞匯集中,進(jìn)行合并、去重、加權(quán)、排序后確定為關(guān)鍵詞。 主題詞標(biāo)引的目的是提高查全率和查準(zhǔn)率,減輕用戶構(gòu)造索引的負(fù)擔(dān),縮短 檢索時(shí)間,便于擴(kuò)檢和縮檢。 普通敘詞表屬于先控詞表,而把若干詞或詞的片斷構(gòu)造成一個(gè)檢索策略,則 屬于一種后控過(guò)程?山栌煤罂刂圃~表來(lái)改善關(guān)鍵詞檢索性能。 具體地,后控制技術(shù)是指檢索系統(tǒng)在標(biāo)引階段使用自然語(yǔ)言,不對(duì)標(biāo)引進(jìn)行 嚴(yán)格控制,而在檢索階段才對(duì)檢索詞進(jìn)行控制的一種自然語(yǔ)言檢索優(yōu)化技術(shù)。

第4章主題搜索引擎的實(shí)現(xiàn)

后控制詞表的性質(zhì)類似于入口詞表,它是~種轉(zhuǎn)換工具,~種擴(kuò)檢工具,一 種羅列自然語(yǔ)言檢索標(biāo)識(shí)供選擇的工具。后控制詞表是利用先控語(yǔ)言的原理和方 法編制的自然語(yǔ)言檢索用詞表,它主要是對(duì)自然語(yǔ)言中大量存在的等同關(guān)系、等 級(jí)關(guān)系和一部分相關(guān)關(guān)系進(jìn)行控制和提示,具有自學(xué)習(xí)功能,可根據(jù)檢索的需要 將新概念和新術(shù)語(yǔ)及時(shí)地加入詞表中,是一個(gè)動(dòng)態(tài)詞表。用戶通過(guò)瀏覽詞表選用 檢索詞,或者系統(tǒng)自動(dòng)執(zhí)行查詢調(diào)整(主要是擴(kuò)檢)既減輕了用戶負(fù)擔(dān),又提高了 系統(tǒng)的易用性和檢索效率。后控制詞表是“自然語(yǔ)言檢索和人工受控語(yǔ)言結(jié)合的 最佳范例”。 后控制詞表系統(tǒng)是信息檢索的核心,也是提高檢索效率的關(guān)鍵。 國(guó)外有關(guān) 詞表編制及詞表在網(wǎng)絡(luò)化應(yīng)用方面的研究與實(shí)踐已經(jīng)取得了長(zhǎng)足的發(fā)展。一方 面,已經(jīng)開發(fā)出了多種詞表編制與維護(hù)軟件。在此基礎(chǔ)上,充分結(jié)合網(wǎng)絡(luò)技術(shù), 使詞表向著網(wǎng)絡(luò)化和提供網(wǎng)絡(luò)檢索應(yīng)用接口的方向發(fā)展。另~方面,把機(jī)讀或 網(wǎng)絡(luò)化詞表嵌入網(wǎng)絡(luò)檢索工具中或者作為檢索系統(tǒng)的一個(gè)可調(diào)用接口,為用戶檢 索策略的構(gòu)造提供提示和導(dǎo)航,這樣就提高了網(wǎng)絡(luò)檢索效率,真正體現(xiàn)了詞表在 網(wǎng)絡(luò)檢索中的應(yīng)用價(jià)值。國(guó)外開發(fā)了一系列實(shí)用性的網(wǎng)絡(luò)化詞表和后控檢索支持 下的網(wǎng)絡(luò)信息檢索系統(tǒng)【引。 4.2.2結(jié)合主題詞庫(kù)改進(jìn)搜索結(jié)果 在nutch中提供了插件機(jī)制和各種可以修改的影響評(píng)分因子。通過(guò)自己建立 的主題詞表,使得相應(yīng)主題的關(guān)鍵詞能夠獲得更高的得分,返回結(jié)果更加接近用
戶的需求。

評(píng)分公式中一些因子,它們使基于同一查詢的某些文檔的評(píng)分高于其他的文 檔。如果確實(shí)想知道這些因子是如何計(jì)算出來(lái)的,Lucene提供了一個(gè)稱為 Explanation的類來(lái)滿足這個(gè)需要。IndexSearcher中有一個(gè)explain方法,調(diào)用該 方法需要提供一個(gè)Query對(duì)象和一個(gè)文檔ID作為參數(shù),且該方法會(huì)返回一個(gè) Explanation對(duì)象。Explanation對(duì)象的內(nèi)部包含了所有關(guān)于評(píng)分計(jì)算中各個(gè)因子 的細(xì)節(jié)信息。如果需要的話,雖然可以對(duì)每個(gè)因子的細(xì)節(jié)進(jìn)行訪問(wèn),但是通常全 部輸出這些解釋還是有必要的。toStringO方法可以將Explanation對(duì)象很好地以 文本格式輸出來(lái)。通過(guò)Explanation對(duì)象可以方便地看到評(píng)分計(jì)算的內(nèi)部工作原 理,但是它需要的開銷和做查詢操作是一樣的,因此,不要過(guò)多地使用Explanation
對(duì)象。

對(duì)于一般的搜索要求我們可以使用lucene默認(rèn)的評(píng)分類DefaultSimilarity, 但是在主題應(yīng)用中,需要定制相應(yīng)的Similarity來(lái)服務(wù)主題的應(yīng)用需求。修改 Similarity需要同時(shí)對(duì)索引和搜索都進(jìn)行修改,必須在搜索或者排序之間修改

成都理丁大學(xué)碩士學(xué)位論文

Similarity。

要定制特定主題的Similarity,只要在建立索引之前調(diào)用

lndexWriter.setSimilarity,或者在搜索之前調(diào)用Searcher.setSimilarity。 在Lucene中,修改評(píng)分系統(tǒng)將比修改similarity能更大程度的影響結(jié)果。 Lucene的評(píng)分系統(tǒng)是一個(gè)非常復(fù)雜的機(jī)制,主要由下面三個(gè)類來(lái)實(shí)現(xiàn):
Weight,Scorer. Query,

從某種意義上來(lái)說(shuō),Query是評(píng)分開始的地方。沒(méi)有查詢就沒(méi)有什么可以評(píng) 分的。更重要的是它是其他的評(píng)分系統(tǒng)的催化劑,由它來(lái)生成其他的評(píng)分系統(tǒng), 然后將他們整合起來(lái)。Query有一些重要的方法需要被繼承::
createWeight(Searcher searcher)每個(gè)查詢都要提供一個(gè)實(shí)現(xiàn)好的權(quán)重對(duì)象。

Weight權(quán)重接口主要用來(lái)定義Query的一個(gè)代表實(shí)現(xiàn)接口,所以可以被重 用。任何可以用來(lái)被搜索的類都應(yīng)該內(nèi)置一個(gè)Weight,而不是在Query類。這 個(gè)接口定義了6個(gè)要被執(zhí)行的方法。 Scorer是評(píng)分的抽象類,提供一些基本的計(jì)分功能供所有的評(píng)分類實(shí)現(xiàn),是 Lucene評(píng)分機(jī)制的核心類。Scorer定義了一下的方法,必須被實(shí)現(xiàn)。 Documentboost一文檔的boost,是建索引的時(shí)候設(shè)是的文檔得分對(duì)相關(guān) 主題詞的文檔給較高的分?jǐn)?shù)。 在索引過(guò)程中根據(jù)考慮所收錄的文檔重要性來(lái)預(yù)先設(shè)置一個(gè)文檔的級(jí)別 (Rank),對(duì)某個(gè)域進(jìn)行加權(quán)處理,可通過(guò)doc.setBoost(float)來(lái)設(shè)置文檔級(jí)別。 當(dāng)然相應(yīng)的如果認(rèn)為某一主題Field級(jí)別高于另外的field,那么也可以通過(guò) field.setBoost(float)來(lái)實(shí)現(xiàn)目標(biāo)。

4.3快速構(gòu)建相關(guān)主題搜索引擎
4.3.1

Nutch使用的準(zhǔn)備工作 (1)首先安裝idI【和tomcat并且配置環(huán)境變量

設(shè)置JDK的安裝路徑JAVA_HOME=D:XProgram FilesUava\jdkl.5.o_08

設(shè)置TOMCAT的安裝路徑TOMCAT HOME=D:Wrogram
Group'Tomcat 4.1
Set Set

FileskApache

path---%JAVA_HOME%\bin:%JAVA HOME%\jre\bin

classpath=%JAVA_HOME%klib;%JAVA—HOME%\tools.jar

(2)由于運(yùn)行Nuteh自帶的腳本命令需要Linux的環(huán)境,所以我們可以借 助Cygwin來(lái)模擬這種環(huán)境。需要把\eygwin\bin目錄加入path環(huán)境變量中。
在Windows系統(tǒng)的環(huán)境變量設(shè)置中,增加變量NUTCH-JAVA_HOME=%
JAVA

HOME%。安裝好eygwin后,雙擊桌面圖標(biāo)進(jìn)入類似DOS的窗口,進(jìn)入

第4章主題搜索引擎的實(shí)現(xiàn)

安裝nutch的目錄
cd/cygdrive/d/nuteh一0.8.1

執(zhí)行命令bin/nuteh
安裝成功。

(3)把下載的nutch安裝文件nuteh-O.8.1.tar.gz解壓到本地,在Nutch的 安裝目錄(DAnuteh.0.8.1)中建立一個(gè)文件夾,名稱為urls,然后在uds中建立一

個(gè)名為謝.o(t的文本文件,文件中寫入要抓取網(wǎng)站的頂級(jí)網(wǎng)址,即要抓取的起
始頁(yè)。比如在此文件中寫入如下內(nèi)容:
http://www.godeyes.cn/

(4)編輯eonffcrawl.urlfilter.txt文件,修改MY.DOMAIN.NAME部分:
捍accept hosts in MY.DOMAIN.NAME

—。htcp://www.godeyes.en/

(5)編輯eonf/nutch-default.xral文件,修改http.agent.name部分為:
<property>

<name>http.agent.name</name> <value>NutchlCT</value> <description>HTTP。User-Agent'request header.MUST NOT be empty
please set this to a single word uniquely related to your organization. NOTE:You should also check other related properties: hap.robots.agents http.agent.description http.agent.url

http.agent.email http.agent.version
and set their values appropriately. </deseription> </property>

4.3.2主題網(wǎng)站索引庫(kù)內(nèi)容的建立 Nuteh的爬蟲抓取網(wǎng)頁(yè)有兩種方式,一種方式是lnlranet Crawling,針對(duì)的是 企業(yè)內(nèi)部網(wǎng)或少量網(wǎng)站,使用的是crawl命令;另一種方式是Whole.webcrawling, 針對(duì)的是整個(gè)互聯(lián)網(wǎng),使用iIlject、generate、fetch和updatedb等更底層的命令。 啟動(dòng)cygWin\bin下的bash命令,在命令行窗I=I中輸入:
ed/cygdrive/d/nutch-0.8.1

需根據(jù)安裝路徑改變一下進(jìn)入當(dāng)前放置nutch文件的目錄下面嘲。
然后再輸入:
birdnutch crawl urls—dir crawledGis—depth 3?threads 3>&crawl.109

成都理[大學(xué)碩士學(xué)位論文

圖4-2安裝調(diào)試信息
Fig 4-2 F;x debugs nformation

等待大約2分多鐘后,程序運(yùn)行結(jié)束。會(huì)發(fā)現(xiàn)在nutch-0.8.1目錄下被創(chuàng)建了 一個(gè)名為erawledGis的文件央,同時(shí)還生成一個(gè)名為crawl.109的日志文件。利
用這一日志文件,我們可以分析可能遇到的任何錯(cuò)誤。另外,在上述命令的參數(shù)
中:

dir指定抓取內(nèi)容所存放的目錄 depth表示以要抓取悶站頂級(jí)網(wǎng)址為起點(diǎn)的爬行深度
threads指定并發(fā)的線程數(shù)

在網(wǎng)頁(yè)抓取過(guò)程中生成的文件如下圖4.3所示 曰囝#?-l?罄i戮 嗣國(guó)crawl d.b 嗣口ir,daacos 田口linkdb


o咄

Cj‘?一?nb

國(guó)盛200704290053157 lil豳20070428005437
。欤
20070428005510

圍4-3生成文件組成信息
Fig,4-3 Create fi Ies i nfo

r舊tion

4.3。3數(shù)據(jù)管理器工具的編寫測(cè)試 由于lucene采用了自己的數(shù)據(jù)格式,抓取數(shù)據(jù)后的保存格式,無(wú)法被直接 瀏覽和管理,不像我們?cè)诓僮髌胀P(guān)系型數(shù)據(jù)庫(kù)時(shí)可以通過(guò)數(shù)據(jù)庫(kù)提供商提供的 開發(fā)工具可視化的觀察分析數(shù)據(jù).因?yàn)槟切┐笮偷臄?shù)據(jù)庫(kù)都有一個(gè)大型的研發(fā)團(tuán) 隊(duì),為使用者提供的服務(wù)極為方便,而我們?cè)谑褂茫椋幔觯嵴Z(yǔ)言的項(xiàng)目研發(fā)中涌現(xiàn) 出很多優(yōu)秀的開源項(xiàng)目,這些開源的項(xiàng)目都是由我們開發(fā)者在不斷的完善中,沒(méi) 有什么配套的第三方工具可以很方便的使用.所以我們需要在自己的研究過(guò)程中

第4章主題搜索引擎的實(shí)現(xiàn)

編寫一些第三方輔助工具來(lái)為我們的研發(fā)提供方便和標(biāo)準(zhǔn)。 Swing是一個(gè)用于開發(fā)Java應(yīng)用程序用戶界面的開發(fā)工具包。它以抽象窗口 工具包(AWT)為基礎(chǔ)使跨平臺(tái)應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格。Swing 開發(fā)人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來(lái)創(chuàng) 建優(yōu)雅的用戶界面。Swing組件集是JFC提供的一套新的GUI工具,它簡(jiǎn)化了 基于圖形界面的窗口系統(tǒng)的開發(fā)。Swing組件是所謂的輕量型組件,開發(fā)人員可 以方便的選擇自己的需要的GUI風(fēng)格:本地的顯示風(fēng)格、統(tǒng)一的{ava顯示風(fēng)格 或用戶定制的風(fēng)格。Swing有更多的靈活性和更強(qiáng)大的功能。 由于lueene的數(shù)據(jù)格式我們是不可以直接觀察分析的,可以用iava自己編寫 一個(gè)可視化的數(shù)據(jù)管理工具,通過(guò)借助Swing的可視化組件來(lái)編寫,利用簡(jiǎn)易的 可視化程序來(lái)把lueene數(shù)據(jù)格式轉(zhuǎn)化為可直接觀察的數(shù)據(jù),并且分析查詢相關(guān) 數(shù)據(jù)。為此編寫了DBManagerForNutch這個(gè)數(shù)據(jù)管理器工具,該工具提供了數(shù) 據(jù)格式的可視化以及查詢功能,對(duì)索引中的各個(gè)文件夾下的數(shù)據(jù)都可以導(dǎo)入進(jìn)來(lái) 分析,其初始化界面如(圖4.4)所示:

圖4-4 DBManager For Nuteh初始界面
Fig.4-4 Initial interface ofthe

DBManager For Nuteh

結(jié)合上面抓取的索引信息,在這幾個(gè)數(shù)據(jù)目錄中erawldb。linkdb是WebLink 目錄,存放ud及urls的相互關(guān)系,作為爬行和重新爬行的依據(jù)。 Crawldb是所有需要抓取的超連接信息,讀取內(nèi)容如(圖4.5):

成都理‘T大學(xué)碩+學(xué)位論文

p口NulchCrawl

卜凸翁aw國(guó)
卜0
LmkDB

;rip f/bbs godeyes nH口/fbbs htlp



1 f 1 1 1 1

28;04;20

0 0 0 0 0 0

30 0 300 30 0 30 0 30 0 30 0 30 0
30 0

0 0021 79

01f01門970

godeyes c

2∞4/20
28;04/20 28;04;20 28;04;20 28;04120 28105;20 28/05f20

0 0021 79 0 0021 78 0 0021 78 3 22061 2 5 434782 0 004658


0I/0ILl870 01f01門970 01f01門970 01f01門970 01f01』1 970 01f01』1 970 01f01門970

}口Segments r凸co№rII L D CrawiFeich:

f/bbs godeyes c

godeyes c hn0 fidownload god
Nip//download god http;;download

lttp f/bbs

}_In

ParseData

god

2 2

o凸ParseTe“{

h協(xié);/download god

004668

圖4-5
Fig,4-5

信息
Information of CrawIDB

Linkdb中存放的是所有超連接及其每個(gè)連接的連入地址和錨文本。讀取出來(lái) 的信息如下(圖4.6):
}疊



o’”一
hrip Hbbs },rip HbbS hrip Hbb0

、試
godeyeE crl,An

”4

’、
Ooogle
rlce as a5 as a5 a5 as as aS as a5

。h'dink一””黲!斐
Earth中文勢(shì)據(jù)庫(kù)支丁支持NET
3 07

rlo LInce/Ar,nourlce a5

godeyeE Ln;AnlloUflcelannou

便用'3E中文數(shù)據(jù)厙提矛netframewo rk出錯(cuò)

godeyes cn/Anr,o LIltceSAnnourice godeves cn/AnNounceJAnnounce

尋找戰(zhàn)友t一解秉封oE中文教據(jù)庫(kù)雨壬亨∞Ⅱ瓦t'

t,rip肋b5

l,tipⅣbbs goaeveS LrdArlhouriCefArlnounce iiripⅣbb5 godeve5【rdAnnoufile,Announce hrip I/lObs godeyes c rdAnnounceSAnnounce http/fObS hn0 l?ObS ittp flbbS 1nn fSbbS

一=0E中立剪據(jù)庫(kù)糾描營(yíng)帖t 中奠勢(shì)據(jù)庫(kù)臺(tái)趟密么?
雌薦悟l圈霧地標(biāo)中圈干省市縣慷洋細(xì)地…l
I丘期網(wǎng)左筍于中文數(shù)據(jù)庫(kù)的建議帖臺(tái)集‘唐負(fù) __
山幕穿阿詳}日地標(biāo)

900eyes godeyeS£rdAnnOunceIAnnounce


rdAnnOur,ce/Announce

Godeyes中芟筘冕庫(kù)羌i去啟瓤—蘊(yùn)孽后百動(dòng)jf一

godeye¥c

rdAnnounce/Announce

godeyes£r#Announce/Announce

我是鼬殺的新手什么私下僵我想下千中安數(shù)磊=== 部婦皇帝詛轄聽(tīng)蒞地地標(biāo)

一 ~~

圖4-6 LinkDB信息
Fig.4—6 Information of LinkDB

Segments是每輪抓取的時(shí)候根據(jù)crawldb生成的,存放抓回來(lái)的網(wǎng)頁(yè)。存放 的信息包括6種content、crawl
fetch、crawl generate、crawl parse、parse

parse_text。其中content是抓取下來(lái)的網(wǎng)頁(yè)內(nèi)容;crawl_generate最初生成; crawl—fetch、content在抓取時(shí)生成;crawl_parse、parse_data、parse_text在解析 抓取的數(shù)據(jù)文件時(shí)生成。其中crawl
generate、crawl

fetch和craw]Uarse是crawldb

的部分url數(shù)據(jù),它們格式一樣,不同的是抓取時(shí)間、狀態(tài)、簽名等有所變化。 nutch以廣度優(yōu)先的原則來(lái)爬行,因此每爬完一輪就會(huì)生成一個(gè)segment目錄.上面 設(shè)置的深度為3,所以生成3個(gè)以日期命名的文件夾。 抓取網(wǎng)頁(yè)時(shí)生成的crawl fetch包含的信息如下:
}口
一 '

}篙糕 瓣糕 猻npm岫~w
lhilpӬv^v

5 7 7 5 5

2目04;20 28104/20 28S04t20

0 0 0

30 0 30 0 30 0 30 0 30 0





0’,01,I 9i0 08



0 021 7391 3 0 021 7391 3 0 021 7391 3 0 021 7391 3 0 04347826 0 021 7391 3

01,01,1 970 08 0 0’,01,1 970 08 0 0'101,1 970 08 0 0,,01,1 970 08 0 0’,01,1 970 08 0 0’,01,1 970 0e 0

28104f20 28;04/20 28104t20 28;04,20







O 0

30 0
30 0

l}lnp mM~w

圖4-7 CrawlFetch信息
Fig.4-7 Information of

40

第4章主題搜索引擎的實(shí)現(xiàn)

解析抓取的數(shù)據(jù)文件分析過(guò)后生成網(wǎng)頁(yè)文本內(nèi)容如下:
t u— j
IS
。

耙虹



hnp”“w
r臨m¨w

godeyes Crdbollom



J撕Sr.rlplD0curnentdocumentwrite('。<tabI

godeyes cr#browser asp godeyes on/CONU¥hIm asp

口卜L0

hltp『^vⅥ^v

hitp"H蝴godeyes on/download http"ww godeyes cn/ge asp

h坤mw

鼬薛漫游區(qū)—一上帚Z驏首頁(yè)I Google Earth 上帝Z眼鞋茅我們 Google Ea rthf,^/odd V訕ndJ苴他Earth贛件下戴 Google Eanh歇悻專題 上帝:二霉googleea

godmfes cⅣlmg廳78 swf

CWS}0嵫;翟P嗟罨口”懂口糟冒Kpo¥

h扣,^¨v宵godeyes crd(ndeyasp h11pⅣ■w_godeyes crdmap asp

上帝之呼蟄1、角度看世界鐘鈉ygodeves

cn0

縋圖舞援曹夏I Google Eadh專題l NASAW0r

圍4-8
Fig.4-8 Information of

信息
ParseText

DBManager For

Nutch這個(gè)工具實(shí)現(xiàn)的就是把非直觀的數(shù)據(jù)可視化給使用

者,相當(dāng)于一個(gè)格式的轉(zhuǎn)化,當(dāng)前實(shí)現(xiàn)的功能比較簡(jiǎn)單,在以后的開發(fā)過(guò)程中會(huì) 逐漸的根據(jù)需求更加的完善該第三方工具。 4.3.4使用Tomcat服務(wù)器進(jìn)行搜索測(cè)試 (1)將tomcat\webapps下的ROOT文件夾名改成ROOTl; (2)將nutch-O.8.1目錄的nutch-O.8.1.Will'用winrar解壓到tomcat\webapps下,
并將其改名為ROOT;

(3)打開R001、wEB刪F\classes下的nutch-site.xml文件,修改成如下形式:
<?xml version=”1.0”?>
<?Ⅺ111.stylesheet type=”text/xsl”href=-”configuration.xsl”?> <『--Put site-specific property overrides in this file.一> <configuration> <property>

<name>searcher.dir</name>
<value>D:Inutch一0.8.1/erawledGis</value>

</prope。

</configuration>
其中的“<value>D:/nuteh.0.8.1/crawledGis</value>”部分應(yīng)根據(jù)自己的設(shè)置進(jìn) 行相應(yīng)修改。該目錄是指明需要查詢的服務(wù)器索引文件的位置。如果不指明索引 目錄就會(huì)查詢不到結(jié)果,如(圖4.9)是Tomcat中打印的信息。
2887—84—28 81:06:17,164 IHFO INF0 NutchBean—quel-y t'equest flPom 127.9.0.1

2887—日4—28齟:86:17,174
2887一日哇一2疊日l:86:17,174 2807—84—28日1:86:17,194 2887-84-28日l:B6:17.t94

NutchBean—qttel"9;上常
NlutchBean—lano=zh NutchBean一¥earching HutchBean—total for 2B

INFO
INFO INFO

Mv

hits

hits:B

圖4—9查詢過(guò)程信息
Fig.4-9^I I the information in searoh

返回結(jié)果(total hits)始終為0。

(4)打開ROOT\WEB—INF\classes下的nutch.default.xml文件,修改
41

成都理丁大學(xué)碩+學(xué)位論文

http.agent.name成如下形式:

<prope。
<name>http.agent.name</name>
<value>NutchlCT</value>

<description>HTTP'User-Agent。request header.MUST NOT be empty
please set this to a single word uniquely related to your organization. NOTE:You should also check other related properties: http.robots.agents http.agent.description http.agent.url

http.agent.email http.agent.version
and set their values appropriately. </deseription>

</property>

(5)啟動(dòng)Tomcat,打開瀏覽器在地址欄中輸入:http://localhost:8080

圖4-10 nutch查詢界面
F i g.4—10 Search i nterfaee of nutch

Nutch的安裝分為3個(gè)層次:基于本地文件系統(tǒng),基于局域網(wǎng),或者基于 intemet。不同的安裝方式具有不同的特色。比如:索引一個(gè)本地文件系統(tǒng)相對(duì) 于其他兩個(gè)來(lái)說(shuō)肯定是要穩(wěn)定多了,因?yàn)闆](méi)有網(wǎng)絡(luò)錯(cuò)誤,也沒(méi)有緩存文件的拷貝。 基于Interact的搜索又是另一個(gè)極端:抓取數(shù)以千計(jì)的網(wǎng)頁(yè)有很多技術(shù)問(wèn)題需要
解決。

因?yàn)槭褂茫危酰簦悖杩梢院芸焖俚膸椭覀儤?gòu)建自己的搜索引擎,尤其在使用局 域網(wǎng)或者在自己的網(wǎng)站開發(fā)一個(gè)內(nèi)部搜索引擎。而且Nutch的算法公開,不會(huì)像 某些網(wǎng)站提供的搜索智能查詢到特定的某些網(wǎng)頁(yè)。在測(cè)試nuteh的應(yīng)用性能時(shí), 對(duì)此作出一番比較。 在使用爬蟲對(duì)Godeyes.cn做數(shù)據(jù)爬行,采用深度為3,線程數(shù)為3進(jìn)行爬行 建立索引庫(kù)。并對(duì)本地的索引庫(kù)查詢,發(fā)現(xiàn)使用Godeyes只能查詢到部分信息, 而Nutch返回信息數(shù)目更多。它的評(píng)分算法是按照關(guān)鍵詞出現(xiàn)頻率大小和文檔本 身的分值有關(guān)。比如說(shuō)查詢關(guān)鍵詞“GPS”,Godeyes返回8條信息。

第4章主題搜索引擎的實(shí)現(xiàn)

圖4-”查詢關(guān)鍵字“GPS”結(jié)果比較圖
Fig.4-11 Contrast chart of search GPS

而用nutch查詢GPS可以搜索到13條結(jié)果 在長(zhǎng)句查詢時(shí),G0deyes效果相當(dāng)差,而Nutch可以收到一定的效用 比如查詢關(guān)鍵詞:“可以支持不同的GPS軟件”,Nutch可以搜索到部分相關(guān)信
息.

匭巫受獺蛭匱熏兩二二二二二二]圈唑
第l-頌(事}有2項(xiàng)查詢結(jié)果):

壘12d!冀磐煎凸翌!照垂塑塾堂甚塑皂至遜翌:掛工望I蟲,)二二上置Z量 …了圣誕之前.不過(guò)比較可’睹的是我們并投…問(wèn)跟進(jìn)這個(gè)…
J/v,nT,rv,1 godeyes

cPJdownload

a¥p

a圖廈‘廢衛(wèi)虱)吐臼趟蘭攫D(童塹址£0

Q19越!至g!熊里壁

…版本定為Frcc軟件.可以不限時(shí)間地自…對(duì)Pro感并趣的… h“P/,mw即d。yc;‘tu'ge flew礎(chǔ)p(圍叵怯職)島隆過(guò)至白勤(墼幽全國(guó)
圖4-12 Nutch長(zhǎng)句查詢結(jié)果
Fig.4-12 Search resuIt of Iong sentence in nutch

而Godeyes內(nèi)部查詢卻不能查詢到信息

}搜索關(guān)鍵字一可以支持不同的GPs軟件
;沒(méi)有記錄j
圖4-1 3 Godeyes長(zhǎng)旬查詢結(jié)果
Fig.4-12 Search resuIt of tong
sentence

in Godeyes

基于以上比較可知在nutch快速建立自己的搜索引擎,并且優(yōu)化的基礎(chǔ)上, 可以很好的應(yīng)用在企業(yè)內(nèi)網(wǎng)或本地搜索上。而且hutch的評(píng)分規(guī)則透明,對(duì)用戶 而言很公正。

43

成都理工大學(xué)碩士學(xué)位論文

4.4對(duì)中文分詞的處理
4.4.1計(jì)算所漢語(yǔ)詞法分析系統(tǒng)l
CTCLAS

詞是最小的能夠獨(dú)立活動(dòng)的有意義的語(yǔ)言成分,但漢語(yǔ)是以字為基本的書 寫單位,詞語(yǔ)之間沒(méi)有明顯的區(qū)分標(biāo)記,因此,中文詞法分析是中文信息處理的 基礎(chǔ)與關(guān)鍵。所謂分詞,就是指把一個(gè)完整的句子劃分為一個(gè)個(gè)詞條(Token) 的過(guò)程。這種詞條應(yīng)當(dāng)滿足某種語(yǔ)言規(guī)則,以便宇為其建立索引。只有通過(guò)這樣 的方式才能完成對(duì)一種語(yǔ)言的分析和檢索。為此,中國(guó)科學(xué)院計(jì)算技術(shù)研究所在 多年研究基礎(chǔ)上,耗時(shí)一年研制出了基于多層隱馬模型的漢語(yǔ)詞法分析系統(tǒng)
ICTCLAS(Institute ofComputing
Technology.Chinese Lexieal Analysis

System),該

系統(tǒng)主要功能包括中文分詞;詞性標(biāo)注;命名實(shí)體識(shí)別;新詞識(shí)別;同時(shí)支持用
戶詞典。分詞正確率高達(dá)97.58%,基于角色標(biāo)注的未登錄詞識(shí)別能取得高于90%

召回率,其中中國(guó)人名的識(shí)別召回率接近98%,分詞和詞性標(biāo)注處理速度為
543.5KB/s[22]。

在獲取計(jì)算所返回的注冊(cè)碼后可以進(jìn)行有效測(cè)試。并且利用計(jì)算所提供的 ICTCLAS3.0動(dòng)態(tài)鏈接庫(kù)和詞典文件進(jìn)行二次開發(fā)。
4.4.2編寫新的AnaIyzer

Nutch分詞的最底層使用的是Lucene的Analyzer抽象類,它位于analysis 包中,NutchAnalyzer繼承了Analyzer類、實(shí)現(xiàn)了Configurable、Pluggable接口.。 抽象類中定義了一個(gè)公有的抽象方法tokenStream(String
fieldName,Reader reader)

返回的類型是TokenStream。該方法是用于分析文本,其后的具體類中在這個(gè)方 法中實(shí)現(xiàn)了從文本中提取索引詞組的策略、算法。而返回的TokenS仃eam類是即 可以從文本或者從查詢?cè)~組中枚舉token序列的抽象類,在Lueene中繼承了它 的具體類有Tokenizer、TokenFilter。 NutchAnalyzer類是Nutch中擴(kuò)展分析文本的擴(kuò)展點(diǎn),所有用于解析文本的插 件都得實(shí)現(xiàn)這個(gè)擴(kuò)展點(diǎn)。對(duì)于Analyzer一個(gè)典型的擴(kuò)展就是首先建立一個(gè) Tokenizer,它是用于將Reader中讀入的Stream分解成最原始的Token,在 Tokenzier分解Stream之后,一個(gè)或多個(gè)TokenFilter會(huì)用于過(guò)濾這些詞組中無(wú)意
義的詞組。

NutchDocumentAnalyzer類繼承了NutchAnalyzer,其中有三個(gè)靜態(tài)私有內(nèi)部 類ContentAnalyzer、AnchorFilter、AnchorAnalyzer它們分別繼承了Analyzer、
TokenFilter、Analyzer。在ContentAnalyzer中調(diào)用了CommonGrams類,該類構(gòu)

第4章主題搜索引擎的實(shí)現(xiàn)

建了一個(gè)n-grams的分詞方案,因?yàn)樾枰谒饕锌紤]詞組的出現(xiàn)頻率,并且實(shí) 現(xiàn)了對(duì)n-grams方案詞組查詢的優(yōu)化措施。在n-grams方案中單個(gè)的詞組同樣會(huì) 被該方案索引,索引期間大量使用了Token的各種方法,并且還會(huì)調(diào)用 nutch/conf/nutch—default.xml中analysis.COlnrflon.terms.file的配置屬性,其上各個(gè)
類與接口的UML圖如下:

圖4-14分析器類與接口的。虉D
Fig.4—14 UilL chart in ariafyzer classes and i rrterface

Lucene本身的StandardAnalyzer提供了中文分詞接口,不過(guò)其采用的為 1-gram,默認(rèn)的切分規(guī)則是按一個(gè)個(gè)漢字分的。這種分詞方法雖然不會(huì)損失任 何索引信息,但是造成的索引垃圾太多,用戶得到的查詢結(jié)果中垃圾也是很多. 如果要更好的分詞,編寫自己的Analyzer,只要把他們包裝成Lucene的 TokcnStream就可以了。再利用已有的詞典,然后根據(jù)正向最大匹配法或者逆向最 大匹配法寫了一個(gè)分詞方法,并且應(yīng)用在Lucene中。 MyChineseAnlyzer在中文分詞方面使用JNI調(diào)用ICTCLAS的java接口.所 以其在中文方面性能上與ICTCLAS相同。其在英文分詞上采用了Lucene的 StopAnalyzer,可以去除stopWords,而且可以不區(qū)分大小寫,過(guò)濾掉各類標(biāo)點(diǎn)符號(hào). 完全兼容Lucene的底層分詞格式。
public final class MyChineseAnlyzer extends p而vate Set stopWords;

Analyzer{

/,可以在此擴(kuò)展需要去除的FILTER STOP WORDS public static final String[】FILTER—STOP—WORDS={
”a”,”all”,”and”,”are”,”as”,”at”,”be”,”but”,”by”,”我”,”的”,”如果”,”是” );
public

MyChineseAnlyzer(String[】stopWords){

this.stopWords=StopFilter.makeStopSet(stopWords); )
public

MyChineseAnlyzer 0{

成都理1=大學(xué)碩士學(xué)位論文

stopWords=StopFilter.makeStopSet(FILTER_STOP_WORDS); }
public TokenStream

tokenStream(String fieldName,Reader reader){

try{ splitWord=new ICTCLAS300; inputString=FilelO.readerToString(reader); String resultString=splitWord.paragraphProcess(inputString); return new StopFilter(new LowerCaseTokenizer(new StringReader(resultString)), stopWords); } catch(IOException e)(
String ICTCLAS30

System.out.println(”轉(zhuǎn)換出錯(cuò)”);
return null;

} )

) 用MyChineseAnlyzer進(jìn)行索引,查詢,測(cè)試。效果很好.可以很明顯觀察到使 用后的分詞效果得到改善,接近于人工分詞的效用。很好的體現(xiàn)了引用分詞后的
特色。

范例句子:“正如地球圍繞太陽(yáng)轉(zhuǎn),飛行的物體以拋物線的軌跡降落等等現(xiàn) 象,我們的搜索領(lǐng)域能不能模擬一個(gè)類似地球這種具有萬(wàn)有引力的智能化程序,
暫且稱之為慣性搜索。”

分詞后的效果:正/d如/v地球/n圍繞/v太陽(yáng)/n轉(zhuǎn)/v,/wd飛行/vi的

/udel物體/n以/p拋物線/n的/udel軌跡/n降落M等等/udeng現(xiàn)象/n,/wd
我們,rr的/udel搜索/vn領(lǐng)域/n能/v不能/v模擬/v一個(gè)/mq類似/a地球,n 這種/r具有/v萬(wàn)有引力/n的/udel智能化/vn程序/n,/wd暫且/d稱之為/v慣 性/n搜索/vn。/wj Nutch中要使用中文分詞,因?yàn)橹形姆衷~程序的速度很快,需要分詞的每篇 文章字?jǐn)?shù)不會(huì)達(dá)到需要占用其很長(zhǎng)時(shí)間的程度。因此,對(duì)于每篇文章分詞的請(qǐng)求 可以看作是大量短小線程的請(qǐng)求,此時(shí)使用線程池技術(shù)是非常合適的,它可以極 大減小線程的創(chuàng)建和銷毀次數(shù),提高程序的工作效率。

結(jié)論與展望

結(jié)論與展望
結(jié)論:
本論文結(jié)合自己三年來(lái)對(duì)軟件開發(fā)知識(shí)的學(xué)習(xí)經(jīng)驗(yàn)總結(jié),結(jié)合當(dāng)前熱門的研 究對(duì)象搜索引擎技術(shù)展開研究。結(jié)合當(dāng)前熱門的開源項(xiàng)目Lueene深入研究分析。 并結(jié)合中文分詞技術(shù),把中文搜索更好的融合進(jìn)該研究課題中。 本論文通過(guò)對(duì)開源框架的實(shí)現(xiàn)驗(yàn)證,得出以下結(jié)論: (1)本文通過(guò)提出按主題行業(yè)分類信息,建立相關(guān)主題詞庫(kù)的觀點(diǎn),選擇性 能好、效率高、經(jīng)濟(jì)合理的技術(shù)框架,從而更高效的快速建立主題搜索引擎,具 有現(xiàn)實(shí)的意義。 (2)由于Lucene只支持單字的分割建立索引,通過(guò)引入ICTCLAS分詞程序?qū)?它進(jìn)行改進(jìn),提高查詢效果。 (3)對(duì)開源框架Lucene的源碼和結(jié)構(gòu)進(jìn)行了較為深入的研究,并在此基礎(chǔ)上 進(jìn)行二次開發(fā),由于Lucene的排序算法是透明的可以修改,可對(duì)該評(píng)分體系進(jìn) 行改進(jìn),提升相關(guān)主題信息的分值,使得查詢結(jié)果更加接近用戶的需求。 (4)通過(guò)實(shí)例驗(yàn)證,對(duì)某一主題網(wǎng)站建立索引庫(kù),并進(jìn)行分析查詢,把建立 的主題搜索引擎查詢結(jié)果和網(wǎng)站現(xiàn)有的搜索結(jié)果進(jìn)行比較分析,對(duì)長(zhǎng)句查詢具有
更好的效果。

展望:
對(duì)主題搜索引擎研究還在進(jìn)一步的探討中,尤其主題詞庫(kù)的更新和效率需要 得到改進(jìn)。怎樣更加公平的讓用戶得到滿意的查詢結(jié)果也是我們將要面對(duì)的問(wèn) 題。高效的算法、用戶的潛意識(shí)期望結(jié)果、硬件設(shè)施的更新等等都需要更好的去
摸索和改進(jìn)。

從最初的電子黃頁(yè)開始,到如今的各種搜索概念的崛起。搜索市場(chǎng)充滿了各 種挑戰(zhàn),不但是技術(shù)上要保持優(yōu)勢(shì),市場(chǎng)運(yùn)營(yíng)的策略也至關(guān)重要,怎樣吸引更多 的用戶來(lái)關(guān)注。像搜索引擎優(yōu)化(SEO)就是專門針對(duì)各個(gè)超級(jí)搜索公司來(lái)研究 推廣他們的技術(shù)成果。優(yōu)化的過(guò)程就是琢磨大公司具體采用的什么排序算法,怎 樣讓自己的網(wǎng)站能更多的被搜索到。各種圍繞搜索引擎的行業(yè)由此展開。 搜索是一種服務(wù),外界對(duì)搜索引擎的評(píng)價(jià)體系形式多樣,除了當(dāng)前的競(jìng)價(jià)排 名,未來(lái)基于搜索的商業(yè)模式和業(yè)務(wù)模式會(huì)在網(wǎng)絡(luò)廣告、電子商務(wù)、付費(fèi)信息服 務(wù)等方面有所突破,個(gè)性化搜索及搜索分析將占主導(dǎo)地位。 搜索引擎的概念在不斷的突破,諸如:語(yǔ)義搜索(結(jié)合上下文語(yǔ)境和專業(yè)領(lǐng) 域搜索)、挖掘式搜索(使搜索結(jié)果和用戶的意圖相關(guān))、群體搜索(搜索的結(jié) 果可以加入到對(duì)結(jié)果網(wǎng)頁(yè)的評(píng)估中,從而避免計(jì)算機(jī)算法的缺陷),F(xiàn)在或許我

結(jié)論與展望

們的某些技術(shù)實(shí)現(xiàn)不了,但是結(jié)合人工智能的深入研究,我們將會(huì)開拓新的搜索 領(lǐng)域。正如地球圍繞太陽(yáng)轉(zhuǎn),飛行的物體以拋物線的軌跡降落等等現(xiàn)象,我們的 搜索領(lǐng)域能不能模擬一個(gè)類似地球這種具有萬(wàn)有引力的智能化程序,暫且稱之為
慣性搜索。

由于本人能力有限,再加上時(shí)間倉(cāng)促,本文不可避免的存在很多問(wèn)題,希望 大家批評(píng)指正。

48

致謝

致謝
光陰荏苒,時(shí)間如梭,轉(zhuǎn)眼間三年研究生求學(xué)生涯即將結(jié)束,迷茫、欣喜、 激動(dòng)與歡樂(lè)伴隨著我度過(guò)人生中的這段美好時(shí)光,此時(shí)此刻有說(shuō)不盡的感慨與喜 悅,更有道不完的感激與感恩。 首先感謝我的導(dǎo)師苗放教授這三年來(lái)對(duì)我的培養(yǎng)、關(guān)心與教導(dǎo),在我求學(xué)期 間,為我提供了大量的學(xué)習(xí)機(jī)會(huì)和研究場(chǎng)所,使我在研究方法、工作態(tài)度和治學(xué) 態(tài)度上得到了很好的鍛煉與提高。苗老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、深厚的學(xué)術(shù)造詣、高 度的責(zé)任感和虛懷若谷的為人品格深深的感染著我,使我受益匪淺。在此謹(jǐn)向苗 老師表示衷心的感謝! 感謝在我學(xué)習(xí)生活巾給予幫助的各位同門。從研究生入學(xué)開始,就受到各1:c7= 同門的關(guān)心和幫助,在學(xué)習(xí)上給予我莫大的支持和鼓勵(lì),特別感謝師兄王權(quán)海博 士,在項(xiàng)目合作期間備受他的指導(dǎo)和關(guān)心。感謝陳建華博士、劉瑞博士、曹禮剛 博十、史聞博、梁君、汪國(guó)華、胡文藝、王娟等師兄師姐對(duì)我學(xué)習(xí)的幫助。感謝 黃皓、葉成名、梁軍、李治強(qiáng)、夏濤、王海蓉、覃宇E、楊智翔、周宇鵬、郝慶 華、李海鷹等同門,和你們?cè)谝黄饘W(xué)習(xí)討論的日子讓我受益匪淺。感謝四蕊對(duì)我 的論文進(jìn)行幫助和修改,謝謝你對(duì)論文無(wú)私的細(xì)心整理。感謝同門的師弟師妹們 對(duì)我學(xué)習(xí)的支持和幫助。感謝信工院的各位曾經(jīng)一起相處過(guò)的同學(xué)和朋友們。 感謝在我本科期間給予我學(xué)習(xí)成長(zhǎng)莫大幫助的各位老師,一日為師,終身為 師。你們的教誨t卜我錦記于心。感謝王賀、劉超、叢群等同學(xué),你們?cè)谖业膶W(xué)習(xí) 生涯給予了巨大的支持、幫助和鼓勵(lì)。感謝所有在我學(xué)習(xí)生活中出現(xiàn)過(guò)的人們, 我的成長(zhǎng)都離不開你們的影響,讓我對(duì)生活,對(duì)社會(huì)有了更加深刻的認(rèn)識(shí)和把握。 感謝在我學(xué)習(xí)過(guò)程巾給予我提供實(shí)習(xí)機(jī)會(huì)的四川眾誠(chéng)信息技術(shù)有限公司和 上海創(chuàng)遠(yuǎn)有限公司,感謝和我‘起工作過(guò)的同事,謝謝你們對(duì)我的幫助,讓我在 技術(shù)上得到很大進(jìn)步,使我對(duì)計(jì)算機(jī)行業(yè)有了更深刻的認(rèn)識(shí)和發(fā)展的信心。 養(yǎng)育之恩,終生難忘,感謝我的爸爸、媽媽、舅舅、舅媽和全家人,在我十 余年求學(xué)生涯中對(duì)我的關(guān)懷和支持,讓我能夠健康的成長(zhǎng),教會(huì)我懂得怎樣做人, 你們的言傳身教,讓我一輩子都不能忘懷。沒(méi)有你們的理解和支持也就沒(méi)有我今 天的成績(jī)。你們永遠(yuǎn)在我的心里是最最重要的。謝謝你們1

黃波
2007年5月于成都

49

參考文獻(xiàn)

參考文獻(xiàn)
[1】牛志奇,丁天,天蘊(yùn)哲等譯.J2EE核心模式.【M】北京:機(jī)械工業(yè)出版社,2004. [2】車冬Lucene:基于Java的全文檢索引擎簡(jiǎn)介[online].Available
hap://www.chedong.com/tech/lucene.html>2002 www<URL:

[3]Apache Lucene project[onl ine].Avai lable

WIFW<URL:http:/flucene.apache.o喧/>

【4]侯震宇主題型搜索引擎的研究與實(shí)現(xiàn)[D】北京:中國(guó)科學(xué)院文獻(xiàn)情報(bào)中心2003 [online].Available www<URL: [5]博客園 論搜索技術(shù)對(duì)人類的四大社會(huì)性意義
http://zhuyi.cnblogs.com/>2006

[6】羅昶第四代搜索引擎一主題搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)[D]北京:北京大學(xué)計(jì)算機(jī)科學(xué) 技術(shù)系計(jì)算機(jī)軟件專業(yè)
院2006
1 997

【7】陳杰主題搜索引擎中網(wǎng)絡(luò)蜘蛛搜索策略研究【D]浙江:浙江大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué) 【8】曹紅林業(yè)主題搜索引擎研究【D】北京:北京林業(yè)大學(xué)林業(yè)信息管理2005 [9]Erik Hatcher,Otis
Gospodnetic
Lucene In

Action[M]Manning Publications

2004

【10】李剛宋偉邱哲編著Ajax+Lucene構(gòu)建搜索引擎[M】北京:人民郵電出版社2006 [1 1]金靈等譯Ajax基礎(chǔ)教程[M]北京:人民郵電出版社2006 [12】孫衛(wèi)琴李烘成著Tomcat與Java Web開發(fā)技術(shù)詳解[MIlL京:電子工業(yè)出版社2005 [13]伽瑪?shù)戎,李英軍等譯.設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M].北京:機(jī)械工業(yè) 出版社,2000 [14]王宇,林琪,杜志秀等譯.JAVA設(shè)計(jì)模式.[M]北京:中國(guó)電力出版社,2003 [15兒美】霍斯特曼等著,程峰等譯.Java 2核心技術(shù)卷I[M】.北京:機(jī)械工業(yè)出版社,2003 【16】劉坤等譯.J2EE技術(shù)內(nèi)幕【M】北京:機(jī)械工業(yè)出版社,2002 [17]柴曉路Web服務(wù)架構(gòu)于開放互操作技術(shù)[M】北京:清華大學(xué)出版社2002 [18】李安渝Web Services技術(shù)與實(shí)現(xiàn)【M】北京:國(guó)防工業(yè)出舨社2003 [19]劉樹春等.用Apache建立Web站點(diǎn).[M】北京:電子工業(yè)出版社.2001 [20]設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M】.北京:機(jī)械工業(yè)出版社2000 [21】黃理等.JSP高級(jí)編程.[M】北京:北京希望電子出版社.2001 [22]中文自然語(yǔ)言處理開放平臺(tái)[onl ine].Avai lable WWW<URL:http://www.nlp.org.cn/> [23】中文全文檢索網(wǎng)『online].Available WWW<URL:http://www.fullsearcher.com/> [24]PluginCentral—NutchWiki[online].Available WWW<URL:http://wiki.apache.org/nutch/
PluginCentral>

[25】Nutch tutorial[online】.Available WWW<URL:http:#lucene.apache.org/nutch/tutorial8.html> [26】黃波基于Ajax的客戶端應(yīng)用(J】成都:計(jì)算機(jī)應(yīng)用研究增刊2007 [27】何世林基于Java技術(shù)的搜索引擎研究與實(shí)現(xiàn)[D】成都:西南交通大學(xué)計(jì)算機(jī)應(yīng)用
2003

[28】車志軍人工智能在搜索引擎資源獲取中的應(yīng)用[D】浙江:浙江大學(xué)軟件學(xué)院2006 [29]相生昌 搜索引擎系統(tǒng)學(xué)習(xí)與開發(fā)實(shí)踐總結(jié)[c】北京:中國(guó)知網(wǎng)數(shù)圖研發(fā)部2005 【30]王亮搜索引擎及其相關(guān)性排序研究[D]武漢:武漢大學(xué)情報(bào)學(xué)2004

50

主題搜索引擎的研究與應(yīng)用
作者: 學(xué)位授予單位: 黃波 成都理工大學(xué)

相似文獻(xiàn)(10條) 1.學(xué)位論文 王常星 基于中文分詞的搜索引擎設(shè)計(jì)實(shí)現(xiàn) 2008
本項(xiàng)目是公司的電子商務(wù)網(wǎng)站項(xiàng)目下的一個(gè)關(guān)鍵子項(xiàng)目,項(xiàng)目的設(shè)計(jì)要求包括根據(jù)已有的分詞算法,實(shí)現(xiàn)自有的中文分詞系統(tǒng),設(shè)計(jì)實(shí)現(xiàn)一個(gè)規(guī)模 適中的搜索引擎系統(tǒng),具備較強(qiáng)的擴(kuò)展性和穩(wěn)定性,控制搜索引擎的規(guī)模。 雖然搜索引擎技術(shù)目前已經(jīng)有較為成熟的解決方案,但是由于項(xiàng)目特別限定了搜索引擎,包括中文分詞處理技術(shù),都需要采用完全自有的設(shè)計(jì)方案 ,因此本文所針對(duì)的搜索引擎架構(gòu)設(shè)計(jì),以及中文分詞算法的實(shí)現(xiàn),都沒(méi)有采用已經(jīng)成型的開源設(shè)計(jì)方案。 搜索引擎設(shè)計(jì)采用了層次化的設(shè)計(jì)結(jié)構(gòu),將搜索引擎劃分為五個(gè)層次,分別是接口層,核心層,存儲(chǔ)層,監(jiān)控系統(tǒng)和中文分詞系統(tǒng)。接口層負(fù)責(zé)處 理外部程序與搜索引擎的通信過(guò)程。核心層包括四個(gè)子系統(tǒng):中心控制系統(tǒng),競(jìng)價(jià)系統(tǒng),搜索節(jié)點(diǎn)和分詞系統(tǒng),中心控制系統(tǒng)是搜索引擎的核心調(diào)度系 統(tǒng),競(jìng)價(jià)系統(tǒng)是搜索引擎可以實(shí)現(xiàn)經(jīng)濟(jì)效益。存儲(chǔ)層是搜索引擎索引數(shù)據(jù)的存儲(chǔ)系統(tǒng)所在位置,其中包括了索引目錄服務(wù)和數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),存儲(chǔ)節(jié)點(diǎn)可 隨需求進(jìn)行擴(kuò)展,增撤節(jié)點(diǎn)只要在目錄服務(wù)中作出相應(yīng)更新就可以實(shí)現(xiàn)存儲(chǔ)節(jié)點(diǎn)的擴(kuò)展。搜索引擎集群在運(yùn)行時(shí),需要一個(gè)監(jiān)控系統(tǒng)來(lái)實(shí)時(shí)監(jiān)控系統(tǒng)各 服務(wù)以及網(wǎng)絡(luò)的運(yùn)行狀態(tài),便于及時(shí)發(fā)現(xiàn)解決問(wèn)題,保障系統(tǒng)的在線正常運(yùn)行。中文分詞子系統(tǒng)在查詢和更新中被調(diào)用,進(jìn)行信息的分詞處理。搜索引 擎?zhèn)子系統(tǒng)間的通信,采用了成熟的HTTP協(xié)議,該協(xié)議性能穩(wěn)定成熟,通過(guò)專門設(shè)計(jì)的HTTP Server達(dá)到非常高的傳輸性能。 搜索引擎的索引數(shù)據(jù)隨著時(shí)間的積累會(huì)越來(lái)越多,系統(tǒng)設(shè)計(jì)采取了分布式存儲(chǔ)方式來(lái)滿足搜索性能和存儲(chǔ)容量的兩方面要求,分布式的存儲(chǔ)結(jié)構(gòu)通 過(guò)一個(gè)目錄服務(wù)達(dá)到各節(jié)點(diǎn)數(shù)據(jù)同步的目的。 分詞系統(tǒng)實(shí)現(xiàn)了最大正向匹配切分結(jié)合tri-Gram排歧的分詞方法。

2.學(xué)位論文 李曉東 搜索引擎中中文分詞與糾錯(cuò)模塊的設(shè)計(jì)與實(shí)現(xiàn) 2008
隨著互聯(lián)網(wǎng)的蓬勃發(fā)展,各種應(yīng)用服務(wù)層出不窮,搜索引擎是其中最流行的一種服務(wù),僅次子電子郵件。伴隨著搜索引擎的普及,越來(lái)越多的人通 過(guò)使用搜索引擎,獲取日常工作和生活中需要的信息。 搜索引擎涉及多種技術(shù),其中,自然語(yǔ)言處理技術(shù)是其中重要的一種,它可以幫助搜索引擎提高查詢準(zhǔn)確度,并豐富搜索引擎的特色功能。中文分 詞技術(shù)與中文糾錯(cuò)技術(shù)是自然語(yǔ)言處理技術(shù)的兩個(gè)分支,可應(yīng)用在搜索引擎的分析系統(tǒng)與檢索系統(tǒng)中,對(duì)于提高用戶檢索效率和檢索結(jié)果準(zhǔn)確度具有十 分重要的意義。 論文選題來(lái)源于一個(gè)提供旅游信息搜索的搜索引擎系統(tǒng)。文中對(duì)中文分詞技術(shù)和中文查詢?cè)~糾錯(cuò)技術(shù)進(jìn)行了研究,并從軟件工程的角度出發(fā),設(shè)計(jì) 與實(shí)現(xiàn)了系統(tǒng)的中文分詞模塊與糾錯(cuò)模塊。具體的工作包括: (1)對(duì)一種基于規(guī)則的分詞算法進(jìn)行了改進(jìn),使用雙hash詞典結(jié)構(gòu)降低了算法正向、反向最大匹配時(shí)的匹配次數(shù);使用正反最大匹配切分策略取代 逐詞切分策略,降低了算法切分字符串的次數(shù),提高了算法的分詞效率。 (2)通過(guò)相關(guān)算法研究提出并實(shí)現(xiàn)了一種基于拼音hash詞典的同音別字詞糾錯(cuò)算法,應(yīng)用于搜索引擎系統(tǒng)中,用于同音別字詞的糾錯(cuò)。 (3)改進(jìn)了雙字驅(qū)動(dòng)詞典的結(jié)構(gòu),并結(jié)合新的字符串模糊匹配算法對(duì)漏字多字查詢?cè)~進(jìn)行糾錯(cuò),增強(qiáng)了系統(tǒng)對(duì)漏字多字查詢?cè)~的糾錯(cuò)能力。 (4)將詞典技術(shù)與Ajax技術(shù)相結(jié)合,實(shí)現(xiàn)了查詢?cè)~智能提示功能。 (5)采用N-gram切分的新詞識(shí)別算法,用于發(fā)現(xiàn)未登錄詞,實(shí)現(xiàn)分詞詞庫(kù)的動(dòng)態(tài)更新,提高了中文分詞模塊的分詞準(zhǔn)確度。 (6)在漏字多字查詢?cè)~糾錯(cuò)建議中,選擇相似度在一定范圍內(nèi)、詞頻數(shù)高于某一閥值的糾錯(cuò)建議詞條,作為相關(guān)查詢?cè)~,模擬了相關(guān)查詢?cè)~推薦功 能的實(shí)現(xiàn)。

3.期刊論文 曹羽中.曹勇剛.金茂忠.劉超.CAO Yu-zhong.CAO Yong-gang.JIN Mao-zhong.LIU Chao 支持智能中文 分詞的互聯(lián)網(wǎng)搜索引擎的構(gòu)建 -計(jì)算機(jī)工程與設(shè)計(jì)2006,27(23)
中文分詞技術(shù)對(duì)中文搜索引擎的查準(zhǔn)率及查全率有重大影響.在剖析開源搜索引擎Nutch的源代碼結(jié)構(gòu)的基礎(chǔ)上,基于JavaCC實(shí)現(xiàn)了一個(gè)可擴(kuò)展的詞法 分析器并將其與Nutch集成,構(gòu)建了一個(gè)支持智能中文分詞的互聯(lián)網(wǎng)搜索引擎NutchEnhanced.它可用作評(píng)測(cè)各類中文分詞算法對(duì)搜索引擎的影響的實(shí)驗(yàn)平 臺(tái).對(duì)NutchEnhanced的搜索質(zhì)量與Nutch、Google、百度進(jìn)行了,對(duì)比評(píng)測(cè).結(jié)果表明它遠(yuǎn)優(yōu)于Nutch,其查全率達(dá)到了0.74,前30個(gè)搜索結(jié)果的查準(zhǔn)率達(dá)到 了0.86,總體上具有與Google,百度接近的中文搜索質(zhì)量.

4.學(xué)位論文 朱海星 基于Lucene的搜索引擎的研究與應(yīng)用 2007
本文對(duì)搜索引擎技術(shù)進(jìn)行了深入的研究,并且探討和實(shí)現(xiàn)了搜索引擎在企業(yè)中的應(yīng)用。分析了當(dāng)前的幾種中文分詞技術(shù),并在此基礎(chǔ)上設(shè)計(jì)出了自 己的中文分詞算法,該算法達(dá)到了很好的中文分詞效果。最終,利用Lucene和自行設(shè)計(jì)的中文分詞工具實(shí)現(xiàn)了企業(yè)搜索引擎。全文的主要內(nèi)容是: 一、對(duì)搜索引擎的原理和組成進(jìn)行了研究。 二、由于搜索引擎在迅速激增的企業(yè)內(nèi)部信息資源中的使用越來(lái)越重要,提出了針對(duì)企業(yè)信息的專業(yè)搜索引擎:企業(yè)搜索引擎技術(shù)。 三、研究全文檢索技術(shù)和中文分詞技術(shù),在研究前人的分詞技術(shù)的基礎(chǔ)之上,基于開源全文搜索引擎Lucene,實(shí)現(xiàn)了一個(gè)自己的中文分詞算法。 四、設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于Web的企業(yè)信息搜索引擎。

5.期刊論文 顧愛(ài)華.趙泉.周塔.彭昱靜.衛(wèi)麗.徐瑩瑩.鄒盛榮 中文分詞技術(shù)在搜索引擎中的探討 -科技信息 2009(35)
本文通過(guò)深入探討中文分詞菝術(shù)在搜索引擎中的算法描述,并詳細(xì)介紹機(jī)器不斷地學(xué)習(xí)新詞、動(dòng)態(tài)地維護(hù)詞典的模型,嘗試解決最棘手的處理新詞問(wèn) 題,使其更好地為分詞提供更智能描述特別是對(duì)新詞.

6.期刊論文 王華棟.饒培倫.WANG Hua-dong.RAO Pei-lun 基于搜索引擎的中文分詞評(píng)估方法 -情報(bào)科學(xué) 2007,25(1)
中文分詞的結(jié)果是影響搜索引擎中文檢索結(jié)果質(zhì)量的重要因素,能否準(zhǔn)確有效的分詞對(duì)提高搜索結(jié)果的相關(guān)性和用戶滿意度都至關(guān)重要.本文回顧和 整理了中文分詞評(píng)估所依靠的理論依據(jù),同時(shí)建立了一套完整的基于搜索引擎中文分詞評(píng)估方法.這套評(píng)估方法涵蓋了評(píng)估樣本的提取、評(píng)估人員選取、 評(píng)估標(biāo)準(zhǔn)的制定、以及評(píng)估流程的設(shè)置等各個(gè)方面.實(shí)例分析的結(jié)果表明此方法是行之有效的.在此基礎(chǔ)上,作者進(jìn)一步對(duì)實(shí)驗(yàn)評(píng)估的結(jié)果進(jìn)行了深入討論 ,并提出了提高評(píng)估效果的幾條建議,包括如何考慮評(píng)估人員背景、取舍評(píng)估項(xiàng)目等.

7.學(xué)位論文 馬志強(qiáng) 校園網(wǎng)搜索引擎核心技術(shù)——中文自動(dòng)分詞 2006
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,校園網(wǎng)作為學(xué)校內(nèi)部信息共享、校際間信息交流的平臺(tái)也得到了快速發(fā)展。校園網(wǎng)上信息量的增加,以及 信息的分布存儲(chǔ),給用戶檢索信息帶來(lái)了困難。導(dǎo)致校園網(wǎng)上大量資源得不到充分利用,造成了信息資源的浪費(fèi)。校園網(wǎng)搜索引擎是一個(gè)對(duì)校園網(wǎng)內(nèi)部 信息資源進(jìn)行搜集整理,然后供用戶查詢的系統(tǒng),它包括信息搜集,中文分詞,索引和檢索四個(gè)部分。 本課題是校園網(wǎng)搜索引擎課題的一個(gè)子課題。研究的目的是為校園網(wǎng)搜索引擎課題提供一個(gè)高效的中文分詞軟件包。為了實(shí)現(xiàn)這一目標(biāo),首先建立 了中文分詞子系統(tǒng)實(shí)驗(yàn)平臺(tái)的結(jié)構(gòu)模型以及與其它模塊間的數(shù)據(jù)接口;然后,通過(guò)對(duì)詞典結(jié)構(gòu)機(jī)制、未登錄詞識(shí)別和分詞算法的研究,提出了適合校園 網(wǎng)搜索引擎中文分詞的一整套解決方案。該方案是以機(jī)械分詞為基礎(chǔ),包括逆向詞庫(kù)的建立與擴(kuò)充、基于整詞二分的二層索引結(jié)構(gòu)、基于規(guī)則統(tǒng)計(jì)的未 登錄詞識(shí)別算法以及改進(jìn)的逆向最大匹配算法等。最后,實(shí)現(xiàn)了中文分詞子系統(tǒng)實(shí)驗(yàn)平臺(tái)以及中文分詞軟件包,并進(jìn)行了速度和內(nèi)存容量的測(cè)試,得到

了字典占用內(nèi)存4.28M,分詞速度每秒11k字節(jié)的實(shí)驗(yàn)數(shù)據(jù)。實(shí)驗(yàn)表明,這個(gè)分詞軟件包可以滿足當(dāng)前校園網(wǎng)搜索引擎課題的使用。 本論文中提到的中文分詞子系統(tǒng)實(shí)驗(yàn)平臺(tái)和中文分詞軟件包是在 JDK 1.4和Oracle9i上實(shí)現(xiàn)的。

8.學(xué)位論文 任海一 基于上下文分析的中文分詞算法研究 2006
隨著Internet的迅速發(fā)展,網(wǎng)上信息不斷豐富和發(fā)展起來(lái)。越來(lái)越多的人習(xí)慣在網(wǎng)上發(fā)布和獲取信息。但是這些信息卻是以各種形式龐雜無(wú)序地散 布在無(wú)數(shù)的服務(wù)器上,更新變化快,用戶要得到真正有價(jià)值的東西有很大的困難。因此,網(wǎng)絡(luò)搜索引擎應(yīng)運(yùn)而生。然而,對(duì)于中文來(lái)講,漢語(yǔ)以字為基 本的書寫單位。作為能夠獨(dú)立活動(dòng)的有意義的最小語(yǔ)言成分的卻是詞。這與拉丁語(yǔ)系的語(yǔ)言以空格作為詞界不同。在漢語(yǔ)中詞與詞之間沒(méi)有明顯的區(qū)分 標(biāo)記。因此在搜索引擎的整理加工階段,重點(diǎn)需要解決的問(wèn)題就在于如何準(zhǔn)確的進(jìn)行詞的切分。 本文專注于中文分詞的優(yōu)化性的研究,通過(guò)研究比對(duì)機(jī)械匹配算法和詞頻統(tǒng)計(jì)算法的各自的優(yōu)缺點(diǎn),提出應(yīng)用馬科夫鏈來(lái)表示中文分詞的切分過(guò)程 ,并基于概率論提出語(yǔ)義切分理論,同時(shí)總結(jié)出語(yǔ)義信息函數(shù),針對(duì)目前分詞不準(zhǔn)確,易于產(chǎn)生歧義等主要問(wèn)題,對(duì)分詞系統(tǒng)進(jìn)行了優(yōu)化處理,并最終 提出了基于上下文分析的中文分詞的算法。通過(guò)實(shí)驗(yàn)證明了基于上下文分析的中文分詞算法的準(zhǔn)確率提高,是目前較好的中文算法之一。 本文的結(jié)構(gòu)如下:第一章首先講述搜索引擎的現(xiàn)狀,由此進(jìn)行對(duì)比中外搜索引擎的不同,同時(shí)引出中文搜索引擎的分詞問(wèn)題;第二章介紹中文分詞 的相關(guān)概念以及技術(shù)難點(diǎn)和基本狀況;第三章主要闡述中文分詞目前的研究成果和對(duì)主流的中文分詞系統(tǒng)的分析;第四章主要講解本文提出的基于上下 文分析的中文分詞算法的基本思想和實(shí)現(xiàn)目標(biāo)。算法實(shí)現(xiàn)的過(guò)程,包括設(shè)計(jì)思想和實(shí)現(xiàn)的方法;第五章總結(jié)算法的不足之處,以及需要今后繼續(xù)提高的 部分。

9.期刊論文 李艷欣.LI Yan-xin 搜索引擎中中文分詞的研究 -電腦知識(shí)與技術(shù)(學(xué)術(shù)交流)2007,2(8)
針對(duì)目前最常用的分詞算法--最大匹配算法效率低,長(zhǎng)度受限等缺點(diǎn),在對(duì)中文編碼體系和中文分詞的算法進(jìn)行研究的基礎(chǔ)上,提出了一種新的詞庫(kù)數(shù) 據(jù)結(jié)構(gòu).它支持首字Hash和標(biāo)準(zhǔn)二分查找,而且不限制詞條的長(zhǎng)度.然后介紹了基于該詞庫(kù)設(shè)計(jì)的一種快速的分詞算法,并給出了算法的實(shí)現(xiàn)過(guò)程.

10.學(xué)位論文 陸宵宏 基于P2P的搜索引擎的關(guān)鍵技術(shù)研究 2009
Peer-to-peer(P2P)技術(shù)的一個(gè)優(yōu)勢(shì)便是開發(fā)出強(qiáng)大的搜索工具。隨著互聯(lián)網(wǎng)的快速發(fā)展,搜索引擎作為一個(gè)網(wǎng)絡(luò)用戶所需的信息檢索工具,其作用 性越來(lái)越受到人們的重視。就中文用戶而言,提高搜索引擎的效率的關(guān)鍵因素是中文分詞匹配效率與搜索引擎索引檢索效率的提高。 本文首先對(duì)P2P技術(shù)進(jìn)行了闡述,包括P2P的定義、P2P模式與C/S模式的比較、P2P的特點(diǎn)以及P2P技術(shù)在搜索方面的應(yīng)用及優(yōu)勢(shì);其次對(duì)P2P搜索算法 進(jìn)行了分類探討,重點(diǎn)研究和分析了幾種P2P搜索算法,并指出它們的優(yōu)缺點(diǎn)。對(duì)以傳統(tǒng)索引方和倒排索引方這兩種索引方式為核心的基于P2P的搜索引 擎和其他幾種典型的搜索引擎也進(jìn)行了各方面的比較。接著,為了克服傳統(tǒng)的集中式搜索引擎的缺點(diǎn),針對(duì)中文分詞本文提出了基于樹狀詞庫(kù)進(jìn)行中文分 詞,這種經(jīng)過(guò)優(yōu)化的分詞方法使傳統(tǒng)的匹配算法效率得到大大地提高,并結(jié)合XML技術(shù)為中文分詞提出并實(shí)現(xiàn)了可行的解決方案:本文設(shè)計(jì)了基于XML與 B+樹的倒排索引算法建立索引器的索引解決了傳統(tǒng)的正、倒排索引模型實(shí)時(shí)更新性能差的缺點(diǎn)。將搜索引擎架設(shè)在P2P分布式網(wǎng)絡(luò)結(jié)構(gòu)之上,利用P2P的 良好的分布式特性,使搜索引擎從集中式走向分布式,使搜索引擎能更深度、更廣度地搜索互聯(lián)網(wǎng)上的用戶可用的信息。 基于樹狀詞庫(kù)與XML的中文分詞方法使得搜索引擎對(duì)中文文段進(jìn)行分詞時(shí)更為準(zhǔn)確;赬ML的倒排索引建立解決方案從新的角度探索了中英文混合 檢索的底層機(jī)制,使得搜索引擎在索引器中進(jìn)行索引檢索、尋找其相關(guān)的文檔更為快捷。 當(dāng)前,這方向的研究還處于試驗(yàn)、探索階段,某些方面在理論上還需要有所突破,逐步使搜索引擎更好地服務(wù)于用戶。

本文鏈接: 下載時(shí)間:2010年5月14日



  本文關(guān)鍵詞:主題搜索引擎的研究與應(yīng)用,由筆耕文化傳播整理發(fā)布。



本文編號(hào):170305

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/kejilunwen/sousuoyinqinglunwen/170305.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶58412***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com