《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于機器學習的網頁正文提取方法
基于機器學習的網頁正文提取方法
來源:微型機與應用2010年第12期
安增文, 王 超, 徐杰鋒
(中國石油大學(華東) 計算機與通信工程學院 計算機科學與技術系,山東 東營257000)
摘要: 先將網頁轉換為規(guī)范的DOM樹,然后計算每行文本的文本密度、與標題相關度等值,并將其作為輸入參數(shù)利用BP神經網絡進行訓練,進而形成抽取規(guī)則,最后通過實驗驗證該方法的可行性。
Abstract:
Key words :

摘  要: 先將網頁轉換為規(guī)范的DOM樹,然后計算每行文本的文本密度、與標題相關度等值,并將其作為輸入參數(shù)利用BP神經網絡進行訓練,進而形成抽取規(guī)則,最后通過實驗驗證該方法的可行性。
關鍵詞: 信息提取; 神經網絡; 統(tǒng)計學習

    隨著互聯(lián)網的普及,網絡成為人們獲取信息的重要途徑。而互聯(lián)網上的信息量也與日俱增,網頁上的內容除了主題內容外,通常都會在頁面中放置導航條以方便用戶訪問,還有如廣告、版權信息、歡迎信息等與主題無關的內容,我們稱之為"噪音"。怎樣去除這些噪音,將網頁中的正文內容提取出來,從而提高人們的閱讀效率,這在垂直搜索和數(shù)據挖掘方面具有重要意義。在這個領域已經發(fā)表了很多的研究成果,這些研究成果從不同的角度入手,有的只利用網頁本身的特征,有的還與其他技術相結合,使網頁正文抽取的準確性和完整性得到不斷提高,但還沒有一種方法能達到人們期望的程度,還需要不斷地研究和探索。
1正文抽取相關研究
    到目前為止,已經發(fā)表的網頁正文內容抽取方法有很多種,其分類方式的依據也不盡相同,下面介紹幾種較為常用的抽取方法。
    (1) 基于模板的方法
    這種技術依賴HTML文檔的內部結構特征來完成數(shù)據抽取,需要使用wrapper(包裝器)來抽取網頁中的正文內容。包裝器可以通過分析網頁源代碼來手工編寫,也可以通過程序自動或半自動的實現(xiàn)。手工編寫的方法一般都針對特定的網頁模式,其優(yōu)點是實現(xiàn)簡單、準確率高,缺點是對于不同的網頁模式或網頁結構發(fā)生變化時需要重新編寫包裝器,如果包裝器類型很多,包裝器的維護代價會很大,但由于該方法的準確性較高,所以在針對特定網站的抽取中應用很廣。自動或半自動地生成包裝器的方法在一定程度上減輕了維護包裝器的工作量,但是需要樣本學習,對用戶要求較高。
    (2) 基于統(tǒng)計的方法
    這種方法從頁面的不同角度分析它的統(tǒng)計特征,采用統(tǒng)計學的算法抽取正文。例如根據統(tǒng)計的文字數(shù)量、鏈接數(shù)量、標簽字符數(shù)量等計算出文本密度、鏈接密度等,并通過這些值來判斷哪些為正文文本、哪些為噪音內容。參考文獻[1]提出一種通過分析頁面文本密度進行正文抽取的方法。這種方法實現(xiàn)簡單,并且不需要編寫包裝器,但提取的準確率有限,有時會將與正文無關的版權聲明等當作正文內容提取出來。
    (3) 基于神經網絡的方法
    由于神經網絡具有優(yōu)越的非線性處理能力和泛化能力,因此在很多實際領域中都取得了傳統(tǒng)符號學習機制難以獲得的效果。文獻[2]搜索結點的輸入連接權,通過找出權值之和超過閾值的連接權子集來抽取規(guī)則。參考文獻[3]利用多層網絡度量輸入之間的接近程度,并利用單層抑制性網絡度量輸入、輸出相關度,從而獲得抽取規(guī)則。
    參考文獻[4]針對新聞類網頁及類似布局的頁面,在對頁面文本密度進行統(tǒng)計之后對文本密度與頁面標題、正文之間的對應關系進行分析,以對傳網絡(CPN)為工具,對文本密度在標題、正文等語義塊中的分布模式進行擬合,從而達到抽取目標信息的目的。
    參考文獻[5]中以行為單位對網頁源代碼中的每一行計算其相關的六個屬性,并以此作為BP神經網絡的輸入參數(shù)進行學習。由于該算法未對文本內容和標題的相關度進行判斷,所以導致會將一些網站的版權聲明當作正文內容錯誤地提取出來。所以通過計算文本內容和標題的相關度來區(qū)別是否為噪音是合理的。本方法以行為單位對DOM樹進行處理,將每行的文本密度、文本內容與標題的相關度作為輸入參數(shù)利用BP神經網絡進行訓練,從而提高信息抽取的準確度。
