国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種面向高校招投標公告主題爬蟲的設計

2018-03-10 00:45袁琰偉陸培軍
軟件導刊 2018年2期
關鍵詞:招投標搜索引擎

袁琰偉+陸培軍

摘 要:由于通用搜索引擎返回的信息過多且主題相關性不強,使部分企業(yè)未能及時獲取高校招標公告,錯失中標機會。針對這種情況,提出了高校招投標公告主題爬蟲的設計方法。爬蟲首先通過主題確立、網(wǎng)頁聚類,將高校招投標公告聚集頁面存儲起來,然后爬蟲每日從高校招投標聚集頁面采集最新公告。實驗結果表明,該爬蟲能及時更新高校招投標公告且準確率較高,較好地為高校招投標信息網(wǎng)站建設提供數(shù)據(jù)來源。

關鍵詞:主題爬蟲;搜索引擎;招投標;主題相關性;網(wǎng)頁聚類

DOIDOI:10.11907/rjdk.172400

中圖分類號:TP319

文獻標識碼:A 文章編號:1672-7800(2018)002-0117-03

0 引言

高校貨物、工程、服務的需求量日益增多,投資成本越來越高。項目一般通過高校網(wǎng)站公開發(fā)布項目的招投標信息[1],而通用搜索引擎無法獲取專業(yè)的招投標信息,逐一登錄各高校網(wǎng)站查詢招投標公告又非常繁瑣,且招投標信息網(wǎng)基本都是收費的,繳費用戶才能看到招標公告詳細信息。招投標公告具有時效性,倘若公司因為錯過了投標期限而未能中標,這對高校和企業(yè)都是一筆損失。

為了解決這一問題,需要將全國高校的招投標公告匯總并及時更新,給用戶提供一個實用的查詢接口。因此,本文對高校招投標公告主題爬蟲進行了整體研究和設計。

1 主題爬蟲結構

招投標公告發(fā)布有一定規(guī)范。大多高校都將招投標公告發(fā)布在高校網(wǎng)站的通知公告頁面或高校招投標辦公室網(wǎng)站,方便用戶查詢。

主題爬蟲模擬用戶瀏覽網(wǎng)頁行為,從種子URL開始,向服務器發(fā)出請求。服務器作出響應,爬蟲將響應資源下載,并從響應資源中獲取新的URL,一層層地遍歷整個互聯(lián)網(wǎng)[2]。

為了讓用戶及時查詢高校招投標公告,主題應當保證每日至少遍歷一次各高校網(wǎng)站,以獲取新的招投標公告。但每次都從首頁開始遍歷,顯然十分耗時。本主題爬蟲在第一次運行后,能將各高校的招投標公告聚集的頁面保存下來,之后爬蟲從招投標公告聚集的頁面直接獲取更新公告即可,大大節(jié)省了更新招投標公告所需時間,提高了效率。

依據(jù)高校招投標公告的分布特點及主題爬蟲的行為特性,將高校招投標公告主題爬蟲劃分為以下幾個模塊:高校URL種子隊列、網(wǎng)頁采集模塊、URL預處理模塊、正文提取模塊、主題確立模塊、網(wǎng)頁聚類模塊、招投標公告聚集頁面URL隊列、招投標公告采集模塊。

高校招投標公告主題爬蟲結構如圖1所示。

招投標公告主題爬蟲處理流程:①檢查招投標公告聚集頁面URL隊列是否為空,若為空執(zhí)行步驟②,否則執(zhí)行步驟③;②從高校URL種子隊列逐一取出URL,通過網(wǎng)頁采集模塊和URL預處理模塊遍歷高校網(wǎng)站的前n層。通過文本提取主題,對采集的頁面進行聚類,將判定為招投標公告聚集頁面的URL存入招投標公告URL隊列;③逐一取出URL,通過URL預處理模塊,將判定為招投標公告的URL存入URL隊列;④通過正文提取,將招投標公告URL隊列中對應網(wǎng)頁的招投標公告詳細信息存入數(shù)據(jù)庫。

2 主題爬蟲設計

2.1 主題確立模塊

主題確立是網(wǎng)頁聚類的準備工作,為網(wǎng)頁聚類提供特征詞集。主題關鍵詞集采用特征提取方式獲取。首先通過人工選取若干高校招投標公告聚集頁面(該頁面是招投標公告以列表形式展示的頁面,而不是招投標公告的詳細頁面)。對招投標公告聚集頁面進行文本提取,分詞和去無用詞(“的”,“也”,“是”等),然后結合本爬蟲特點,對TF-IDF算法進行一些改動,獲取特征詞權值,將權值較高的若干特征詞作為高校招投標公告聚集頁面的特征詞集。

