摘 要:網絡信息資源急速膨脹,促進企業(yè)信息化的建設迅速發(fā)展。海量企業(yè)信息迅速涌入網絡市場,使得通用搜索導致的數據準確性問題日漸突出,用戶難以對所需的企業(yè)信息進行快速定位與檢索。因此,如何更為快捷、高效、精準的獲取并提供專業(yè)的企業(yè)信息已成為亟待解決的問題。文章描述的“企業(yè)垂直搜索系統(tǒng)”,主要利用網絡爬蟲技術對互聯網中分散的企業(yè)信息進行結構化抽取與綜合管理,為用戶快速定位所需的企業(yè)信息,搭建起專業(yè)高效的企業(yè)信息檢索平臺。
關鍵詞:垂直搜索;企業(yè)信息;網絡爬蟲
中圖分類號:TP368.3 文獻標識碼:A 文章編號:1006-8937(2014)8-0019-03
互聯網最基礎的功能即提供信息。像谷歌、百度這類通用搜索引擎重點在于廣度搜索,搜索到的內容涵蓋范圍過于廣泛、繁雜,用戶難以從如此海量的信息中快速獲取自己所需的確切信息。尤其針對用戶的專業(yè)檢索需求時問題更為突出,難以滿足專業(yè)人士的檢索需求。因此, 應開發(fā)搜索質量更準確、相關性更復雜的搜索引擎,以追求在某一學科或某一行業(yè)領域有最佳的檢索效率及效果,垂直搜索引擎的應運而生,成為搜索引擎發(fā)展史上的一座里程碑。因此,垂直搜索引擎以其搜索結果的高效性、準確性和專業(yè)性等特點逐漸得到人們的青睞。
1 研究意義
信息時代的到來與中國經濟的高速發(fā)展,導致互聯網中企業(yè)信息數據量日趨加大,分散的企業(yè)信息使得通用搜索引擎非結構化數據搜索導致的數據準確性問題日漸突出。因此,針對企業(yè)領域的信息查找的準確性和專業(yè)性,可以對企業(yè)搜索服務模式的細分,對海量企業(yè)信息科學地整合與管理,為用戶提供精準和具有針對性的企業(yè)搜索服務的搜索引擎系統(tǒng),已成為當今中國企業(yè)發(fā)展的迫切需要。
2 企業(yè)名錄垂直系統(tǒng)核心技術
2.1 信息采集技術
2.1.1 網絡爬蟲技術
本文所述系統(tǒng)是基于垂直搜索的系統(tǒng),所需要的海量企業(yè)信息分散于互聯網中,因此,需要特定的程序從網絡上搜尋與抓取需要的數據。在互聯網上抓取網絡資源的過程是依靠一個應用程序實現的,這個應用程序叫做網絡爬蟲(Spider),或者叫網絡蜘蛛(Spider),其主要職責即從信息源處抓取所需資源信息。爬蟲程序主要工作原理如下:分析所需要信息的網頁url地址生成算法,生成初始的url地址;依據初始url地址依次生成有效的url地址,形成地址列表;建立網絡連接,從生成的url地址列表中依次提取url地址,放入任務隊列,調用爬蟲程序依次通過url入口進行網頁抓取任務。
爬蟲程序工作原理流程圖如圖1所示。
基于信息數據庫的準確性與完整性考慮,本系統(tǒng)設計的爬蟲程序同時包含有以下幾種功能。
①數據包抓取與分析機制
多數網站為保證網站的穩(wěn)定性與安全性,采取了隱式傳參的方式,例如使用驗證碼等。因此本系統(tǒng)在調用爬蟲程序抓取某些所需信息時,需要通過調用數據包分析軟件、查看訪問網站所需傳輸的參數內容。本系統(tǒng)調用的是Wireshark網絡數據包分析軟件,其功能是截取網絡數據包,并盡可能詳細的顯示網絡數據包數據,可用于分析訪問網站中的隱式傳參。通過抓取數據包,獲取需要反饋網站的數據信息,之后將隱式信息反饋網站后使系統(tǒng)獲取訪問網站權限,成功訪問網頁,之后通過子程序調用抓取器來進行網頁的抓取。本文所述系統(tǒng)中所使用的抓取器為Wget,支持TCP/IP協(xié)議,并可使用HTTP代理。Wget抓取器的使用非常簡單,通過設置簡單的參數,將頁面按照要求完整地從互聯網下載到本地。因此,該機制實現的工作流程圖如圖2所示。
②延時抓取機制
網站基于通常設置一系列防范措施來保護網站安全,例如當某些用戶在一定時間內大量訪問網站時,網站防護程序可能認為這是惡意訪問,從而屏蔽此用戶IP。當系統(tǒng)調用爬蟲程序抓取信息時,不可避免地在短時間內大量訪問目的網站,因此需要進行一定量的延時機制來防止服務器IP被屏蔽。本系統(tǒng)設計的延時抓取機制基本原理為:首先設置一定的信息數量Imax作為啟動延時抓取的條件,同時設置延緩時間Tmax;之后,記錄抓取信息數據量In,即任務列表中已抓取的信息數量,當信息抓取量達到該條件后,即Imax=In時,標記當前最后一次抓取的url地址,爬蟲程序暫時停止,Clock開始計時,同時信息抓取量In歸零;最后,當Clock時長達到預定的延緩時長后,Clock時間歸零,調用爬蟲程序,此時進入任務隊列的url地址為地址列表中順序排在被標記的地址后的下一條url地址,之后取消被標記url地址的標記,信息抓取量In再次從零開始計數,直到達到規(guī)定條件后再次開始延時,直至任務列表中所有抓取任務都已完成。其工作流程圖如圖3所示。
2.1.2 信息抽取技術
信息抽取是指從一段文本中抽取指定的一類信息, 并將其轉化為結構化的數據存入一個數據庫中供用戶查詢使用的過程。因此如何將采集到的信息進行結構化的抽取是垂直搜索關鍵技術之一。一個html文本中通常包含有多類信息,例如企業(yè)名稱、企業(yè)類型、注冊號等,如何將這些信息結構化抽取、歸類與整理也是信息抽取待解決問題之一。本系統(tǒng)采用的方法非常簡單:利用已預定義的字符匹配算法——正則表達式(Regular Expression)來掃描html文本,進行信息匹配,提取正確匹配的信息。Html網頁一般某類特定信息的句子帶有特殊的句法。因此依照正則表達式的的基本字符匹配規(guī)則,可以確定某類特定信息提取的正則表達式,從而實現自動分類,提取對應信息。
2.2 檢索技術
2.2.1 中文分詞技術
中文分詞技術是基于中文信息的搜索引擎的關鍵技術之一,是處理中文信息的基礎,其準確性影響著查詢結果的準確性。中文信息以字為單位,單個漢字按照一定順序排列組合后合成詞句進行有意義的表達。因此,如何將用戶進行搜索的模糊信息分詞處理后獲得最接近用戶原意的結果,是分詞技術的難點。本系統(tǒng)實現分詞技術采用的是Friso分詞處理器。Friso是使用c語言開發(fā)的一個開源的中文分詞器,完全基于模塊化設計和實現,可以很方便的植入到其他程序中,如:MySQL,PHP等。Friso分詞器源碼可直接植入到任何平臺編譯使用,支持UTF-8編碼、自定義的詞匯數據庫以及大小寫等,可對中文與英文的混合詞匯進行分詞處理等,在系統(tǒng)中使用方便快捷。
2.2.2 索引技術
索引技術是垂直搜索技術中關鍵的一環(huán)。索引的建立,可以有效提高結構化信息的入庫效率與信息查詢的精準性。目前常用的基于中文分詞索引建立方法有單字分詞,雙字分詞(統(tǒng)計分詞)和詞典分詞。單字分詞即以單個漢字為單位建立索引項,此法索引建立簡單,但查詢時操作繁復,效率不高;雙字分詞法以兩個漢字作為一個詞來建立索引項,索引建立復雜且會存在大量冗余,查詢效率相對單字分詞法而言較高;詞典分詞法則是需要在分詞前建立一個詳細全面的詞庫,在切分中文信息時與詞庫中的數據進行匹配,遇到匹配的詞匯時進行信息切分。經過綜合對比,本系統(tǒng)選擇詞典分詞建立分詞索引,因此需要建立例如“合資”、“股份制”等與企業(yè)、行業(yè)、商業(yè)相關的專業(yè)詞語的詞匯數據庫,選擇基于詞庫分詞法的中文分詞技術以提高查詢結果的準確性與相關性。
3 企業(yè)名錄垂直搜索系統(tǒng)的設計
3.1 數據庫模塊
3.1.1 企業(yè)信息相關詞詞庫
為提高本系統(tǒng)搜索結果的精準性,本系統(tǒng)建立的自定義的企業(yè)信息詞庫。在構建企業(yè)相關特征詞庫時,首先需要確定描述企業(yè)的術語有哪些,例如描述企業(yè)類型的術語按照組織形式的不同被描述為國有、私營、合資、獨資等,按照企業(yè)所屬行業(yè)又可以分為交通運輸、工業(yè)、農業(yè)等。因此,在建立詞庫時,首先需要確定初始的企業(yè)相關詞,按照字符長度進行排列;之后,確定這些字符的漢語拼音。在建立數據表時,建立的數據項包括字的ID、漢語拼音、詞語長度、詞語漢字等數據項,當Friso分詞器接受到用戶的搜索時,可以依照所輸入的漢語詞匯或者英文輸入法下的漢語拼音進行相對應漢語分詞提示。
3.1.2 企業(yè)信息數據庫
本文研究的企業(yè)名錄垂直搜索系統(tǒng),為實現準確的企業(yè)信息搜索,建立了詳細的企業(yè)信息數據庫,包含了企業(yè)名稱、注冊號、法人姓名、法人信息、企業(yè)地址、電子郵箱、聯系電話等詳細信息。并且為實現精準的企業(yè)垂直搜索,本系統(tǒng)對企業(yè)類型、注冊資本、規(guī)模大小、所在地區(qū)、營業(yè)狀況等分別進行較為詳細的分類并建立相關索引,例如根據注冊資本范圍可以建立50萬以下、50~100萬、100~300萬、300~500萬和500萬以上等幾個數據的索引表,當用戶選擇相應的注冊資本范圍進行更快捷的查詢,提高結果的精準性與搜索效率。
3.2 信息采集與處理模塊
系統(tǒng)設計的爬蟲程序由于需要調用Wireshark數據分析包與Wget抓取器,因此該模塊又分為四個模塊:網頁抓取模塊、數據庫存儲模塊、通信模塊與正則表達式處理模塊,如圖4所示。網頁抓取模塊即將包含有所需信息的網頁從網絡下載至本地;數據庫存儲模塊即將切割后的結構化信息存儲至企業(yè)信息數據庫中;通信模塊則負責父進程與子進程之間的通信,即爬蟲程序中調用Wireshark子進程與調用Wget抓取網頁子進程以及延時抓取中延時進程之間的通信,使得各盡程各司其職,互相協(xié)作,完成指令;正則表達式處理模塊則是利用標準的正則表達式規(guī)則對抓取的網頁進行信息的匹配,進行結構化信息的抽取。
3.3 垂直搜索與查詢模塊
系統(tǒng)前臺查詢不僅使用了中文分詞技術,調用Friso分詞器可使用戶在查詢時可對相應的查詢條件進行提示,同時支持聯合檢索。在前臺搜索中,系統(tǒng)不僅設計了基于用戶輸入關鍵字詞的搜索,還對注冊資本范圍、企業(yè)類型、企業(yè)狀態(tài)、行政區(qū)劃等條件進行了選擇設置,用戶可以直接選擇所查詢企業(yè)的注冊資本范圍、所屬行業(yè)等,后臺程序可將前臺界面反饋后的多個查詢條件進行聯合查詢,確保反饋給用戶最需要的企業(yè)信息,如圖5所示。搜索結果的展示是一個二級頁面:第一級結果顯示頁是根據用戶的需求顯示出所有符合條件的企業(yè),為用戶提供選擇范圍,如圖6所示;若用戶需要了解自己感興趣企業(yè)的詳細信息,可直接點擊鏈接進入第二級結果顯示頁,可顯示該企業(yè)包括詳細地址、公司簡介等詳細信息,如圖7所示。
4 結 語
本文描述的基于企業(yè)名錄的垂直搜索系統(tǒng)采集的企業(yè)信息包括企業(yè)工商注冊號,其來源于各地工商信息系統(tǒng),確保了數據來源的可靠性,不僅可以為用戶提供正規(guī)精準的企業(yè)信息,還可以有效辨識企業(yè)的真?zhèn)?;而且本系統(tǒng)利用垂直搜索引擎實現了聯合搜索功能,用戶可以根據自己所需輸入企業(yè)篩選條件,例如所查找企業(yè)的所在地區(qū)、公司性質、注冊資本等條件來進行搜索,提高搜索效率;本系統(tǒng)可以依據用戶條件進行相應的企業(yè)搜索,可對用戶提供相關行業(yè)中企業(yè)的信息,有助于企業(yè)用戶選擇所需的商業(yè)合作伙伴等,形成有效的商業(yè)產業(yè)鏈,促進企業(yè)之間的合作與發(fā)展,從而促進商業(yè)發(fā)展。
參考文獻:
[1] 王文鈞,李巍.垂直搜索引擎的現狀與發(fā)展探究[J].情報科學,2010,(3).
[2] 張博,蔡皖東.面向主題的網絡蜘蛛技術研究與系統(tǒng)實現[J].微電子學與計算機,2009,(5).
[3] 林海霞,原福永,陳金森.一種改進的主題網絡蜘蛛搜索算法[J].計算機工程與應用,2008,(2).
[4] 周純.垂直搜索引擎技術進展[J].知識經濟,2011,(9).
[5] 季春,姜琴,吳錚悅.垂直搜索引擎關鍵技術研究綜述[J].情報科學,2012,(10).