2 算法描述
2.1 BP神經網絡模型

    BP算法屬于Delta學習規(guī)則,是一種有教師的學習算法,是以網絡誤差平方和為目標函數(shù),按梯度法(gradient approaches)求其目標函數(shù)達到最小值的算法。一個典型的BP神經網絡包括:(1)由一個輸入層x、一個(或多個)隱藏層y和一個輸出層o組成的三層或多層結構;(2)處理單元(圖1中的圓圈)是網絡的基本組成部分,輸入層的處理單元只是將輸入值轉入相鄰的聯(lián)接權重,隱層和輸出層的處理單元將它們的輸入值求和并根據傳遞函數(shù)計算輸出值;(3)聯(lián)接權重(如圖1中v,w)將神經網絡中的處理單元聯(lián)系起來,其值隨各處理單元的連接程度而變化;(4)閾值,其值可為恒值或可變值,它可使網絡能更自由地獲取所要描述的函數(shù)關系;(5)傳遞函數(shù)F,它是將輸入的數(shù)據轉化為輸出的處理單元,通常為非線性函數(shù)。

     輸入層和輸出層的結點個數(shù)可以根據訓練集來確定,而隱藏層的結點卻需要試驗判斷。如果隱藏層結點數(shù)過少,網絡就不能具有必要的學習能力和信息處理能力。如果隱藏層結點數(shù)過多,不僅會大大增加網絡結構的復雜性,網絡在學習過程中更易陷入局部極小值,而且會使網絡的學習速度變得很慢。
2.2 利用人工神經網絡進行正文提取
    網頁的類型大體上可以分為三類:(1)文字多圖片少的內容型網頁,如新聞網頁;(2)以圖片為主文字介紹為輔的圖片型網頁,如圖片新聞;(3)以超鏈接為主的目錄型網頁,如新浪首頁。試驗中我們以內容型網頁作為主要研究對象。
2.2.1 網頁源文件預處理
    隨著web2.0的發(fā)展,網站為了定制網頁的表現(xiàn)形式和提高網頁視覺效果,在源文件中加入大量Script腳本和CSS代碼。所以在抽取正文之前要對網頁源文件進行預處理,去除與正文內容不相關的噪音內容。
    首先,由于html語言書寫的隨意性,導致有些網頁源代碼的不規(guī)范,例如標簽對缺失、嵌套不準確等。所以要將缺失的html標簽補齊、修改不正確的嵌套關系,并將源代碼轉換為DOM樹的形式。本文采用HTML Tidy工具來處理網頁。
    其次,要判斷網頁源文件的編碼,否則有可能抽取到亂碼。以源文件頭中的meta里聲明的charset為準,對于編碼為GBK、gb2312等格式的網頁,都將其轉為utf8格式。
    最后,Script標簽對之間和CSS內容都與正文內容無關,要全部刪除。另外,對于<a></a>等無用的空標簽對也一并刪除。
