王孟頔++邰泳
摘 要:隨著網(wǎng)絡招聘的普及,求職者需要瀏覽和篩選的數(shù)據(jù)越來越多,如何從大量的、非結構化的網(wǎng)絡信息中快速而準確地抽取需要的信息非常重要?;赩IPS視覺分割算法,利用網(wǎng)頁所呈現(xiàn)出來的布局結構和視覺特征,對招聘頁面進行視覺分割處理,在頁面分割的基礎上,抽取特定塊內(nèi)的文本信息,實現(xiàn)了關鍵詞查找抽取感興趣的視覺塊內(nèi)信息。實驗結果表明,基于VIPS的職位信息抽取技術能夠有效抽取出招聘頁面內(nèi)重要的文本信息,優(yōu)化了信息抽取結果。
關鍵詞關鍵詞:網(wǎng)絡招聘;信息抽取;視覺分割;VIPS;職位信息
DOIDOI:10.11907/rjdk.151404
中圖分類號:TP301
文獻標識碼:A 文章編號文章編號:16727800(2015)009002203
0 引言
網(wǎng)絡招聘憑借其覆蓋面廣、成本低廉、有針對性和時效性等優(yōu)勢,已經(jīng)成為大學畢業(yè)生和職員求職的首選方式。然而,隨著互聯(lián)網(wǎng)信息量指數(shù)級增長,這種新興的招聘方式顯現(xiàn)出一些弊端,如信息真實度低、信息處理難度大、成功率較低等。解決這些問題的關鍵步驟就是從網(wǎng)頁中抽取出人們感興趣的信息。大多數(shù)招聘頁面是根據(jù)客戶端用戶請求,動態(tài)生成具有較強格式的半結構化網(wǎng)頁。網(wǎng)頁中包含的信息量很多,當我們應用于信息檢索、數(shù)據(jù)分類、推薦系統(tǒng)和觀點挖掘等領域時,會發(fā)現(xiàn)網(wǎng)頁中有許多冗余信息,網(wǎng)頁信息抽取技術將提高數(shù)據(jù)的利用率。
當前的網(wǎng)頁信息抽取技術大多數(shù)是基于HTML標簽本身,對視覺特征[1] 考慮很少。事實上最終展現(xiàn)給用戶的是瀏覽器渲染過的網(wǎng)頁,通過利用網(wǎng)頁結構和視覺特征能有效地提高網(wǎng)頁信息抽取系統(tǒng)的準確率,優(yōu)化抽取結果。
本文設計了一個抽取職位信息系統(tǒng),該系統(tǒng)利用Navigate方法獲取頁面內(nèi)容,基于HTML標簽生成頁面樹,結合基于視覺的頁面分割算法VIPS (VIsionbased Page Segmentation)[3] 分割頁面,利用頁面解析器抽取文本信息,通過重寫迭代器方法實現(xiàn)關鍵詞查找,抽取出用戶感興趣的信息。
1 職位信息抽取流程
基于VIPS的職位信息抽取系統(tǒng)從所輸入的招聘網(wǎng)頁出發(fā),對URL列表對應的招聘頁面進行渲染并顯示頁面內(nèi)容,根據(jù)招聘頁面的HTML源碼生成標簽樹,利用VIPS算法對頁面進行視覺分割,結合頁面解析器HTMLParser對樹節(jié)點對應模塊的文本信息進行抽取,通過重寫迭代器,用戶通過關鍵字查找,抽取特定樹節(jié)點對應的文本信息,最后得到用戶感興趣的職位信息?;赩IPS的職位信息抽取過程如圖1所示。
圖1 基于VIPS的職位信息抽取流程
2 職位信息抽取關鍵組件設計
2.1 基于視覺的招聘頁面結構
基于視覺特征的網(wǎng)頁結構相比傳統(tǒng)的標簽樹結構而言,更有可能分析出招聘頁面內(nèi)文本信息的語義結構。結構中最大根節(jié)點下的子節(jié)點可能會傳達一些與招聘相關的信息,如崗位描述、崗位職責、聯(lián)系方式等。基于VIPS的網(wǎng)頁標簽樹中每個結點稱之為“塊”,這些塊是HTML標簽的基本元素或是基本元素的集合。
將每個招聘頁面表示成一個三元組Ω = {Ο,Φ,δ},其中Ο = {Ω1,Ω2,…ΩN},代表給定招聘頁面上所有塊的集合,塊與塊之間沒有重疊,每一個子塊Ωi的結構又被遞歸定義為上述三元組Ωi={Οi,Φi,δi}。Φ = {φ1,φ2,…φT},代表招聘頁面上的分割條集合。其中每個分割條都設置一個權重值,描述分割條的可見性。權重值相等的分割條劃分到一個集合中。δ代表不同塊之間的關系,用公式描述這種關系為:δ=Ο×Ο→ Φ∪{NULL}。例如,Ωi和Ωj是集合Ο中的兩個塊,δ(Ωi ,Ωj)≠NULL,代表塊Ωi和塊Ωj之間存在一個分割條δ(Ωi,Ωj),或者說兩個對象相鄰,否則就會有其它對象在兩個塊Ωi和Ωj之間。
VIPS算法對于每一個視覺塊都定義了一個DoC(Degree of Coherence)值,用來描述當前視覺塊內(nèi)的文本內(nèi)容聯(lián)系緊密程度。DoC值具有以下兩個特點:
(1)DoC值越大,說明當前視覺塊內(nèi)部的文本內(nèi)容聯(lián)系越緊密, DoC值越小,說明內(nèi)部聯(lián)系越松散。
(2)在一棵層次樹中,子塊的DoC值比父塊的DoC值大。
在對招聘頁面進行視覺分割前,預定義一個PDoC (Permitted Degree of Coherence) 值,控制分割后視覺塊的粒度大小。PDoC值越大,分割后的視覺塊就越精細,反之,視覺塊越粗糙。
2.2 招聘頁面標簽樹構建
構建招聘頁面標簽樹是對招聘頁面進行視覺分割的必要步驟,可以利用網(wǎng)頁的HTML編碼來生成。HTML標簽大多是成對出現(xiàn),每一對都有一個開始標簽(< >)和一個結束標簽(),并且標簽之間可以存在嵌套結構,因此可以將一對標簽視作標簽樹的一個節(jié)點,嵌套在其中的標簽對看成是當前節(jié)點的子節(jié)點,從而構建標簽樹。
由于許多招聘頁面的HTML源碼沒有完全遵循W3C標準,因此需要預先對部分HTML文檔進行編碼清洗。目前已經(jīng)有一些用于清洗HTML源碼的開源程序,如Tidy。結合該程序?qū)φ衅疙撁娴腍TML源碼進行規(guī)范化,比如對于不要求有結束標簽的節(jié)點,插入結束標簽以保持節(jié)點平衡,訂正格式錯誤的標簽、修改嵌套層次有問題的標簽等。
2.3 招聘頁面的視覺分割
基于視覺因素分割招聘頁面,首先需要提取當前招聘頁面的視覺塊。通過對招聘頁面構建標簽樹,可以從標簽樹的所有節(jié)點中遞歸提取視覺塊。但是,一些HTML標簽常用來組織數(shù)據(jù),如:
等等,對于這類標簽,不能將它們作為視覺塊單獨提取出來,而是對它們的子節(jié)點進行提取。對于已經(jīng)提取出的視覺塊,根據(jù)每個塊中的視覺因素差異設置Doc值。視覺塊迭代提取過程代碼如下:
Algorithm DivideTagtree(pNode,nLevel)
{
IF(Dividable(pNode,nLevel)==TRUE){
FOR EACH child OF pNode{
DivideTagtree(child,nLevel);
}
}
ELSE{
Put the SubTree(pNode) into the
pool as a block;
}
通過判斷當前標簽節(jié)點和它的子節(jié)點的背景色、大小、形狀等視覺因素,決定是否對當前標簽節(jié)點所代表的視覺塊繼續(xù)分割。對于所有提取出來的視覺塊,將它們保存到視覺塊池中,以便檢測分割條。
對大多數(shù)招聘頁面而言,包含不同內(nèi)容的視覺塊之間往往存在分割條,這個分割條或者是直線,或者是長條矩形等圖形元素。從視覺角度看,分割條可以作為識別語義信息的指示器,因此在提取視覺塊后需要檢測頁面的分割條。用一個二維向量(Ps,Pe)定義分割條,其中Ps是分割條的開始坐標,Pe是結束坐標。根據(jù)Ps和Pe計算當前分割條的高度和寬度。檢測分割條的具體算法如下:
(1)對分割條集合進行初始化。最初的分割條集合中個數(shù)為1,它的開始和結束坐標分別為整個招聘頁面的開始坐標和結束坐標。
(2)對于每一個視覺塊,判斷分割條的位置關系。如果視覺塊被分割條包圍,則將該分割條分裂為多個分割條;如果視覺塊與分割條有一部分重合,則根據(jù)視覺塊的邊界修改分割條坐標;如果視覺塊跨越分割條,則刪除該分割條。
(3)移除招聘頁面邊界的4個分割條。對于檢測出來的分割條,根據(jù)分割條相鄰的兩個視覺塊顏色、字體大小、不同視覺塊之間的距離設置分割條權重。兩個視覺塊之間的距離越遠,顏色、字體大小差異越大,該分割條的權重越大,分割條兩側的視覺塊語義信息差異就越大。
2.4 招聘頁面內(nèi)容結構重建
當所有分割條都設置了權重值,就重新構建招聘頁面的內(nèi)容結構。首先從權重值最小的分割條開始,將該分割條兩側的視覺塊合并組成一個新的視覺塊。整個重建過程是一個迭代過程,當遇到權重值最大的那個分割條時結束迭代,同時,重新設置那些合并后的新視覺塊的DoC值。對于這些新的視覺塊,將它們的DoC值與預定義的PDoC進行比較,如果新視覺塊的DoC值達到PDoC值規(guī)定的視覺塊粒度大小,迭代過程將停止。否則,重新進行迭代過程。
當?shù)^程全部結束時,原來那些較小的具有相似視覺特征的視覺塊會被合并成一個語義塊,語義塊內(nèi)的文本內(nèi)容聯(lián)系十分緊密。此時整個招聘頁面的內(nèi)容結構主要由語義塊組成,每個語義塊內(nèi)的信息內(nèi)容相似,方便對招聘信息進行結構化抽取。
2.5 頁面解析
用戶輸入一個URL后就會得到一個招聘頁面,這個頁面包含了大量的元素,而頁面中往往包含了各種各樣的信息,如圖片、文字等等,大多數(shù)情況下重要的信息都在頁面的文本中,因此需要設計一個頁面解析模塊,提取頁面的文本信息。
解析網(wǎng)頁文本內(nèi)容的方法很多,例如可以使用正則表達式,但是正則表達式比較抽象和復雜,并且復用性差,針對每個特定的網(wǎng)頁都需要單獨寫正則表達式,目前比較流行的頁面解析器有HTMLParser。HTMLParser是一個開源的Java庫,它是專門用來解析HTML文本內(nèi)容的,具有高效性。
3 實驗結果
本文實驗硬件配置如下:Intel(R)Pentium(R) 4 CPU 2.80GHz,內(nèi)存2G,開發(fā)IDE為:Microsoft Visual Studio 2010, C#語言。為了評估職位信息抽取系統(tǒng)性能,分別在智聯(lián)招聘、前程無憂、中華英才網(wǎng)、大街網(wǎng)、趕集網(wǎng)隨機選取一個招聘頁面,在這5個頁面按照DOM樹和VIPS樹兩種結構分割頁面,分別抽取10種不同的招聘信息,計算每種樹抽取信息結果的查準率,表1顯示了結果。
可以看出,不同網(wǎng)站的招聘頁面查準率各不相同,這主要是由于各個網(wǎng)站的設計規(guī)范程度不同,查準率高的網(wǎng)頁往往比較干凈,沒有過多的廣告,排版也比較合理,比如中華英才網(wǎng)的設計十分美觀,信息也比較突出,抽取的結果自然契合度高。另一方面,可以看出基于VIPS樹的職位信息抽取系統(tǒng)比基于DOM樹的信息抽取系統(tǒng)具有更高的查準率,因此可以得出結論:基于視覺特征來分割頁面并抽取信息,能夠使信息抽取過程更加優(yōu)化,結果更準確。
4 結語
本文基于網(wǎng)頁結構中的視覺因素,設計和實現(xiàn)了抽取招聘頁面內(nèi)的職位信息。利用Navigate方法獲取招聘頁面內(nèi)容,結合VIPS算法對頁面進行視覺化分割,用頁面解析器HTMLParser抽取文本信息,通過重寫迭代器方法實現(xiàn)關鍵詞查找功能。經(jīng)實驗測試,本文設計的系統(tǒng)能夠?qū)崿F(xiàn)頁面的輸入與顯示、生成標簽樹,抽取節(jié)點文本信息和關鍵詞查找功能。通過兩種樹的信息抽取結果對比,得出基于視覺分割的信息抽取方法比基于DOM樹的結果更精確的結論,證明本文設計方案是可行的。下一步主要是研究職位信息的并行抽取技術,實現(xiàn)抽取大量的職位信息,另外對于抽取到的職位信息,還可以進行聚類分析,對一些信息進行歸類、篩選。
參考文獻參考文獻:
[1] 朱凱.基于結構和視覺特征的網(wǎng)頁信息抽取技術的研究與實現(xiàn)[D] .杭州:浙江大學,2008.
[2] 龍麗,龐弘燊.國外 Web 信息抽取研究綜述[J] .圖書館學刊,2008 (5):1316.
[3] CAI D,YU S,WEN J R,et al.VIPS:a visionbased page segmentation algorithm[R] .Microsoft technical report,MSRTR200379,2003.
[4] BING LIU.Web數(shù)據(jù)挖掘[M] .第2版.北京:清華大學出版社,2013:287288.
[5] 于滿泉,陳鐵睿,許洪波.基于分塊的網(wǎng)頁信息解析器的研究與設計[J] .計算機應用,2005,25(4):974976.
[6] 顧濤.基于 Hadoop 的 Web 信息提取和垃圾信息過濾研究與實現(xiàn)[D] .成都:電子科技大學,2012.
[7] YANG Y,LUK W S.A framework for web table mining[C] .Proceedings of the 4th international workshop on Web information and data management.ACM,2002:3642.
[8] CHANG C H,KAYED M,GIRGIS M R,et al.A survey of web information extraction systems[J] .Knowledge and Data Engineering,IEEE Transactions on,2006,18(10):14111428.
[9] PASTERNACK J,ROTH D.Extracting article text from the web with maximum subsequence segmentation[C] .Proceedings of the 18th international conference on World wide web.ACM,2009:971980.
責任編輯(責任編輯:杜能鋼)