最經(jīng)典的TF-IDF[3]是通過TF值(詞條頻率)與IDF值(逆文本頻率)的乘積獲得特征詞的權值。不難發(fā)現(xiàn),這樣取得的特征詞集能很好地表示單個頁面的特征,即TF*IDF能計算出頁面的個性詞集。而本爬蟲要從若干高校招投標公告聚集頁面提取高校招投標的共性詞,TF*IDF顯然不適用。但是不難想象,單個高校招投標聚集頁面的特征詞集應為高校名稱和招投標類詞匯。高校名稱能代表頁面?zhèn)€性,而招投標類詞匯代表頁面共性,如果使用TF*IDF,顯然會突出高校名稱而忽略了招投標類詞。所以,本爬蟲在計算高校招投標公告聚集頁面的特證詞集時,將TF-IDF的計算公式改為TF/IDF,用以突出頁面共性詞(標投標類詞匯),降低頁面共性詞(高校名稱)的權重。

TF(Term Frequency),即詞條頻率(詞條出現(xiàn)的次數(shù)除以文本總詞數(shù)),詞條在文本中出現(xiàn)的次數(shù)越多,TF值越高。

Fi為詞條在文本中出現(xiàn)的次數(shù),Z為文本總詞數(shù)。

但是“的”,“也”等無意義詞條也會頻繁出現(xiàn),這些顯然不能作為文本的特征詞。IDF(Inverse Document Frequency),即逆文本頻率能很好地解決這一問題,文檔中出現(xiàn)的詞條越多,IDF值越小,反之,則越大。

D為全部文本數(shù)量,Di為出現(xiàn)詞條Ti的文本個數(shù)。特征項Ti的權重計算公式如下:

本主題爬蟲是將網(wǎng)頁文本提取和分詞去噪后的文本通過改動后的TF-IDF算法計算,將權值達到閾值的詞條作為高校招投標公告聚集頁面的特證詞集。

2.2 網(wǎng)頁采集模塊

2.2.1 主體爬蟲工作原理

網(wǎng)頁采集模塊就是使用爬蟲模擬用戶瀏覽網(wǎng)頁的行為,向服務器發(fā)出請求。服務器作出響應,爬蟲將響應資源下載。爬蟲以多線程的方式從待訪問隊列中取出URL,訪問對應網(wǎng)頁,并將網(wǎng)頁中的鏈接存入待訪問URL隊列,直至爬蟲到達預定深度。存入待訪問URL隊列之前需要進行查重操作,防止爬蟲重復爬取相同的URL,以提高效率。本文使用的URL去重算法為布隆過濾器[4]。布隆過濾器是一種犧牲正確率換取時間空間的算法,但對于成千上萬的URL來說,錯過個別URL是可以容忍的,因此布隆過濾器在URL去重方面相當適用。endprint

2.2.2 布隆過濾器

初始狀態(tài)下,集合S={x1,x2,…,xn}用一個包含m位的位數(shù)組表示,且每一位都是0。隨后布隆過濾器使用k個相互獨立的哈希函數(shù),將集合中的元素映射到位數(shù)組中。對于任意集合元素x,第i個哈希函數(shù)映射的位置hi(x)都置為1。判斷元素y是否在集合S中,只需對y做k次哈希運算即可。如果hi(y)的所有對應位置都為1,則認為y是集合中的元素,否則不是。

將布隆過濾器應用到本主題爬蟲中,只需將URL隊列看成一個集合,并將隊列中各URL做多次不同的哈希函數(shù)運算,映射至集合位數(shù)組中,同樣對新抓取到的URL做多次哈希函數(shù)運算,如果結果的對應位置都為1則直接去除,否則加入待爬取隊列。

網(wǎng)頁采集過程中還會遇到許多無用鏈接,本主題爬蟲加入了URL預處理模塊處理這些無用的URL。

2.2.3 URL預處理模塊

在高校招投標公告主題爬蟲采集過程中會獲得許多不完整的URL、校外URL、圖片和文檔URL以及重復的URL。本主題爬蟲加入了URL補全模塊和URL過濾模塊,用以處理這些URL。

