

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