鄧良聰 晏先政
摘 要:BBS型網站作為整個互聯(lián)網生態(tài)中的重要一環(huán),其中蘊含著海量的數(shù)據(jù),也是我們獲取信息的重要來源。如何針對這些不同類型的論壇網頁,設計一種通用的算法,對其主題貼和回帖等有價值的信息進行提取,是文章所研究的主要內容。文章在基于對不同類型網頁結構的深入分析,并充分考慮了論壇網頁類型的不一致性、單個網站的易爬取性及通用爬蟲的不可靠性,設計了一種基于網頁縱向分析的提取方案,并詳細敘述了主題爬蟲的算法方案。
關鍵詞:BBS; 噪音處理; 聚類分析; 符號匹配
中圖分類號:F724.6 文獻標志碼:A 文章編號:2095-2945(2018)09-0132-02
Abstract: As an important part of the whole Internet ecology, BBS-type website contains a huge amount of data, and it is also an important source of information. How to design a general algorithm for these different types of forum pages to extract valuable information such as theme posts and reply posts is the main concern of this paper. In this paper, based on the in-depth analysis of different types of web pages, the inconsistency of web page types, the accessibility of individual web sites and the unreliability of common crawlers are fully considered. An extraction scheme based on longitudinal analysis of web pages is designed, and the algorithm of topic crawler is described in detail.
Keywords: BBS; noise processing; cluster analysis; symbol matching
引言[1]
在當今的大數(shù)據(jù)時代里,伴隨著互聯(lián)網和移動互聯(lián)網的高速發(fā)展,人們產生的數(shù)據(jù)總量呈現(xiàn)急劇增長的趨勢,當前大約每六個月互聯(lián)網中產生的數(shù)據(jù)總量就會翻一番?;ヂ?lián)網產生的海量數(shù)據(jù)中蘊含著大量的信息,已成為政府和企業(yè)的一個重要數(shù)據(jù)來源,互聯(lián)網數(shù)據(jù)處理也已成為一個有重大需求的熱門行業(yè)。借助網絡爬蟲技術,我們能夠快速從互聯(lián)網中獲取海量的公開網頁數(shù)據(jù),對這些數(shù)據(jù)進行分析和挖掘,從中提取出有價值的信息,能幫助并指導我們進行商業(yè)決策、輿論分析、社會調查、政策制定等工作。而大部分網頁數(shù)據(jù)是以半結構化的數(shù)據(jù)格式呈現(xiàn)的,我們需要的信息在頁面上往往淹沒在大量的廣告、圖標、鏈接等“噪音”元素中。如何從網頁中有效提取所需要的信息,一直是互聯(lián)網數(shù)據(jù)處理行業(yè)關注的重點問題之一。
但是,不同網站甚至網頁所使用的網頁格式、網頁結構和標簽體系可能是不一樣的,對于從互聯(lián)網中獲取的海量網頁的批量處理,如果還利用傳統(tǒng)的方法去對每個有差異的網頁逐一做人工分析,是不可行的。因此,如何從這些存在差異的網頁中快速有效的提取所需信息,就成為互聯(lián)網數(shù)據(jù)處理中一個急需解決的問題。盡管在傳統(tǒng)的網頁結構化數(shù)據(jù)提取智能分析實踐中,已經有很多開源的智能提取算法來分析新聞、文章類數(shù)據(jù),然而這些方法只適用于提取有大段文本的頁面結構數(shù)據(jù)信息,如只包含網頁作者、標題、正文內容及發(fā)布時間等內容的網頁。而對于BBS論壇型網頁,由于文本在網頁上相對分散且要提取的字段較多,傳統(tǒng)的算法不再適用,需要重新設計通用提取算法,針對帖子內容進行有效地分析提取。
基于上述背景,本文提出一種新的算法,并詳細描述了該算法的具體實現(xiàn)過程和原理
1 整體思路分析
通過對論壇網頁結構的深入分析,發(fā)現(xiàn)不同類型的論壇網頁具有一定的共性,比如所有網頁都有發(fā)回帖時間,且所有網頁的有效信息均散落在噪聲中。如果能先對噪聲做預處理,把主題帖和回帖從頁面結構中抽離出來,然后再對帖子內部的噪聲做處理,最后得到的文本信息即是需要提取的信息。
2 算法過程
2.1 外部噪聲處理
通過對網頁結構的深入分析,可以發(fā)現(xiàn)在需要提取的有效信息周圍,有很多的噪聲。由于本題對圖片音頻視頻不作考慮,因此,本文只討論對文本噪聲的處理[2]。對文本噪聲的具體處理步驟為:
首先,噪聲分類。按照網頁自上而下的分布規(guī)律,將這些文本噪聲大分為以下幾類:(1)導航條列表類噪聲;(2)廣告類噪聲;(3)側邊欄列表類噪聲;(4)帖子內部無用文本類噪聲;(5)底部欄文本類噪聲。
其次,噪聲處理[3]。在分析了所有樣本論壇的頁面結構后,可發(fā)現(xiàn)幾乎所有的主題貼都有發(fā)帖時間,所有的回帖都有回帖時間。而上面所提到的5類噪聲中除了第4類帖子內部無用文本噪聲包含著時間格式,其他類別的噪聲大多都不含時間格式文本。因此,利用正則時間匹配方式,就可以匹配掉除帖子內部噪聲之外的大多數(shù)噪聲。除此之外,有的論壇在底部欄也會有網站系統(tǒng)時間,為了防止此類噪聲的干擾,可提前去掉此類標簽。由此即可從圖2所示的整個網頁盒子中分離出主題帖及回帖的盒子。
至此,主題帖盒子和回帖盒子還是緊密相連的,為了達到最終提取網頁有效信息的目的,還需將這兩個盒子分開。因此,本文擬采用下一步中利用id聚類分析的方法來對主題帖和回帖進行分離。
2.2 基于主帖和回帖id的聚類分析
2.2.1 思路分析
在提取到帶有文本噪聲的主題帖和回帖文本信息后,確定哪部分是主題帖信息、哪部分是回帖信息是該部分要解決的關鍵問題。本文考慮將主題帖和回帖進行分塊,不斷縮小盒子模型,以獲取最終的有效信息。
各不同類型論壇網頁的結構大體相同,大部分網頁的HTML語法都是以
2.2.2 id屬性值轉換成ASCII做聚類分析
考慮到id屬性值一般由數(shù)字、下劃線、字母組成,我們無法直接對它們進行聚類。因此,在這里統(tǒng)一把它們轉換成相同格式的ASCII碼,利用上面介紹的系統(tǒng)聚類分析法,并結合Python和R語言的相關函數(shù)對這些ASCII碼做最短距離計算,即差值小的被聚為一類,差值大的自成一類。
2.2.3 從各類中確定主題帖類和回帖類
通過系統(tǒng)聚類分析方法,帖子的回帖信息被聚為一類,根據(jù)主題帖id屬性值與回帖id屬性值的差異大小,主題帖有可能會和回帖被分為一類,也有可能被單獨分成一類。在主題帖和回帖類的上面還有若干嵌套類,這些嵌套類一環(huán)套一環(huán),主題帖和回帖id也在這些嵌套類中。
接下來即要提取主題帖id和回帖id,自上而下的辦法就是刪除嵌套類,自下而上的解決方法就是直接取回帖類,核心的解決思想就是判斷倒數(shù)第二個類中是否含有回帖屬性(文本內容,時間)具體實施方法是,取最后一個類的的第一個id中的文本信息看其是否在倒數(shù)第二個類中出現(xiàn),若出現(xiàn),就是主題帖和回帖在一個類,最后一個類的第一個id即為主題帖。若不出現(xiàn),主題帖和回帖不在一個類,倒數(shù)第二個類的id即為主題帖,此時主題帖和回帖盒子被分開。
接下來,還需要對帖子內部的噪聲信息進行處理,以提取最終的有效信息。
2.3 內部噪聲處理
主題帖和回帖被分開后,其內部還有諸多無用文本噪聲,對于該部分噪聲,本文決定采用一種符號匹配的方法。即采用逗號進行正則匹配,只要帶有逗號的文本信息即是有用信息。對于大部分包含有價值信息的帖子內容而言,逗號出現(xiàn)的頻率最高,而且其他文本噪聲一般情況下是不會含有逗號等標點符號的。為了提高提取的精度和內容完整性,還可采用以下兩種方法對其進行改進:(1)建立標點符號的模型庫。例如句號、省略號、感嘆號這些常見的且不含在其他文本噪聲的中出現(xiàn)的符號,以提高提取的精度。(2)利用回帖結構的一致性,遍歷回帖類,記錄每個id中文本信息的個數(shù),通過符號匹配找到文本信息的位置,即處于第幾個文本信息,通過這個位置去查詢該類其他id中回帖的正文信息。這樣做的好處是,只要全部回帖只要有一個符號例如逗號,就可以查詢所有回帖內容,因為回帖結構固定。
2.4 信息提取
經過上述的噪音處理和聚類分組之后,即可把主題帖和回帖從頁面中抽離出來,接下來就可以從中提取相關信息。各個字段的提取方法如下:
標題:從
主題貼作者:從已經分好的主題帖類中進行檢索,遇到第一個帶超鏈接的文本信息即是作者。
主題帖:通過符號正則匹配提取。
主題帖時間:通過時間正則匹配提取。
回帖作者:從已經分好的主題帖類中進行檢索,遇到第一個帶超鏈接的文本信息即是作者。
回帖內容:遍歷回帖類,第一個匹配到標點符號模型庫的文本內容,即是回帖內容。記錄該回帖內容在單個回帖塊中的位置信息,根據(jù)該位置信息取出所有回帖塊中的回帖內容。
3 結束語
BBS論壇系統(tǒng)包含有大量信息,也一直為大量用戶所喜愛,其信息量必然還會持續(xù)增加,因此如何設計相關提取算法去提取有價值信息也非常有必要。本文提出的算法更具有通用性,并沒有只針對已有的一些大型開源論壇做信息提取。
將系統(tǒng)聚類分析的思想應用到分析網頁結構上,很好的解決了論壇網頁結構復雜,噪聲過多的情況。但由于部分網頁結構比較特殊,因此該算法還有許多可完善的地方。
參考文獻:
[1]劉金紅,陸余良.主題網絡爬蟲研究綜述[J].計算機應用研究,2007,24(10):26-29.
[2]蔣琴琴,宮哲,辛陽.基于HTML Parser的BBS信息抽取系統(tǒng)的設計與實現(xiàn)[J].自動化技術與應用,2012(01):32-37.
[3]鄧墾,胡勇.基于DOM樹的通用論壇抽取技術[J].網絡安全技術與應用,2015(01):20.
[4]胡雷芳.五種常用系統(tǒng)聚類分析方法及其比較[J].浙江統(tǒng)計,2007(04):11-13.