(1)URL補全。經(jīng)測試發(fā)現(xiàn),在招投標公告聚集頁面源碼中提取的URL多不完整。在不補全的情況下,這類網(wǎng)址無法訪問。因為這類URL在源碼中使用了相對路徑,所以缺少的頭部往往是http://.*edu.cn/部分(例如info/1023/1260.htm缺少的是武漢音樂學院招投標與采購管理辦公室的首頁地址http://zcb.whcm.edu.cn/,即真正的網(wǎng)址應為http://zcb.whcm.edu.cn/info/1023/1260.htm)。而缺頭網(wǎng)址與所在頁面網(wǎng)址同為某一網(wǎng)址的子鏈接,所以通過當前頁面網(wǎng)址獲取缺頭網(wǎng)址缺少的頭部,并與不完整網(wǎng)址作字符串連接,即可獲得可訪問的招投標信息網(wǎng)址。URL補全流程如圖2所示。

(2)URL過濾。URL過濾的作用是將校外URL、圖片和文檔URL以及重復的URL等無需爬取的URL直接去除,以減少爬蟲運行時間。URL過濾分為URL范圍限制、去除無用URL和URL去重3步。

URL范圍限制:如果不加以限制,爬蟲必然會通過外鏈爬取站外頁面,對于只需要高校招投標公告的用戶而言,這顯然浪費了時間和計算機資源。經(jīng)過大量觀察不難發(fā)現(xiàn),基本所有高校網(wǎng)站的站內(nèi)域名都符合這樣的規(guī)范,即高校主頁大都為:

http://www.xxx.edu.cn/

其中xxx為高校名稱(英文或拼英縮寫)。

而站內(nèi)其它部門首頁網(wǎng)站要么是將www換成某部門的名稱(例如南通大學的招投標網(wǎng)站為http://ztb.ntu.edu.cn/),要么在高校主頁網(wǎng)站后加部門名稱(例如海南大學基建處的域名為http://www.hainu.edu.cn/jijian/),所以URL可使用正則表達式校驗來完成。本文使用的正則表達式是將高校主頁域名的www替換成.*,cn/替換成cn/.*即:http://.*.xxx.edu.cn/.*。

無用URL指圖片、空連接、常見文檔(doc、docx、xls、pdf等)和壓縮文件等無用鏈接,這類URL對于本主題爬蟲是多余的,所以直接去除。

網(wǎng)頁采集過程中還需要提取網(wǎng)頁的純文本用于網(wǎng)頁聚類,判斷網(wǎng)頁是否為招投標公告聚集頁面。

2.3 網(wǎng)頁聚類

本網(wǎng)頁聚類[5-6]用以獲取招投標公告聚集頁面,供招投標公告采集模塊使用。網(wǎng)頁聚類首先要提取網(wǎng)頁的文本部分,使用jsoup可以較簡單地獲取網(wǎng)頁的文本部分。隨后要對文本部分進行分詞和去除無用詞(“的”,“也”,“是”等)操作,再計算各分詞的TF值,作為該詞的權值,這里只計算TF值而不計算IDF值,是為了節(jié)省程序運行時間,且TF值也可很好的表示單個頁面中的關鍵詞權值。若該頁面不是招投標公告聚集頁面,則關鍵詞集中不會存在招投標類詞匯,在與招投標公告聚集頁面作相似度計算時,結果趨于0或等于0。所以網(wǎng)頁采集過程中,網(wǎng)頁的分詞權重直接用TF值表示,即采集頁面的權重:

本主題爬蟲使用空間向量模型[7-8]對爬取頁面和招投標公告聚集頁面進行相似度計算,然后根據(jù)預先設定的文本相似度閾值,將相似度較高的頁面URL存入招投標公告聚集頁面URL隊列,供招投標公告采集模塊使用。

將采集頁面文本D(w1,w2,…,wn)投射至一個n維坐標系中,即D的空間向量模型。同樣,將招投標公告聚集頁面主題定義為特征向量K(k1,k2,…,kn),其中ki為招投標公告聚集頁面主題特征詞條的權重。然后計算向量D、K的余弦值,即可計算出文本的主題相似度。主題相似度計算公式如下:

其中,ki為招投標公告聚集頁面主題特征詞條的權重,wi為采集頁面特征詞權重。Sim(K,D)取值范圍為[0,1],當Sim(K,D)取0時,文本主題不相關,當Sim(K,D)取1時,文本主題相似度最高。將達到預定閾值的網(wǎng)頁URL存入招投標信息聚集頁面URL隊列。

2.4 招投標公告采集模塊

完成招投標公告聚集頁面URL隊列的錄入后,即可通過招投標公告聚集頁面URL隊列提供的URL訪問對應網(wǎng)頁。提取源碼中的超鏈接標簽,用正則表達式去匹配招投標信息常見的關鍵詞,如“采購公告”、“招標告告”、“中標公示”等,在匹配的超鏈接標簽中提取其中的網(wǎng)址和標題,提取的網(wǎng)址可用主題爬蟲繼續(xù)爬行,通過正文獲取招投標公告,抓取的標題則作為招投標公告標題,最后將正文和標題錄入數(shù)據(jù)庫。

2.5 正文提取

目前互聯(lián)網(wǎng)上大部分網(wǎng)頁使用

標簽分塊,使網(wǎng)頁更加結構化。網(wǎng)頁中主要存在的塊為文本塊和鏈接塊。網(wǎng)頁的正文部分通常是文本密度較高的塊,文本密度較低的塊則認為是鏈接塊。文本密度為塊內(nèi)非鏈接文本數(shù)量與塊內(nèi)所有文本數(shù)量之比,而網(wǎng)頁中的正文有前后都為連續(xù)出現(xiàn)的鏈接塊特點。

正文提取方法:將預處理過的網(wǎng)頁源碼中的各個

標簽中的內(nèi)容提取加入網(wǎng)頁塊列表BlockList,從中取出文本密度最高的塊BlockList[j],并向前查找連續(xù)出現(xiàn)的非文本塊BlockList[i]、BlockList[i-1]。向后查找連續(xù)的非文本塊BlockList[k]、BlockList[k+1],則BlockList[i]與BlockList[k]之間的內(nèi)容被認為是網(wǎng)頁正文[9]。

3 結語

本文結合高校招投標現(xiàn)狀,設計了高校招投標信息主題爬蟲。設計了主題爬蟲的各個模塊,并詳細闡述了各模塊所需的算法及解決方案,為高校招投標信息主體爬蟲的實現(xiàn)奠定了基礎。當然該爬蟲還有需要改進的地方,如單單用“采購公告”、“招標公告”、“中標公示”等關鍵詞去判定鏈接為招投標信息鏈接是不嚴謹?shù)?,?jīng)測試,還是會有少量非招投標信息存入數(shù)據(jù)庫。

