陳瑩 朱益多
摘 要 網(wǎng)絡(luò)作為巨大的數(shù)據(jù)源,如何從中提取人們所關(guān)心的信息,濾除無用信息,是當(dāng)今研究的熱點。網(wǎng)絡(luò)輿情分析中網(wǎng)頁信息提取技術(shù)的研究應(yīng)運而生。本文提出了一種基于DOM的網(wǎng)頁信息識別提取技術(shù),采用貝葉斯函數(shù)模型與閾值判別相結(jié)合的方式,有效提取網(wǎng)頁信息。通過大量實驗證明,此算法適用范圍廣且精確度高。
關(guān)鍵詞 網(wǎng)頁信息 貝葉斯 提取
中圖分類號:TP393.02 文獻標識碼:A
網(wǎng)絡(luò)輿情分析中的網(wǎng)頁信息提取技術(shù)通過對網(wǎng)頁進行處理,用一組信息描述所需要提取的信息,將其結(jié)構(gòu)化后保存到數(shù)據(jù)庫中,方便用戶獲取和利用這些信息。網(wǎng)頁信息抽取的關(guān)鍵是保證信息抽取算法的準確性和健壯性。但是該技術(shù)主要的問題是要面對不斷變化、更新的海量信息,并且大多數(shù)是以用于瀏覽,而不是用于數(shù)據(jù)操作和應(yīng)用的HTML文檔的形式出現(xiàn)。這就為網(wǎng)頁信息抽取帶來了極大的不方便。
目前,常見的提取技術(shù)有很多種,下面例舉幾種。傅里葉變換提取技術(shù),該技術(shù)采用窗口分段的方法把文字分段,對各個文本分段分別進行傅里葉變換,用頻域的歐式距離計算信號特性的差異程度來評價組間及組內(nèi)元素的差異程度。內(nèi)容相似度提取算法,該算法將復(fù)雜的網(wǎng)頁腳本進行簡化,并映射成一棵易于操作的樹型結(jié)構(gòu),利用文本相似度計算方法,通過計算樹節(jié)點中文本內(nèi)容與各級標題的相似度判定小塊文本信息的有用性,由此進行網(wǎng)頁清洗與正文抽取,獲得網(wǎng)頁文本信息。基于數(shù)據(jù)挖掘的抽取技術(shù),該技術(shù)使用文本分類、聚類、隱馬爾科夫模型等數(shù)據(jù)挖掘算法對網(wǎng)頁進行分析,將網(wǎng)頁代碼線性化重構(gòu)清理后,將頁面中的文本按格進行析取并聚類,最終生成正文。以上算法對于普通網(wǎng)頁可以得到很好的結(jié)果,但對于表格及圖片多的網(wǎng)頁不能適應(yīng)。因此,本文提出了一種基于DOM的網(wǎng)頁信息識別提取算法。
1 算法思想
觀察分析大量網(wǎng)頁可以發(fā)現(xiàn)雖然互聯(lián)網(wǎng)中網(wǎng)站復(fù)雜繁多,每個網(wǎng)站擁有各自的布局風(fēng)格,但是每個網(wǎng)站的版塊中,各個子網(wǎng)頁的布局在一定時期內(nèi)是基本相同的,這是因為這些網(wǎng)站在建立時運用了統(tǒng)一模板發(fā)帖。利用這一特性,本文提出了基于DOM結(jié)構(gòu)的網(wǎng)頁正文提取方法,這一方法采用數(shù)學(xué)模型對網(wǎng)頁內(nèi)容進行識別并提取,對于表格與圖片同樣適用。提取過程中采用時間分段方式,每隔一段時間下載大量網(wǎng)頁,從中選取最大的網(wǎng)頁提取模式并保存,之后利用該模式為其他的網(wǎng)頁提取正文。
2 方法步驟
具體算法步驟如下:(1)下載大量網(wǎng)頁, 選取最大的網(wǎng)頁建立DOM樹, 在代碼中添加路徑信息并清理布局樣式;(2)用遞歸的方法遍歷子樹。遍歷過程中采用貝葉斯函數(shù)構(gòu)建識別系統(tǒng);(3)構(gòu)建閾值P進行判別,如果大于閾值,則重復(fù)第二步;如果小于閾值則提取,結(jié)束。
以某網(wǎng)站論壇提取為例,通過爬蟲系統(tǒng)下載該論壇中的大量網(wǎng)頁,挖掘系統(tǒng)從中選取代碼篇幅較大的一個網(wǎng)頁作分析。貝葉斯函數(shù)識別會影響到其他網(wǎng)頁的正文提取,所以該部分需要很高的準確率,篇幅最大的網(wǎng)頁一般具有較長的正文,選取這種網(wǎng)頁可以提高模式提取的準確性。
對該網(wǎng)頁建立DOM樹,并對網(wǎng)頁進行必要的規(guī)范化處理。為了防止后續(xù)處理破壞了DOM樹的結(jié)構(gòu),導(dǎo)致后續(xù)無法找到原有的行進路徑,所以要給每個標簽添加上路徑編號,記錄該子樹為父節(jié)點的孩子編號。
在處理過程中,我們只關(guān)心網(wǎng)頁上顯示的內(nèi)容,而不關(guān)心網(wǎng)頁的布局、樣式等,因此刪除只影響布局的子樹,即刪除不包含文本內(nèi)容的子樹。在頁面中,除正文外,一般占有較大比重的是導(dǎo)航欄部分。這部分代碼擁有大量的超鏈接,并且這部分DOM樹的大部分子樹只含有少量文字或超鏈接,清除這部分代碼可以有效提高正文部分在網(wǎng)頁中所占的比重。根據(jù)這一性質(zhì),若某樹中只含有少量文字或超鏈接的子樹數(shù)占總子樹的比率超過了閥值T,那么認為該樹是導(dǎo)航欄,并將它刪除。
經(jīng)過前面步驟的清理之后,文字內(nèi)容長度已大大縮短,正文部分的字數(shù)在整個網(wǎng)頁文字內(nèi)容中所占的比重大大增加,因此遞歸提取出當(dāng)前DOM樹的最小子樹,即所要提取的正文部分。
3 閾值P的確定
在清理導(dǎo)航欄步驟實驗中,因為還有后續(xù)的處理,所以不能完全清理導(dǎo)航欄是可以接受的,但是將正文內(nèi)容誤判當(dāng)成是導(dǎo)航欄是不可接受的,因此實驗過程中引入簡單的效果評判機制:若導(dǎo)航欄完全被清除,則得2分;若只有部分導(dǎo)航欄被清除,則得1分;若完全沒有效果或出現(xiàn)了誤判,則得0分。在實驗過程中,選取來自15個網(wǎng)站各8個版塊總共58張網(wǎng)頁,對閥值P取不同的數(shù)值,計算每一個數(shù)值得到的清理效果得分總和。實驗結(jié)果顯示:當(dāng)P小于0.4時,所有網(wǎng)頁出現(xiàn)了誤判;當(dāng)P = 0.5、0.9時部分網(wǎng)頁也有一定的效果;大部分網(wǎng)頁在閥值P取值為0.6、0.7、0.8的時候有較好的效果,當(dāng)P = 0.6時效果略微優(yōu)于P = 0.7或0.8,然而在處理某個論壇的網(wǎng)頁時,取值0.6、0.7出現(xiàn)了誤判,在0.8、0.9時有較好的處理效果。最終當(dāng)P取0.9時得到了最好的導(dǎo)航欄清理效果,因此根據(jù)以上實驗結(jié)果,最終取P = 0.9。
4 結(jié)論
通過對多網(wǎng)站的測試,證明該算法對論壇的各種網(wǎng)頁有較好的提取效果,極少正文網(wǎng)頁、大量圖片網(wǎng)頁也能夠正確提取,準確率得到了97%。對于網(wǎng)頁的處理時間僅用時2秒多,每個論壇版塊一般只需要很少的字節(jié)來保存路徑信息,且不需要人工干預(yù),這比過去的算法有了很大提高,可以滿足輿情挖掘系統(tǒng)的快速處理要求。這說明基于DOM結(jié)構(gòu)采用貝葉斯函數(shù)進行識別提取的方法具有實際應(yīng)用意義。