摘要:目前互聯(lián)網(wǎng)上網(wǎng)頁來源眾多、結(jié)構(gòu)各異,針對(duì)網(wǎng)頁正文信息抽取精度及通用性問題,提出一種基于文本行特征的網(wǎng)頁正文信息抽取方法。首先根據(jù)正文特征將明顯不是正文內(nèi)容的噪聲去除,通過預(yù)處理將頁面轉(zhuǎn)換成文本和行號(hào)的集合,根據(jù)網(wǎng)頁正文文本行信息字?jǐn)?shù)較長(zhǎng)這一特點(diǎn),設(shè)定閾值并刪除不符合閾值要求的文本行。正文信息行距一般相隔較近且含有中文標(biāo)點(diǎn)符號(hào),根據(jù)這一特征進(jìn)一步刪除不符合要求的文本行,最后整合出網(wǎng)頁正文信息。將該方法與網(wǎng)頁正文提取工具印象筆記(Evernote)、有道剪報(bào)工具(YNote)進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明該方法在平均準(zhǔn)確率上高于YNote、Evernote,具有一定的通用性。
關(guān)鍵詞:網(wǎng)頁信息抽?。徽奶卣?;網(wǎng)頁去噪;正文抽取DOIDOI:10.11907/rjdk.172123
中圖分類號(hào):TP301文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):16727800(2017)0100015040引言
為了讓用戶快速獲取信息,Jim Cowie和Yorick Wilks[1]于1996年提出信息抽取這一概念。很多學(xué)者根據(jù)不同的抽取需求提出不同的信息抽取方法,而在網(wǎng)頁正文信息抽取方面熱度較高,但抽取方法普遍存在通用性不強(qiáng)的問題,究其原因有:網(wǎng)頁結(jié)構(gòu)千變?nèi)f化、網(wǎng)頁信息呈現(xiàn)方式各不相同、網(wǎng)頁噪聲等。文獻(xiàn)[2]指出噪聲數(shù)據(jù)占據(jù)了網(wǎng)頁的40%以上,并預(yù)測(cè)這個(gè)比例還會(huì)以每年6%以上的速度增長(zhǎng),這給Web信息檢索帶來嚴(yán)重干擾。網(wǎng)頁噪聲的存在直接導(dǎo)致檢索結(jié)果的準(zhǔn)確率降低[3]。因此,基于文本行特征過濾噪音信息,得到需要抽取的頁面正文信息,對(duì)于信息檢索具有重要意義。
Rahman、Hartono等[4]在2001年提出正文抽取一詞, 在Web信息正文抽取研究中,前人根據(jù)不同的抽取需求做了大量工作。
基于包裝器的方法主要利用網(wǎng)頁模塊化和結(jié)構(gòu)化特征提取網(wǎng)頁正文,該方法根據(jù)頁面布局特點(diǎn)、規(guī)律等設(shè)計(jì)統(tǒng)一模板,對(duì)得到的模板進(jìn)行分析以獲取頁面中的正文。文獻(xiàn)[5]在TSIMMIS中首次提出包裝器方法,該方法需要人工編寫抽取規(guī)則,對(duì)于結(jié)構(gòu)相似的模板頁面能精確定位到正文信息,但缺點(diǎn)是通用性不強(qiáng),只適用于特定頁面。此外,人工書寫規(guī)則容易出錯(cuò),不便于維護(hù)。
基于網(wǎng)頁標(biāo)簽的方法依賴HTML語言中的特定標(biāo)簽,如、
等,這類方法一般適用于正文處于特定標(biāo)簽的情況,對(duì)特征標(biāo)簽依賴很大,對(duì)頁面的內(nèi)容布局要求很高,無法處理其它布局類型的頁面。文獻(xiàn)[6]提出的基于統(tǒng)計(jì)的方法只適用于所有的正文信息放在一個(gè)table的情況,對(duì)于不是這種結(jié)構(gòu)布局的頁面則無法使用,通用性較低。文獻(xiàn)[7]根據(jù)標(biāo)簽對(duì)網(wǎng)頁進(jìn)行劃分,計(jì)算標(biāo)簽的長(zhǎng)寬比以及判定段落文字相關(guān)度來確定正文內(nèi)容。這類方法對(duì)table標(biāo)簽依賴較大,適用性不強(qiáng)。
基于文檔樹的方法[8]基本思路是:將HTML網(wǎng)頁解析成DOM樹的結(jié)構(gòu),通過統(tǒng)計(jì)節(jié)點(diǎn)的鏈接長(zhǎng)度、文本長(zhǎng)度、鏈接與文本數(shù)量比例等信息確定正文節(jié)點(diǎn),根據(jù)路徑相似度抽取正文,最終整合成網(wǎng)頁正文。這種方法預(yù)處理工作較復(fù)雜,效率較低。
基于視覺特征的頁面分塊算法VIPS(Vision based Page Segmentation)[9],根據(jù)頁面中的文字大小、背景顏色、邏輯塊和邏輯塊之間的間距等視覺特征來分割語義塊,達(dá)到頁面分塊效果,對(duì)頁面塊之間水平和垂直方向的分隔條賦予權(quán)值,并通過配置網(wǎng)頁信息抽取規(guī)則從中抽取信息。VIPS算法主要是將頁面進(jìn)行分塊,網(wǎng)頁信息提取需要信息抽取規(guī)則,使這種方法通用性受限,增加了算法復(fù)雜度。
上述方法或依賴人工書寫規(guī)則,或依賴標(biāo)簽,或預(yù)處理較復(fù)雜,導(dǎo)致通用性和準(zhǔn)確率降低。一個(gè)好的正文提取方法應(yīng)該具有較好的通用性和較高的準(zhǔn)確率[10],本文在前人研究的基礎(chǔ)上提出一種基于文本行特征的網(wǎng)頁正文信息抽取方法——contentExtractor,該方法對(duì)不同結(jié)構(gòu)的網(wǎng)頁有較好的適應(yīng)性。
1網(wǎng)頁正文信息抽取方法
基于文本行特征的網(wǎng)頁正文信息抽取方法,是一種利用正文文本行特點(diǎn)、網(wǎng)頁頁面結(jié)構(gòu)特征,將不符合要求的文本內(nèi)容及噪聲去除,保留符合正文特征要求的行文本方法。
1.1文本行特征
通過對(duì)大多數(shù)網(wǎng)頁統(tǒng)計(jì)發(fā)現(xiàn):雖然網(wǎng)頁內(nèi)容各異,結(jié)構(gòu)不同,但其文字信息均由3類組成:正文文本、標(biāo)簽文本以及錨點(diǎn)文本。正文文本通常含有較多的文字信息,文字?jǐn)?shù)量較大,同時(shí)含有較多的逗號(hào)、句號(hào)等標(biāo)點(diǎn)符號(hào),用于表達(dá)網(wǎng)頁的主題信息;標(biāo)簽文本同樣含有較少的字?jǐn)?shù),不含標(biāo)點(diǎn),主要用于說明;錨點(diǎn)文本含有的字?jǐn)?shù)較少,并且排列整齊,通常不含有標(biāo)點(diǎn),主要用于導(dǎo)航欄和廣告鏈接[11]。對(duì)于要抽取的正文來說,標(biāo)簽文本、錨點(diǎn)文本即為噪聲內(nèi)容,具有干擾影響,在抽取正文內(nèi)容時(shí)應(yīng)當(dāng)去除。根據(jù)網(wǎng)頁頁面正文文本字?jǐn)?shù)較多,文本長(zhǎng)度較大,含有標(biāo)點(diǎn)符號(hào)且正文內(nèi)容較集中這些特征,對(duì)網(wǎng)頁正文信息進(jìn)行抽取。
基于文本行特征的網(wǎng)頁正文信息抽取方法contentExtractor,主要分為預(yù)處理模塊、抽取模塊,流程如圖1所示。
1.2預(yù)處理模塊
通過人工分析網(wǎng)頁源文件發(fā)現(xiàn),有大量的非正文內(nèi)容噪聲存在于頁面之中,預(yù)處理模塊主要是將網(wǎng)頁源碼中的噪聲過濾掉,減少其對(duì)正文內(nèi)容提取的干擾。需要過濾的網(wǎng)頁噪聲包括:①內(nèi)部樣式文本,即樣式塊;②HTML標(biāo)簽之前的文本,網(wǎng)頁正文通常出現(xiàn)在標(biāo)簽之后;③JavaScript腳本;④HTML注釋。
具體步驟如下:①獲取頁面標(biāo)題,一般的網(wǎng)頁標(biāo)題處于區(qū)域中標(biāo)簽之間,在獲取網(wǎng)頁源碼后,提取標(biāo)簽之間的內(nèi)容作為頁面標(biāo)題并保存。若無法提取到標(biāo)題,則從區(qū)域中的標(biāo)簽提?。虎谑褂谜齽t表達(dá)式過濾上述網(wǎng)頁噪聲;③過濾所有的html標(biāo)簽,只保留文本信息;④刪除HTMl符號(hào)實(shí)體,如空格、制表符等;⑤統(tǒng)計(jì)每行的字符長(zhǎng)度并標(biāo)以行號(hào)。
經(jīng)過以上步驟預(yù)處理后,原始頁面源碼即轉(zhuǎn)換成了行號(hào)和頁面內(nèi)容組成的文本。
1.3抽取模塊
通過分析各類網(wǎng)站,可以發(fā)現(xiàn)正常情況下網(wǎng)頁正文部分所包含的字符數(shù)目最多,內(nèi)容較為集中,行距較近[12]。基于這種網(wǎng)頁特征,正文信息抽取過程如下:
(1)設(shè)置行文本長(zhǎng)度閾值L,遍歷預(yù)處理模塊中生成的文本,以當(dāng)前行文本長(zhǎng)度大于或等于閾值L的行作為正文文本的起始行l(wèi)inefirst1,以當(dāng)前字?jǐn)?shù)為0的行作為結(jié)尾行l(wèi)inelast1,這一部分正文組記為P1;繼續(xù)遍歷剩余文本,以同樣的規(guī)則確定正文組,直到得到初始文本中的所有正文組,依次記為P1、P2…Pn。
(2)設(shè)置行距閾值D,比較正文組之間的行距。若行距大于閾值D,則刪去這個(gè)行距下方的正文組,剩余正文組則為網(wǎng)頁的正文部分;若行距小于閾值D,則判斷所有的正文組均為網(wǎng)頁的正文部分。
(3)刪除步驟(2)中尾部正文組中不包含句號(hào)的句子,優(yōu)化提取的正文內(nèi)容。提取模塊流程如圖2所示。
整合抽取模塊中提取出來的內(nèi)容,將已確定為正文內(nèi)容的部分和標(biāo)題部分整合一并輸出,即為頁面正文信息。
2實(shí)驗(yàn)與分析
2.1實(shí)驗(yàn)數(shù)據(jù)及對(duì)比方法選取
大多數(shù)文獻(xiàn)采用的數(shù)據(jù)只選取大的門戶網(wǎng)站網(wǎng)頁作為提取頁面,這種情況會(huì)導(dǎo)致數(shù)據(jù)集不全面,存在一定的局限性。為了驗(yàn)證contentExtractor方法的通用性,本文采用的數(shù)據(jù)集除了新浪、網(wǎng)易、人民網(wǎng)、新華網(wǎng)、搜狐網(wǎng)等門戶網(wǎng)站的頁面外,還選取了新浪博客、CSDN、博客園等博客類網(wǎng)站頁面。
為驗(yàn)證contentExtractor方法的準(zhǔn)確性,將該方法與網(wǎng)頁正文提取工具印象筆記(Evernote)、有道剪報(bào)工具(YNote)進(jìn)行對(duì)比實(shí)驗(yàn)。對(duì)比工具如表1所示。
2.2評(píng)價(jià)方法
在頁面信息提取過程中,用提取準(zhǔn)確率P(Precision)和信息召回率R(Recall)兩個(gè)指標(biāo)衡量正文信息提取效果,其中準(zhǔn)確率P在已提取信息的網(wǎng)頁個(gè)數(shù)基礎(chǔ)上計(jì)算,而信息召回率R在網(wǎng)頁總數(shù)的基礎(chǔ)上計(jì)算 [13]。主要數(shù)據(jù)定義如表2所示。
2.3實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)運(yùn)行環(huán)境為Intel Core i74710MQ處理器,CPU為2.5GHz,內(nèi)存為8.00GB,操作系統(tǒng)為Windows。首先將前面提到的新聞網(wǎng)頁和博客網(wǎng)頁源代碼存儲(chǔ)在本地文件中,作為實(shí)驗(yàn)測(cè)試數(shù)據(jù),同時(shí)與另外2款網(wǎng)頁正文提取工具——有道剪報(bào)工具(YNote)、印象筆記工具(Evernote)進(jìn)行對(duì)比實(shí)驗(yàn)。在contentExtractor正文提取中,根據(jù)對(duì)實(shí)驗(yàn)數(shù)據(jù)的統(tǒng)計(jì)及分析,首先將閾值設(shè)置為:L=60,D=10,再根據(jù)控制變量法,在保持閾值D不變的情況下,改變閾值L的取值。根據(jù)實(shí)驗(yàn)結(jié)果,最終確定當(dāng)行文本長(zhǎng)度閾值L=80時(shí),提取效果較好(如果網(wǎng)頁正文的行文本長(zhǎng)度的最大值小于80,則行文本長(zhǎng)度的最優(yōu)閾值為60)。實(shí)驗(yàn)結(jié)果如圖3、圖4所示。
2.4實(shí)驗(yàn)分析
從圖3可以看出,contentExtractor在新浪、網(wǎng)易等新聞網(wǎng)頁中的提取準(zhǔn)確率比Evernote高出0.28%,和Ynote相比,兩者準(zhǔn)確率相近。在新浪博客等博客類網(wǎng)頁中,contentExtractor的準(zhǔn)確率均高于Ynote和Evernote,這是因?yàn)樵谶@類網(wǎng)頁部分含有評(píng)論區(qū)且評(píng)論區(qū)域有較多的文本內(nèi)容,在提取這類頁面信息時(shí)可能會(huì)將整個(gè)評(píng)論區(qū)內(nèi)容提取出來,造成準(zhǔn)確率降低。contentExtractor在平均準(zhǔn)確率上高于其余兩者。準(zhǔn)確率P和召回率R在某些情況下是矛盾的。從圖4可以看出,Evernote在召回率上高于Ynote,和contentExtractor在新聞?lì)愴撁嬷邢嗖畈淮?,而在博客類頁面中,contentExtractor召回率高出0.3%,整體平均值高于Evernote工具和Ynote工具,這在一定程度上驗(yàn)證了本文方法的有效性和通用性。
3結(jié)語
本文結(jié)合網(wǎng)頁頁面文本行特征進(jìn)行分析,提出了一種基于文本行特征的網(wǎng)頁正文信息抽取方法。通過采用相同數(shù)據(jù)集與其它提取工具進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果顯示本文方法表現(xiàn)出較好的抽取效果。通過分析抽取過程中的錯(cuò)誤頁面發(fā)現(xiàn)還存在一些不足,在提高抽取效率、頁面噪聲過濾等方面需要進(jìn)一步改進(jìn)和研究。從實(shí)驗(yàn)結(jié)果可以看出,contentExtractor方法的抽取并不針對(duì)特定的新聞網(wǎng)頁,對(duì)其它類型網(wǎng)頁同樣具有一定效果,該方法具有通用性。
參考文獻(xiàn)參考文獻(xiàn):
[1]COWIE J,LEHNERT W.Information extraction[J]. Communications of the ACM,1996,39(1):8091.
[2]GIBSON D, PUNERA K, TOMKINS A. The volume and evolution of web page templates[C].Special Interest Tracks and Posters of the 14th International Conference on World Wide Web,ACM,2005:830839.
[3]謝方立,周國(guó)民,王健.基于節(jié)點(diǎn)類型標(biāo)注的網(wǎng)頁主題信息抽取方法[J].計(jì)算機(jī)科學(xué),2016(S2):3149.
[4]RAHMAN A F R, ALAM H, HARTONO R. Content extraction from html documents[C].1st Int,Workshop on Web Document Analysis (WDA2001),2001:14.
[5]HAMMER J, MCHUGH J, GARCIAMOLIN H. Semistructured data: the TSIMMIS experience[C].Proceedings of the First EastEuropean Symposium on Advance in Databases and Information Systems,1997:18.
[6]孫承杰,關(guān)毅.基于統(tǒng)計(jì)的網(wǎng)頁正文信息抽取方法的研究[J].中文信息學(xué)報(bào),2004,18(5):1722.
[7]時(shí)達(dá)明,林鴻飛,楊志豪.基于網(wǎng)頁框架和規(guī)則的網(wǎng)頁噪音去除方法[J].計(jì)算機(jī)工程,2007,33(19):276278.
[8]林子熠,沈備軍.基于統(tǒng)計(jì)的自動(dòng)化Web新聞?wù)某槿J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(12):232235.
[9]CAI D, YU S, WEN J R, et al. VIPS a visionbased page segmentation algorithm[J]. Microsoft Research,2003.
[10]向菁菁,耿光剛,李曉東.一種新聞網(wǎng)頁關(guān)鍵信息的提取算法[J].計(jì)算機(jī)應(yīng)用,2016(8):20822120.
[11]孫桂煌,劉發(fā)升.基于正文特征的網(wǎng)頁正文信息提取方法[J].現(xiàn)代計(jì)算機(jī):專業(yè)版,2008(9):3438.
[12]陳千.主題網(wǎng)絡(luò)爬蟲關(guān)鍵技術(shù)的研究與應(yīng)用[D].北京:北京理工大學(xué),2015.
[13]秦成磊.Web文本挖掘若干關(guān)鍵問題研究及其在機(jī)電產(chǎn)品在線評(píng)測(cè)中的應(yīng)用[D].上海:上海應(yīng)用技術(shù)大學(xué),2016.
責(zé)任編輯(責(zé)任編輯:杜能鋼)