參考文獻:

[1] 程光熙,朱琴華,王海林.新形勢下高校招投標工作的實踐與探索[J].廉政文化研究,2013(5):76-81.

[2] 汪濤,樊孝忠.主題爬蟲的設計與實現(xiàn)[J].計算機應用,2004(S1):270-272.

[3] 許曉昕,李安貴.一種基于TFIDF的網(wǎng)絡聊天關鍵詞提取算法[J].計算機技術與發(fā)展,2006(3):122-222.

[4] 潘昊,鄂海紅,宋美娜.布隆過濾器在網(wǎng)頁消重中的應用[J].軟件,2015(12):166-170.

[5] 周開樂,楊善林,丁帥,等.聚類有效性研究綜述[J].系統(tǒng)工程理論與實踐,2014(9):2417-2431.

[6] 伍育紅.聚類算法綜述[J].計算機科學,2015(S1):491-524.

[7] 趙雪,崔榮一.基于N層向量空間模型的文本相似度計算方法[J].延邊大學學報:自然科學版,2016(3):231-234.

[8] 吳瑋.基于空間向量模型的垃圾文本過濾方法[J].湖南科技大學學報:自然科學版,2014(1):78-83.

[9] 熊忠陽,藺顯強,張玉芳,等.結合網(wǎng)頁結構與文本特征的正文提取方法[J].計算機工程,2013(12):200-210.

猜你喜歡
招投標搜索引擎
我國建筑工程項目招投標管理中存在的問題及對策
建設項目準備階段的審計要點探析
網(wǎng)絡搜索引擎亟待規(guī)范
Nutch搜索引擎在網(wǎng)絡輿情管控中的應用
基于Nutch的醫(yī)療搜索引擎的研究與開發(fā)
廣告主與搜索引擎的雙向博弈分析
基于Lucene搜索引擎的研究
搜索引擎,不止有百度與谷歌