2.2.2 神經網絡訓練過程
    (1)頁面主題的提取。<title>中的內容一般為文章標題,但現(xiàn)在各大網站一般采用“文章標題+網站名”的形式放在<title>標簽中,且用符號“-”或“_”連接。在此將<title>中的文字內容取出,并將“-”或“_”符號后面的文字刪除;若有多個這種符號,則將最后一個這種符號后面的文字內容刪除,剩下的文字內容作為文章標題。因為標題中的文字內容一般會在正文內容中出現(xiàn),而非正文內容一般不會包含標題詞,所以可以將文本內容與文章標題的相關度作為判斷文本是否正文的一個因子。
    (2)統(tǒng)計各項值。以行為單位對DOM樹進行處理,依次統(tǒng)計每行的文本長度y和字符總長度z,用p表示該段的文本密度,則p=y/z,該行的文本內容為c。
    (3)計算相關度。分別對文章標題t和每行取出的文本內容c進行分詞,得到對應的標題詞項(t1,t2…tm)和文本詞項(c1,c2…cn),然后將每個標題詞項ti和文本詞項cj進行匹配,統(tǒng)計匹配次數(shù)并進行加權計算,得出其相關度,記相關度為s。為了提高相關度的準確性,本文借鑒搜索引擎中“倒排索引”的經驗,對“的”“是”等停止詞放在詞庫中進行分詞,但不對其進行相關度計算。
    采用BP神經網絡作為訓練模型,各層的激勵函數(shù)均為logsig,目標誤差設為0.05,學習率為0.2。該模型有12個輸入結點、5個隱藏層結點和一個輸出結點。其中12個輸入參數(shù)為:每行的文本長度、每行的字符總長度、每行的文本密度、每行文本內容與標題的相關度、上一行的這四個值和下一行的這四個值。具體步驟如下:
    (1)獲取訓練集并做好標記。
    (2)對網頁源文件進行預處理,生成相應的DOM樹。
    (3)從DOM樹中讀取一行文字,統(tǒng)計相應值,得出輸入向量和期望輸出。
    (4)輸入向量經過隱藏層結點和輸出層結點的傳遞函數(shù)得到實際輸出。
    (5)計算實際輸出向量和期望輸出向量的誤差,并計算各輸出誤差項和隱藏層結點誤差項。如果誤差在允許范圍內,則回到步驟(3),從DOM樹中讀取下一行文字繼續(xù)進行。如果誤差不在允許誤差范圍內,則根據計算出的誤差項計算出各權重的調整量,并調整權重。
    (6)返回步驟(4),繼續(xù)迭代,直到實際輸出向量和期望輸出向量的誤差滿足要求。返回步驟(3)讀取下一行內容,繼續(xù)進行學習。
    (7)標簽樹遍歷完畢,訓練結束。
    將DOM樹的各個元素偶對的相關值作為神經網絡的輸入,樣本標記結果作為輸出,通過學習算法自動生成抽取規(guī)則,對新的頁面應用抽取規(guī)則進行測試。
3 測試結果
    采用信息抽取技術中常用的查全率(R)、查準率(P)和F值三個評價指標對測試結果進行評價。查全率表示被正確抽取的信息的比例、查準率表示提取出來的正確信息的比率、F值是查全率和查準率的加權幾何平均值。用公式表示如下:P=(正確抽取出正文內容的網頁數(shù)/總網頁數(shù))*100%,R=(抽取出完整正文內容的網頁數(shù)/正確抽取出正文內容的網頁數(shù))*100%,在此將查全率和查準率看的同等重要,得出F=2PR/(P+R)。根據F值與1的靠近程度來判斷算法的好壞,越靠近1算法越好。
    從幾大新聞網站隨機抽取20個網頁進行人工分析和標記,按照以上方法進行訓練。為了測試抽取方法的可行性,再抽取一定量的網頁作為測試集,并利用訓練結果進行測試。測試結果如表1所示。

    在本文中通過統(tǒng)計DOM樹每一行的文本長度和字符長度,進而計算文本密度以及文字內容與標題的相關度,并將這些數(shù)值作為輸入參數(shù)輸入到人工神經網絡進行訓練。通過計算內容和標題的相關度可以避免將一些標簽字符較少、文字內容較多的版權聲明等內容提取出來,進而提高正文抽取的準確度。從測試結果看,該方法具有一定的可行性。下一步要尋求更好的相關度計算方法,更準確地計算正文和標題的相關度,進一步提高正文抽取的準確性。
參考文獻
[1]    ALEXJC. The easy way to extract useful text from arbitrary HTML [EB/OL].http://ai-depot.com/articles/ the easy-way-to-extract-useful-text-from-arbitrary-html/. April5, 2007.
[2]     FU L M. Rule learning by searching on adapted nets. Proceedings of the 9th National Conference on Artificial  Intelligence. Anaheim, CA: AAAI Press, 1991:590-595.
[3]     SESTITO S, DILLON T. Knowledge acquisition of conjunctive rules using multilayered neural networks. International    Journal of Intelligent Systems,1993, 8(7):779-805.
[4]     陳敬文,彭哲. 基于CPN網絡的Web正文抽取技術研究[J]. 現(xiàn)代圖書情報技術,2008(11):65-71.
[5]     游貴榮,陸玉昌. 基于統(tǒng)計和機器學習的中文Web網頁正文內容抽取[J]. 福建商業(yè)高等專科學校學報,2009,4(2):68-72.
[6]     樓順天,施陽. 基于MATLAB的系統(tǒng)分析與設計-神經網絡[M]. 西安電子科技大學出版社, 1998.
[7]     孫承杰,關毅.基于統(tǒng)計的網頁正文信息抽取方法的研究[J].中文信息學報, 2004,18(5):17-22.

此內容為AET網站原創(chuàng),未經授權禁止轉載。