一種基于示例頁面的網(wǎng)頁正文提取方法
【專利摘要】本發(fā)明公開一種從網(wǎng)頁中過濾掉廣告、無關鏈接、圖片等噪聲信息,提取網(wǎng)頁正文的方法。其特征在于利用同一網(wǎng)站欄目頁面在結(jié)構(gòu)、內(nèi)容上的相似性,快速、準確地提取網(wǎng)頁正文。該方法首先由用戶指定一個示例頁面,然后系統(tǒng)利用頁面標簽,做初步過濾,再基于編輯距離計算待處理頁面和示例頁面文本間的相似性,快速識別頁面正文所處位置邊界,從而從含噪聲的頁面文本中提取純正的正文內(nèi)容。本發(fā)明具有操作簡單、易行,快速準確的特點。其技術方案可廣泛用于網(wǎng)頁文本信息采集、搜索、轉(zhuǎn)載、挖掘分析等系統(tǒng)中。
【專利說明】一種基于示例頁面的網(wǎng)頁正文提取方法
【技術領域】
[0001]本發(fā)明涉及網(wǎng)頁正文提取實現(xiàn)方法,特別是從網(wǎng)頁中提取正文文本信息的技術。【背景技術】
[0002]當前是一個信息爆炸的年代,收集和理解信息的能力,是很多企業(yè)取得競爭優(yōu)勢的關鍵。因特網(wǎng)的快速普及,使得網(wǎng)絡已成為信息產(chǎn)生、傳播、擴散、接收的主要場所。甚至傳統(tǒng)的報紙、雜志、書籍等也都開始電子化,以網(wǎng)絡文本的形式出現(xiàn)。為此快速收集網(wǎng)絡信息,并對其進行檢索、分類整理、轉(zhuǎn)載、存儲和挖掘分析成為人們的迫切需要。
[0003]HTML是創(chuàng)建網(wǎng)頁的一種標簽語言,現(xiàn)為國際標準,由萬維網(wǎng)聯(lián)盟(W3C)維護。任何網(wǎng)頁其實就是由HTML標簽組成的描述性文本,HTML標簽可以說明文字、圖形、動畫、聲音、表格、鏈接等。HTML的結(jié)構(gòu)包括頭部(Head)、主體(Body)兩大部分。頭部描述瀏覽器所需的信息,主體包含所要說明的具體內(nèi)容。盡管各個網(wǎng)站生成網(wǎng)頁的技術千差萬別,但在客戶瀏覽器端,所有的網(wǎng)頁都支持以HTML格式展現(xiàn)。都能通過規(guī)范的標準方式獲得相同的HTML文本信息。
[0004]現(xiàn)有的網(wǎng)絡正文抽取,一般采用的是基于規(guī)則模板的方法,即對特定的網(wǎng)站,通過分析其頁面結(jié)構(gòu),確定正文所處的頁面標簽邊界。這種方式存在很大缺陷:由于不同網(wǎng)站采用不同的技術開發(fā),而且網(wǎng)站頁面也可能頻繁改版,這就需要信息收集機構(gòu)花費大力的人力、物力去維護模板規(guī)則。即使有專業(yè)工具軟件的支持,模板規(guī)則的定義操作仍然非常復雜,尤其需要操作人員深入掌握網(wǎng)頁開發(fā)技術才能對網(wǎng)頁結(jié)構(gòu)正確理解,才能準確抽取。
[0005]本 申請人:通過對國內(nèi)外近百個知名網(wǎng)站的各個欄目進行統(tǒng)計分析,發(fā)現(xiàn)幾乎所有的文本網(wǎng)站都具有如下幾個特征:
1.在同一主題板塊,時間相距不是太遠(未改版的話)的兩個頁面通常具有相同的頁面布局,并有相似的廣告、熱點導航等。并且,不包括正文內(nèi)容在內(nèi)的其它網(wǎng)頁文本的相似度非常高;即基于模板的網(wǎng)頁正文提取方法,需要使用包裝器(Wrapper)來抽取網(wǎng)頁中的有效信息,包裝器是一個程序,該程序基于頁面的布局特征,針對特定的一類網(wǎng)頁,編寫解析器,解析出正文在頁面中的位置,這種方法的優(yōu)點是實現(xiàn)簡單,文本抽取正確率極高,但缺點是通用性差,每一類網(wǎng)頁都要編寫特定的包裝器,不適宜大規(guī)模頁面的抽取,另外如果某一類頁面發(fā)生了變化,那么該類頁面的包裝器就會失效,必須重新修改。
[0006]2.網(wǎng)頁正文本身在頁面文本中是連續(xù)聚集在一起的,很少在正文中間被廣告、導航文本插入打斷。
[0007]3.幾乎所有網(wǎng)站的網(wǎng)頁正文都被〈P〉或<div>兩個HTML標簽包含。缺點在于網(wǎng)頁正文中包含〈P〉或<div>兩個HTML標簽的段落太多,運算復雜,耗時較長,具體發(fā)明可參見申請?zhí)?010105533273,一種名為基于DIV位置的網(wǎng)頁正文抽取方法和裝置。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的在于提供一種讓用戶操作更為簡單,能過濾掉頁面中大量存在的廣告、熱點鏈接等噪聲信息的網(wǎng)頁正文提取方式,從而方便地從網(wǎng)頁中收集、轉(zhuǎn)載、挖掘分析所需的正文文本。
[0009]本發(fā)明由下述步驟構(gòu)成:(I)用戶或程序指定一個示例頁面;(2)利用網(wǎng)頁標簽初步過濾,獲得含正文的文本;(3)利用編輯距離模型計算待提取頁面文本與示例頁面文本間的相似性,識別正文邊界;(4)提取正文。
[0010]指定任意一個示例頁面即可對與示例頁面相似的待提取頁面進行正文提取。
[0011]對待提取頁面和示例頁面進行初步過濾處理以提高后續(xù)正文提取的準確性和效率,初步過濾的方法是利用符合W3C標準的innerHTML屬性獲得包含HTML標簽的內(nèi)容網(wǎng)頁正文,再用正則表達式去除HTML標簽,得到濾后的兩文本分別為相似文本。
[0012]這樣可確保該方法具有通用性,使得獲取的文本內(nèi)容與網(wǎng)站所基于的開發(fā)語言以及瀏覽器無關。為后面描述方便起見,稱該過濾后的兩文本分別為PageA和PageB。
[0013]對相似文本應用文本相似性分析技術識別網(wǎng)頁正文的開始和結(jié)束邊界,文本相似度的計算基于相似模型,需要計算兩個相似度序列值,步驟如下:
(1)對齊相似文本字符串的頭部,
(2)從上至下開始分別截取相似文本指定長度的子字符串,記作sl,s2,
(3)計算sl,s2的相似值,
(4)向后移動一個字符,繼續(xù)截取下一個指定長度的子字符串,仍記作sl,s2,
(5)轉(zhuǎn)到步驟(2)重復上述過程,直到末尾,將這樣獲得的相似序列記作FS;
類似地,
(1)對齊相似文本的尾部,
(2)從下至上開始分別截取相似文本指定長度的子字符串,記作sl,s2,
(3)計算sl,s2的相似值,
(4)向前移動一個字符,繼續(xù)截取下一個指定長度的子字符串,仍記作sl,s2,
(5)轉(zhuǎn)到步驟(2)重復上述過程,直到頭部,將這樣獲得的相似序列記作BS。
[0014]獲得兩個相似序列,據(jù)此識別正文的邊界,分析兩個序列,即開始和結(jié)束時相似度值比較高,中間相似度值迅速變小,出現(xiàn)轉(zhuǎn)折;
而這個轉(zhuǎn)折點對應的就是正文的邊界,其中序列FS的轉(zhuǎn)折點對應的是正文的頭部,序列BS的轉(zhuǎn)折點對應正文的尾部;
根據(jù)序列值的方式反推,即可得到正文在相似文本中的首尾邊界位置,從而可抽取出正文,將噪聲文本信息過濾掉。
[0015]本發(fā)明的優(yōu)點在于,通用性強,克服了不同類網(wǎng)頁需要不同包裝器來抽取網(wǎng)頁中有效信息的缺點,具有通用性。本發(fā)明具有操作簡單、易行,快速準確的特點,文本抽取準確率極高。其技術方案可廣泛用于網(wǎng)頁文本信息采集、搜索、轉(zhuǎn)載、挖掘分析等系統(tǒng)中。
【專利附圖】
【附圖說明】
[0016]附圖1為系統(tǒng)結(jié)構(gòu)框圖。
[0017]附圖2為頁面HTML代碼與DOM樹結(jié)構(gòu)示例。
[0018]附圖3兩個頁面文本的劃分示意。
[0019]附圖4兩個頁面文本的實際例子。[0020]附圖5為流程框圖。
【具體實施方式】
[0021]本發(fā)明的特征在于,用戶無須了解頁面的布局結(jié)構(gòu)和實現(xiàn)技術,而僅通過指定一個示例頁面,即相當于告知了計算機提取正文的方式,從而無須進行復雜的操作來定義和維護頁面的模板規(guī)則。其在計算機中的操作步驟非常簡單,用戶只需以下兩個步驟即可輕松開始頁面正文提取工作:
(1)添加新任務到任務列表
對每個任務,用戶僅須提供以下4方面的信息:
i 一個示例頁面網(wǎng)址;
% 待采集頁面網(wǎng)址變化規(guī)律信息;
f 采集周期信息;
正文存儲信息
(2)啟動系統(tǒng)進行自動抽取(如附圖1的步`驟12)
系統(tǒng)將自動讀取任務列表,根據(jù)各個任務信息,輪番、定時地依據(jù)所給的網(wǎng)址變化規(guī)律獲取待采集網(wǎng)頁文本,抽取正文,保存/發(fā)布到指定位置。
[0022]如附圖1所示為本發(fā)明的組成結(jié)構(gòu),主要包括以下功能模塊:任務定義模塊11、頁面采集引擎模塊12、正文提取引擎模塊13、存儲/發(fā)布引擎模塊18。任務定義模塊11實現(xiàn)用戶操作界面,指定任務信息,添加到任務列表13中。任務列表為一格式化的文本文件,保存了各條任務信息,每條任務信息包含示例頁面網(wǎng)址、待采集頁面網(wǎng)址變化規(guī)律、采集周期、存儲/發(fā)布方式等。頁面采集引擎12讀取任務列表13中的數(shù)據(jù),根據(jù)每個任務的采集周期,按時訪問因特網(wǎng)14采集相應網(wǎng)頁信息,形成HTML文本15。正文提取引擎16則根據(jù)HTML文本15,和示例網(wǎng)頁文本,基于本發(fā)明的正文提取技術,從網(wǎng)頁中提取正文,濾除廣告、導航等噪聲信息,形成純文本17。最后,存儲/發(fā)布引擎18將根據(jù)任務信息指定的存儲/發(fā)布方式進行結(jié)果19的發(fā)布。
[0023]如附圖1所示的功能結(jié)構(gòu)中,頁面采集引擎12主要通過文檔對象模型(DocumentObject Model)即DOM技術實現(xiàn)。DOM是一個跨平臺、與語言無關的表示和操作HTML、XHTML、XML對象的標準(可參見http://www.w3.0rg/dom/)。任何頁面的結(jié)構(gòu)都能用DOM的標簽樹表示出來,如附圖2所示,左邊為一網(wǎng)頁的HTML代碼,而右邊為其對應的DOM標簽樹。利用DOM的應用程序接口(API)可以方便地訪問和操作各個DOM結(jié)點對象。例如,基于Microsoft.Net框架,其提供的HtmlElement對象的innerText屬性就表示<html> </html>標簽中所有包含的去除了 html標簽的文本。(參見http://msdn.microsoft.com)?;诖?可獲得頁面的包含正文的文本信息,而排除了大部分的圖片、視頻等多媒體噪聲。并可基于正則表達式初步過濾部分噪聲,而不丟失正文內(nèi)容。
[0024]對待提取頁面和示例頁面進行初步過濾處理以提高后續(xù)正文提取的準確性和效率。初步過濾的方法是利用符合W3C標準的innerHTML屬性獲得包含HTML標簽的內(nèi)容網(wǎng)頁正文,再用正則表達式去除HTML標簽。這樣可確保該方法具有通用性,使得獲取的文本內(nèi)容與網(wǎng)站所基于的開發(fā)語言以及瀏覽器無關。為后面描述方便起見,稱該過濾后的兩文本分別為PageA和PageB,,即相似頁面,參見附圖4。
[0025]正文提取引擎是本發(fā)明的核心和關鍵。其技術出發(fā)點是應用到了本說明書【背景技術】部分指出的各網(wǎng)站網(wǎng)頁文本所具有的三個普遍特征?;驹黻U述如下:如附圖3所示,設PageA是示例頁面所對應的經(jīng)初步過濾后的文本,而PageB則是待提取頁面經(jīng)初步過
濾后的文本。由于正文是連續(xù)聚集在一起的,因此可將兩個文本都劃分成三個部分,即Cia
,Njt,Cat以及Cm,Nb,C?。其中,Na代表示例頁面的正文,而1?代表待提取頁面
的正文。而1^, Cat則分別代表示例頁面正文前后的噪聲文本,C^a,C3b則代表待提頁面正文前后的噪聲文本。舉個實際例子,如附圖4所示,這是兩個實際頁面經(jīng)初步過濾之后的文本。由于篇幅限制,這圖中用“…”代替了部分文本,并且為清楚起見,頁面正文用下劃線進行了標注。例如,對 PageA, “German Chancel1r…Reuters reported” 就是正文,
即圖 3 中的Na,而“British Broadcasting—2010 22:31 UK” 即為圖 3 中的C., “PrintSponsor…you are able to do s0.”即為示例頁面和待提頁面在結(jié)構(gòu)和內(nèi)容上很相似,一般有O而1^和1^則存在非常大的差異,相似程度極低。據(jù)此,可基于兩文本相似度的變化情況,找到Nj^PNb的首尾邊界,最終將1?從PageB中提取出來。
圖1中的任務定義模塊11可基于任何常見的編程言來實現(xiàn),如Microsoft.Net下的Visual Basic, C++,C#等實現(xiàn)。任務列表可以文件的形式存在,具體格式,開發(fā)人員可自由定義。
[0026]圖1中的頁面采集引擎模塊12,基于DOM和正則表達式可比較方便地實現(xiàn)頁面數(shù)據(jù)的采集和文本的初步過濾。其實現(xiàn)比較容易,具體編程工具可基于Microsoft.Net,也可基于Java,或其它支持DOM對象和正則表達式的開發(fā)工具,開發(fā)人員可根據(jù)具體需要選擇。
[0027]圖1中正文提取引擎模塊,其實現(xiàn)的一個關鍵是計算文本間的相似性,這可基于Levenshtein的編輯距離來實現(xiàn),Levenshtein編輯距離定義如下:
【權(quán)利要求】
1.一種基于示例頁面的網(wǎng)頁正文提取方法,其特征在于,由下述步驟構(gòu)成: (1)用戶或程序指定一個示例頁面; (2)利用網(wǎng)頁標簽初步過濾,獲得含正文的文本; (3)利用編輯距離模型計算待提取頁面文本與示例頁面文本間的相似性,識別正文邊界; (4)提取正文。
2.根據(jù)權(quán)利要求1所述的一種基于示例頁面的網(wǎng)頁正文提取方法,其特征在于,指定任意一個示例頁面即可對與示例頁面相似的待提取頁面進行正文提取。
3.根據(jù)權(quán)利要求1所述的一種基于示例頁面的網(wǎng)頁正文提取方法,其特征在于,對待提取頁面和示例頁面進行初步過濾處理以提高后續(xù)正文提取的準確性和效率,初步過濾的方法是利用符合W3C標準的innerHTML屬性獲得包含HTML標簽的內(nèi)容網(wǎng)頁正文,再用正則表達式去除HTML標簽,得到濾后的兩文本分別為相似文本。
4.根據(jù)權(quán)利要求1或3所述的一種基于示例頁面的網(wǎng)頁正文提取方法,其特征在于,對相似文本應用文本相似性分析技術識別網(wǎng)頁正文的開始和結(jié)束邊界,文本相似度的計算基于相似模型,需要計算兩個相似度序列值,步驟如下: (1)對齊相似文本字符串的頭部, (2)從上至下開始分別截取相似文本指定長度的子字符串,記作sl,s2, (3)計算sl,s2的相似值, (4)向后移動一個字符,繼續(xù)截取下一個指定長度的子字符串,仍記作sl,s2, (5)轉(zhuǎn)到步驟(2)重復上述過程,直至末尾,將這樣獲得的相似序列記作FS; 類似地, (1)對齊相似文本的尾部, (2)從下至上開始分別截取相似文本指定長度的子字符串,記作sl,s2, (3)計算sl,s2的相似值, (4)向前移動一個字符,繼續(xù)截取下一個指定長度的子字符串,仍記作sl,s2, (5)轉(zhuǎn)到步驟(2)重復上述過程,直至頂部,將這樣獲得的相似序列記作BS。
5.根據(jù)權(quán)利要求4述的一種基于示例頁面的網(wǎng)頁正文提取方法,其特征在于,獲得兩個相似序列,據(jù)此識別正文的邊界,分析兩個序列,即開始和結(jié)束時相似度值比較高,中間相似度值迅速變小,出現(xiàn)轉(zhuǎn)折的轉(zhuǎn)折點對應正文的邊界,其中序列FS的轉(zhuǎn)折點對應的是正文的頭部,序列BS的轉(zhuǎn)折點對應正文的尾部;根據(jù)序列值的方式反推,即可得到正文在相似文本中的首尾邊界位置,從而可抽取出正文,將噪聲文本信息過濾掉。
【文檔編號】G06F17/30GK103699591SQ201310665878
【公開日】2014年4月2日 申請日期:2013年12月11日 優(yōu)先權(quán)日:2013年12月11日
【發(fā)明者】蘭秋軍 申請人:湖南大學