摘 要:現(xiàn)在的互聯(lián)網(wǎng)具有多種功能平臺(tái),已成為人們?cè)谏鐣?huì)上生存的重要組成部分。中文垂直搜索作為通用搜索引擎的延伸和細(xì)分,首先要對(duì)網(wǎng)頁的中文信息進(jìn)行分詞處理,把已分字段的數(shù)據(jù)定向地抽取出來,最后用特定的方式反饋給用戶。文章將對(duì)現(xiàn)在的搜索引擎進(jìn)行深度分析,通過閱讀相關(guān)文獻(xiàn),開發(fā)個(gè)人信息垂直搜索系統(tǒng)。系統(tǒng)通過網(wǎng)絡(luò)蜘蛛獲取網(wǎng)頁內(nèi)容,將其內(nèi)容保存至MySQL數(shù)據(jù)庫中,用戶檢索時(shí)將該資源庫中滿足條件的鏈接反饋給用戶。該系統(tǒng)主要包括管理員控制面板與用戶搜索界面兩部分。
關(guān)鍵詞:網(wǎng)絡(luò)爬蟲;中文分詞;垂直搜索;php;MySQL
1 緒論
1.1 研究背景
因特網(wǎng)即Internet,始于1969年美軍在ARPA制定協(xié)定下的研究試驗(yàn)性網(wǎng)絡(luò)ARPANET。90年代是Internet最為迅速的增長期。2010年底全球網(wǎng)站總量2.55億個(gè),一年后增至5.55億個(gè),增幅為117.6%[1]。到2014年12月,我國擁有IPv6地址數(shù)量18797塊/32,IPv4地址數(shù)量為3.32億[2]。搜索系統(tǒng)發(fā)展勢(shì)頭空前繁榮,其發(fā)展存在如下特點(diǎn):(1)資源檢索數(shù)據(jù)庫規(guī)模不斷增大,商業(yè)搜索引擎保持的網(wǎng)頁數(shù)量一般都在千萬級(jí)甚至億級(jí)[3]。(2)逐漸出現(xiàn)垂直搜索系統(tǒng)[4]。(3)評(píng)價(jià)搜索結(jié)果的相關(guān)度[5]。(4)使用自動(dòng)分類技術(shù)。Internet信息技術(shù)迅猛發(fā)展,使我們被“信息迷航”所困擾,不能快速精確地定位信息。近年來國內(nèi)檢索技術(shù)不斷提升,但在很多操作層面不如國外。另外,中文詞匯組合變化,這也使中文搜索引擎的開發(fā)速度受到了限制。
1.2 文章的主要內(nèi)容及研究方法
文章將用戶檢索時(shí)的計(jì)算網(wǎng)頁權(quán)重的壓力轉(zhuǎn)移到系統(tǒng)搜集網(wǎng)頁信息時(shí),同時(shí)提出一個(gè)新的計(jì)算公式,使檢索結(jié)果更加精確,效率更加快捷。本系統(tǒng)后臺(tái)程序搜索互聯(lián)網(wǎng)相關(guān)信息,將網(wǎng)頁信息進(jìn)行分詞,存儲(chǔ)到數(shù)據(jù)庫中,進(jìn)一步加工處理;根據(jù)用戶輸入信息,將檢索結(jié)果以網(wǎng)頁鏈接進(jìn)行展示。文章研究方法:(1)文獻(xiàn)研究法。(2)理論研究與實(shí)際論證相結(jié)合。(3)系統(tǒng)開發(fā)需用到的工具:PHP、HTML+CSS以及MySQL數(shù)據(jù)庫等。
2 對(duì)垂直搜索系統(tǒng)的分析
2.1 搜索引擎的基本原理
搜索引擎,即對(duì)Internet中上億個(gè)網(wǎng)頁中的每個(gè)關(guān)鍵詞進(jìn)行索引,然后在此基礎(chǔ)上建立索引資源數(shù)據(jù)庫,在索引資源庫中重新搜索排序的一種技術(shù)。用戶搜索某個(gè)詞的時(shí)候,索引資源數(shù)據(jù)庫的所有頁面中的包含了該關(guān)鍵詞的內(nèi)容,都會(huì)被搜索出來,然后再根據(jù)排序算法,以某種次序輸出[6]。
2.2 系統(tǒng)結(jié)構(gòu)與主要功能
檢索系統(tǒng)主要由信息搜集調(diào)度模塊、網(wǎng)頁分析與存取模塊、索引資源與資源檢索模塊、詞庫與日志管理模塊等組成。信息搜索調(diào)度模塊主要利用自然語言處理的技術(shù),對(duì)特定范圍內(nèi)的網(wǎng)頁進(jìn)行優(yōu)先訪問[7]。向網(wǎng)頁存取模塊發(fā)送超鏈接,接收反饋結(jié)果并分析,將搜集到的數(shù)據(jù)保存到網(wǎng)頁數(shù)據(jù)庫。管理員根據(jù)網(wǎng)頁數(shù)據(jù)庫中超鏈接信息,通過網(wǎng)頁分析與存取模塊,利用http協(xié)議獲取該鏈接對(duì)應(yīng)的網(wǎng)絡(luò)信息。索引資源數(shù)據(jù)庫中保存著互聯(lián)網(wǎng)中關(guān)鍵字存在的網(wǎng)頁鏈接,索引資源與信息檢索模塊對(duì)檢索庫進(jìn)行優(yōu)化,加快結(jié)果反饋速度。用戶通過調(diào)用檢索模塊,獲得系統(tǒng)的檢索服務(wù)[8],結(jié)果以HTML格式反饋給檢索者。
2.3 控制程序的實(shí)現(xiàn)
垂直搜索系統(tǒng)的主控程序,即信息存取與分析模塊。通過SOCKET接口傳輸HTML存取分析結(jié)果,主控程序根據(jù)pipe接口將分析結(jié)果插入到數(shù)據(jù)庫中。定期對(duì)數(shù)據(jù)庫URL進(jìn)行期檢,若數(shù)據(jù)庫中存在未保存的URL則調(diào)用主進(jìn)程實(shí)現(xiàn)對(duì)其訪問。主進(jìn)程實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲過程,并將相關(guān)信息保存到數(shù)據(jù)庫中。過程如圖1所示。
其中主進(jìn)程的處理流程如圖 2所示。
3 個(gè)人信息垂直搜索系統(tǒng)的設(shè)計(jì)策略
3.1 初始種子URL
如果將互聯(lián)網(wǎng)看作一張連通圖,那么網(wǎng)頁就像連通圖中的節(jié)點(diǎn),網(wǎng)頁間的超鏈接就可以被看成該圖的邊。爬蟲程序以初始化URL種子為入口,不斷獲取網(wǎng)絡(luò)資源。開始爬行時(shí),可能遇到評(píng)價(jià)網(wǎng)頁的信息較少,容易獲取無關(guān)網(wǎng)頁,進(jìn)而導(dǎo)致爬蟲方向偏離主題[9]。本系統(tǒng)中初始化種子URL由系統(tǒng)管理員來完成,通過對(duì)初始化URL的訪問實(shí)現(xiàn)網(wǎng)頁的抓取。
3.2 網(wǎng)頁抓取流程
網(wǎng)頁獲取過程實(shí)際上是爬蟲程序在互聯(lián)網(wǎng)這張連通圖的邊上爬來爬去的過程,當(dāng)訪問到某一節(jié)點(diǎn)時(shí),將該節(jié)點(diǎn)的相關(guān)信息保存至網(wǎng)頁數(shù)據(jù)庫中。在搜索引擎中,爬蟲把初始化的URL提取出來,首先將其放到URL工作隊(duì)列,然后遍歷該工作隊(duì)列中的URL,下載網(wǎng)頁的同時(shí)將新出現(xiàn)的URL在此放入到工作隊(duì)列中。同時(shí)需要一張歷史表,保存該網(wǎng)頁是否已被遍歷的信息。
爬蟲程序架構(gòu):爬蟲程序能夠根據(jù)初始的URL來獲取更深一層的網(wǎng)頁鏈接,然后抓取深層網(wǎng)頁的有效信息,并將其保存至數(shù)據(jù)庫??傮w結(jié)構(gòu)如圖3所示。
抓取網(wǎng)頁:網(wǎng)絡(luò)資源一般是Web服務(wù)器上的一些各種格式的文件,其位置由URL來標(biāo)示。網(wǎng)頁的抓取算法與過程如圖4所示。抓取過程中可能會(huì)遇到網(wǎng)頁更新問題,這時(shí)就要求蜘蛛在下載網(wǎng)頁時(shí),記錄網(wǎng)頁下載時(shí)間;同時(shí)也可以使用MD5加密算法,增量采集時(shí),判斷URL對(duì)應(yīng)的網(wǎng)頁是否有更新。
4 個(gè)人信息垂直搜索系統(tǒng)的實(shí)現(xiàn)
4.1 檢索結(jié)果的排序規(guī)則
本系統(tǒng)對(duì)結(jié)果進(jìn)行排序考慮的因素有:網(wǎng)頁關(guān)鍵詞出現(xiàn)頻度words_in_page、標(biāo)題關(guān)鍵詞word_in_title、站點(diǎn)域名word_in_domain、網(wǎng)址路徑word_in_path、meta標(biāo)簽中關(guān)鍵字meta_keyword以及網(wǎng)頁目錄深度path_depth等。計(jì)算網(wǎng)頁權(quán)重如公式(1.1)所示。
(1.1)
其中管理員需要設(shè)置標(biāo)題中的關(guān)鍵詞權(quán)重(title_weight)、站點(diǎn)域名中的關(guān)鍵詞權(quán)重(domain_weight)、網(wǎng)址路徑中的關(guān)鍵詞權(quán)重(path_weight)、meta標(biāo)簽中關(guān)鍵詞權(quán)重(meta_weight),路徑深度由當(dāng)前站點(diǎn)相對(duì)于域名站點(diǎn)的層次深度決定。
受啟發(fā)于經(jīng)濟(jì)學(xué)中的二八定律(帕累托法則)[10],本系統(tǒng)的路徑深度權(quán)重的系數(shù)設(shè)置為0.2。二八定律具有重要的現(xiàn)實(shí)意義,學(xué)會(huì)避免將時(shí)間和精力花費(fèi)在瑣事上,要學(xué)會(huì)抓住主要矛盾。文章認(rèn)為路徑越深,其網(wǎng)頁權(quán)重會(huì)相對(duì)降低,但此因素(路徑深度)對(duì)網(wǎng)頁權(quán)重的影響也不能過大,所以選擇系數(shù)為0.2。同時(shí)將其作為分母,不僅實(shí)現(xiàn)了路徑越深其網(wǎng)頁權(quán)重越低,還實(shí)現(xiàn)了路徑深度對(duì)網(wǎng)頁權(quán)重影響不會(huì)過大。不僅抓住了網(wǎng)頁權(quán)重的主要因素,還考慮了次要因素。
系統(tǒng)在進(jìn)行網(wǎng)頁爬行時(shí),首先要提取網(wǎng)頁中的關(guān)鍵字,判斷其是否存在于上述排序因素中,若存在,則把與該因素相對(duì)應(yīng)的權(quán)重加入該關(guān)鍵詞的網(wǎng)頁權(quán)重中;若不存在,則該項(xiàng)權(quán)重為零。例如:關(guān)鍵字XX存在于某網(wǎng)頁A的title中,則將公式(1.1)中word_in_title置為1;XX不存在于網(wǎng)頁A中上述的其他因素中,則將其他因素的系數(shù)置為0(即word_in_domain、word_in_path、meta_keyword均為0);網(wǎng)頁A的深度為Y,則就能計(jì)算出對(duì)于關(guān)鍵字XX網(wǎng)頁A的網(wǎng)頁權(quán)重。
當(dāng)用戶輸入檢索關(guān)鍵字進(jìn)行檢索時(shí),系統(tǒng)首先把與該關(guān)鍵字相關(guān)的網(wǎng)頁檢索出來;然后,對(duì)符合要求的網(wǎng)頁根據(jù)weight值由大到小進(jìn)行排序,weight值最大的排在首位;對(duì)后續(xù)網(wǎng)頁,將其網(wǎng)頁weight值與首位網(wǎng)頁的weight值(maxweight)進(jìn)行比值計(jì)算(即規(guī)格化網(wǎng)頁的排名,將其轉(zhuǎn)換成0-100%區(qū)間的數(shù)值),如下公式(1.2)所示。
(1.2)
其中,maxweight表示符合要求的網(wǎng)頁中最大的weight值,result數(shù)組包含符合要求且按weight由大到小排序的結(jié)果集,PHP的核心String函數(shù)中的number_format()函數(shù)用來格式化數(shù)字。
4.2 本系統(tǒng)與普通搜索系統(tǒng)的對(duì)比
本系統(tǒng)首次提出針對(duì)互聯(lián)網(wǎng)個(gè)人信息進(jìn)行垂直搜索,即對(duì)某個(gè)人在特定類型的網(wǎng)站留下的信息進(jìn)行檢索,實(shí)現(xiàn)面向領(lǐng)域的搜索功能。但普通搜索系統(tǒng)搜索信息的最小單位是網(wǎng)頁。本系統(tǒng)放棄以往以網(wǎng)頁描述和鏈接為主的搜索方式,采用對(duì)網(wǎng)頁全文網(wǎng)頁數(shù)據(jù)進(jìn)行分詞和結(jié)構(gòu)化處理的方法,以結(jié)構(gòu)化的關(guān)鍵字為單位存儲(chǔ)到數(shù)據(jù)庫,增強(qiáng)關(guān)鍵字與網(wǎng)頁的關(guān)聯(lián)程度,用戶的檢索結(jié)果也因此會(huì)更加貼近于自己的需求。
隨著網(wǎng)頁標(biāo)準(zhǔn)逐漸向HTML5的方向發(fā)展,一些關(guān)鍵字雖然不出現(xiàn)在網(wǎng)頁的顯示界面上,如meta標(biāo)簽中的文字,但其在網(wǎng)頁信息檢索時(shí)所占的分量很大。文章提出的新排序規(guī)則重新考慮了影響網(wǎng)頁權(quán)重的常見因素,如header標(biāo)簽、meta標(biāo)簽等。對(duì)路徑深度因素提出新的規(guī)則,實(shí)現(xiàn)其對(duì)網(wǎng)頁權(quán)重既有影響但其影響又不會(huì)過大。管理員設(shè)置好相關(guān)權(quán)重參數(shù),使系統(tǒng)在爬行網(wǎng)頁時(shí),首先提取網(wǎng)頁中的關(guān)鍵字,判斷其是否存在于所述的因素中,即數(shù)據(jù)庫中存放的weight是已經(jīng)經(jīng)過計(jì)算的weight,方便用戶在查詢時(shí)已最快的速度反饋給用戶。當(dāng)用戶輸入檢索字段進(jìn)行檢索時(shí),系統(tǒng)迅速檢索出符合要求的結(jié)果集,對(duì)反饋回來的結(jié)果集按weight值由大到小排序并輸出。對(duì)結(jié)果集的weight與其中最大maxweight值進(jìn)行比值處理,從而得到關(guān)鍵字在網(wǎng)頁中相對(duì)最大權(quán)值的相關(guān)度。
如上圖 4所示,通過排序計(jì)算公式可以得出“馬云”在好搜百科站點(diǎn)中的權(quán)重比百度百科中要大。用戶通過查詢更多結(jié)果,可以看出在好搜百科(或百度百科)站點(diǎn)中具有高價(jià)值信息的網(wǎng)頁也只有前幾個(gè)鏈接。所以本系統(tǒng)能夠使用戶快捷地得到某一站點(diǎn)關(guān)于某人的相關(guān)信息。同時(shí),本系統(tǒng)提供站點(diǎn)分類功能,用戶可以在自己感興趣的類別站點(diǎn)上對(duì)某人的信息進(jìn)行搜索,通過點(diǎn)擊結(jié)果標(biāo)題或結(jié)果鏈接進(jìn)入到該頁面的詳情。如圖5所示,搜索“馬云”在財(cái)經(jīng)類企業(yè)家網(wǎng)站與百度的檢索結(jié)果的對(duì)比,可以看到用戶能夠在對(duì)自己感興趣的分類站點(diǎn)進(jìn)行檢索,而百度等檢索系統(tǒng)不能提供此類服務(wù)。同時(shí),用戶能夠通過“與搜索”、“或搜索”、“詞組搜索”等高級(jí)搜索選項(xiàng),對(duì)多個(gè)人物進(jìn)行搜索?!芭c搜索”返回網(wǎng)頁中均同時(shí)含有檢索多人關(guān)鍵字的結(jié)果;“或搜索”返回網(wǎng)頁中含有其中一個(gè)或多個(gè)人的信息;“詞組搜索”則返回以用戶輸入的檢索關(guān)鍵字(包括空格)為檢索對(duì)象的結(jié)果。
除此之外,使用本系統(tǒng)的用戶還可以點(diǎn)擊查詢更多,得到來自該站點(diǎn)的更多查詢結(jié)果。如點(diǎn)擊圖5結(jié)果中來自中國企業(yè)家(www.iceo.com.cn)的更多結(jié)果,得到的結(jié)果集的網(wǎng)頁根據(jù)該站點(diǎn)重新計(jì)算權(quán)重比例,即用戶能夠查詢?cè)谀痴军c(diǎn)下某人的個(gè)人信息情況。
5 結(jié)束語
展望未來,隨著網(wǎng)絡(luò)軟硬件的發(fā)展,我們需要調(diào)整爬蟲程序搜索策略,實(shí)現(xiàn)漢語拼音與漢字智能轉(zhuǎn)換使得對(duì)網(wǎng)站路徑的判斷更加精確,設(shè)計(jì)更高效的中文分詞方法如智能分詞,以期待取得更佳的檢索效果。同時(shí)將本系統(tǒng)部署到互聯(lián)網(wǎng)上,只需要向用戶提供一個(gè)系統(tǒng)接口,用戶即可像使用通用搜索引擎一樣使用本系統(tǒng)。對(duì)于用戶搜索結(jié)果的展示,一方面進(jìn)一步優(yōu)化網(wǎng)頁排序算法,另一方面對(duì)個(gè)人的信息模塊進(jìn)行分塊或分圖層顯示。這些有待于將來進(jìn)一步對(duì)系統(tǒng)進(jìn)行完善。
參考文獻(xiàn)
[1]中國通訊網(wǎng)[EB/OL].[2012-01-08].http://www.c114.net/news/52/a66
6482.html.
[2]數(shù)據(jù)來源于中國互聯(lián)網(wǎng)數(shù)據(jù)平臺(tái). http://www.cnidp.cn/ .
[3]李新安.基于領(lǐng)域主題的Web信息檢索技術(shù)研究[D].山東大學(xué),2006.
[4]聶頌.具有自動(dòng)分類功能的主題搜索引擎的研究[D].天津大學(xué),2004.
[5]厲亮,蒙應(yīng)杰,趙書城,等.主題搜索引擎的探討[A].全國搜索引擎和網(wǎng)上信息挖掘?qū)W術(shù)討論會(huì)[C].2003.
[6]沈賀丹,潘亞楠,邵良杉.關(guān)于搜索引擎的研究綜述[J].計(jì)算機(jī)技術(shù)與發(fā)展,2006,4.
[7]閆峻.新一代搜索引擎準(zhǔn)確性收錄技術(shù)的研究[D].西北工業(yè)大學(xué).
[8]唐忠,歐旭.因特網(wǎng)搜索引擎技術(shù)原理及發(fā)展趨勢(shì)[J].大眾科技報(bào),2009,1.
[9]黃勝根.智能垂直搜索引擎的研究與設(shè)計(jì)[D].重慶大學(xué),2010.
[10]二八定律.好搜百科[EB/OL].http://baike.haosou.com/doc/4416385-4623713.html.
作者簡介:陳旺(1992-),男,漢族,首都經(jīng)濟(jì)貿(mào)易大學(xué)信息學(xué)院計(jì)算機(jī)科學(xué)與技術(shù),首都經(jīng)濟(jì)貿(mào)易大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)本科畢業(yè)。
徐天晟(1979-)男,漢族,首都經(jīng)濟(jì)貿(mào)易大學(xué)信息學(xué)院副教授,研究方向:產(chǎn)業(yè)經(jīng)濟(jì)學(xué),人工智能,金融工程,新型互聯(lián)網(wǎng)技術(shù)等。