摘要:針對當(dāng)前Internet中大量出現(xiàn)的博客網(wǎng)頁,通過分析博客網(wǎng)頁自身的結(jié)構(gòu)特點和技術(shù)特征,結(jié)合網(wǎng)頁的DOM節(jié)點特性,提出了基于DOM樹分析和模式匹配的博客網(wǎng)頁自動識別算法,并通過實驗對本算法進(jìn)行了驗證,指出需進(jìn)一步完善的研究內(nèi)容和方向。
關(guān)鍵詞:博客網(wǎng)頁;文檔對象模型結(jié)構(gòu)分析;特征發(fā)現(xiàn)
中圖分類號:TP391文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2008)05-1489-03
博客,即Blog或Weblog。這一詞源于WebLog(網(wǎng)絡(luò)日志)的縮寫,是一種網(wǎng)絡(luò)個人信息的發(fā)布形式。一個Blog其實就是一個網(wǎng)頁,通常是由簡短并且經(jīng)常更新的文章所構(gòu)成;在文章中可以插入超鏈接、電子郵件、圖像、動畫、電影、代碼、引用等資源,這些張貼的文章又都是按照年份和日期進(jìn)行排列的。應(yīng)該說,博客是一個個人性與公共性相結(jié)合的媒介,它充分利用了網(wǎng)絡(luò)雙向互動、超文本鏈接、動態(tài)更新、覆蓋范圍廣的特點。其精髓不是表達(dá)個人思想或是記錄個人的日常經(jīng)歷,而是從個人的角度來精選和鏈接互聯(lián)網(wǎng)上最具有價值的信息、知識與資源,為他人提供共享資源。現(xiàn)在,人們以博客來共享思想與資源,并且進(jìn)行相互學(xué)習(xí)的行為已經(jīng)變得越來越普遍。博客不僅僅是一個流行的媒體表達(dá)工具,其內(nèi)容更是成為了人們認(rèn)知世界的窗口。近年來,博客的數(shù)量正在以每六個月翻一番的速度快速膨脹。Technorati的報告表明,超過11%的Internet用戶是博客的讀者,并且每天有超過7萬的新博客在誕生,同時,每天全球有2 000~2 400萬個博客網(wǎng)頁在更新。如此大規(guī)模和快速增長的趨勢,使得對于博客內(nèi)容的分析和管理變得愈加重要。而作為博客內(nèi)容分析和管理的第一步,首先要能夠自動化地將博客網(wǎng)頁與其他傳統(tǒng)網(wǎng)頁相區(qū)分,以便于后續(xù)的內(nèi)容分析和管理工具能夠更為有針對性地進(jìn)行分析處理。本文的主要研究就是從Internet中自動進(jìn)行博客網(wǎng)頁類型的識別。
1博客與傳統(tǒng)網(wǎng)頁的特性差異
1.1博客的基本特征和功能要素
因為商業(yè)和技術(shù)發(fā)展以及定位的不同,Internet上的博客網(wǎng)站在形式、內(nèi)容、功能和排版布局等方面均有很大的差異。但是,任何一個博客網(wǎng)站都共同擁有以下五條基本特征和功能要素。只有具備了這樣的基本功能特征,才認(rèn)為其是一個博客網(wǎng)站,也才能成為本文研究的對象。
1)RSS技術(shù)——聚合RSS是一種技術(shù)規(guī)范的簡稱,是一種遵循W3C RDF規(guī)范的XML格式,是一種多用途、可擴展的元數(shù)據(jù)描述及聯(lián)合推廣格式。它允許互聯(lián)網(wǎng)站點制作人員為內(nèi)容整合客戶端提供選擇性的、匯總過的Web內(nèi)容。
2)Trackback技術(shù)——引用通告Trackback最早是Movable上的功能,后來成為Blog的標(biāo)準(zhǔn)配置,它是一種將全世界無數(shù)個Blog連接起來的功能。通過Trackback,用戶可以在自己的Blog上就別人發(fā)表的某篇文章作評論和延伸,并通知對方引用了其文章中的內(nèi)容。只要對方的Blog也支持Trackback,在發(fā)布自己的文章時,將同時向?qū)Ψ紹log發(fā)出一個Trackback ping,向刊載被評論文章的服務(wù)器發(fā)送用戶寫的Blog的地址、標(biāo)題和部分征文。這樣當(dāng)其他人瀏覽那篇文章時,就能夠看到用戶的部分評論和正文,感興趣的話他們還可以通過鏈接閱讀用戶評論的詳細(xì)內(nèi)容。同樣,別人也可以使用Trackback功能對用戶Blog中的某篇文章加以評論,在該文章中留下相應(yīng)的引申鏈接。
3)Comments——評論也稱做回復(fù)功能,用戶可以借此對該Blog進(jìn)行評論,這是讀者與Blogger相互交流的最直接渠道。
4)Archive——歸檔也稱做索引功能,通常是按月份進(jìn)行Blog文件的歸檔(也有按分類歸檔的),便于大家在一個頁面就查找到歸檔日期內(nèi)的所有Blog文章,通常都生成靜態(tài)頁面,這也是有利于搜索引擎搜錄的一個重要手段。
5)TimeStamp——時間戳每個Blog均可以看到的最基本的元素,這也是Blog最基本的特征,根據(jù)日期可以檢索到當(dāng)日發(fā)表的Blog。
1.2博客網(wǎng)頁的主要形式特征
通過對于現(xiàn)有的國內(nèi)外博客網(wǎng)站和其他技術(shù)文檔分析了解,筆者發(fā)現(xiàn),從網(wǎng)頁類型來看,博客網(wǎng)頁主要分為兩大類型,即博客的個人首頁和具體的文章頁。下面就這兩個基本類型的網(wǎng)頁形式特征進(jìn)行簡要的說明描述。
1)博客個人首頁在筆者研究的三十多個國內(nèi)外知名或少部分不知名博客網(wǎng)站中,博客個人首頁是變化最大、個性化最強的網(wǎng)頁界面。博客可以根據(jù)博客網(wǎng)站提供的工具進(jìn)行個人首頁的內(nèi)容、風(fēng)格和布局設(shè)置等。不同的博客網(wǎng)站之間,同一博客網(wǎng)站的不同博客之間,其個人首頁的版面設(shè)計與布局均可能存在非常大的差異。
雖然有這樣一些大的差異存在,但通過分析發(fā)現(xiàn),作為博客的個人首頁,其仍然遵循了以下的一些原則和規(guī)律:a)時間戳的存在;b)相鄰區(qū)域的多個相似格式的網(wǎng)頁片段;c)逆序時間戳;d)在含時間戳的網(wǎng)頁片段中必然含有類似“評論(××)”“引用(××)”“閱讀(××)”這樣的文字字眼出現(xiàn),而這些文字字眼必然也是一些同一網(wǎng)站內(nèi)的相關(guān)鏈接。
2)文章詳情頁根據(jù)不同博客網(wǎng)站的設(shè)計和博客個體的風(fēng)格設(shè)置不同,博客具體文章的詳細(xì)內(nèi)容頁在布局排版和設(shè)計上也有著自己的不同。但是,作為博客類網(wǎng)頁,其必然滿足博客的基本特征,同時,也擁有一些自身的特點:a)正文時間戳的存在。b)在正文內(nèi)容之下如果有評論,則該內(nèi)容必然遵循相似的格式。c)在評論中,評論者的名稱一定是一個鏈接,該鏈接有可能是同一網(wǎng)站的鏈接,也有可能是指向其他的網(wǎng)站。同時需要注意的是,該鏈接不一定指向一個博客頁面。
1.3易與博客網(wǎng)頁發(fā)生混淆的一些常見網(wǎng)頁類型
1)留言類網(wǎng)頁很多商業(yè)網(wǎng)站或者一些其他的營銷網(wǎng)站,均有提供一個在線留言的功能。針對這些在線留言,往往也會有時間戳的存在和大量的留言反饋信息,很容易與博客正文詳情網(wǎng)頁相混淆。
2)社區(qū)類網(wǎng)頁例如攜程網(wǎng)的社區(qū),這類網(wǎng)頁主要以圖文內(nèi)容為主,同時也允許用戶進(jìn)行留言反饋。且社區(qū)內(nèi)的會員之間也可以相互查看鏈接,從而形成了一個類似博客的鏈接圈。但是,應(yīng)該認(rèn)識到,其不具備1.1節(jié)中博客的五個基本特征。因此,不把它們認(rèn)同為博客網(wǎng)頁,而需將它們從博客網(wǎng)頁識別中區(qū)分出去。
根據(jù)上述的分析研究,筆者發(fā)現(xiàn),博客網(wǎng)頁在網(wǎng)頁結(jié)構(gòu)上有著自己特有的特點和結(jié)構(gòu),同時,可以通過分析定義同一域名地址下的其他頁面類型,也可以輔助識別博客網(wǎng)頁。因此,設(shè)計實現(xiàn)了一個基于DOM的自動Blog網(wǎng)頁識別算法,具體內(nèi)容見下章。
2基于DOM的自動識別算法
在應(yīng)用該自動識別算法之前,作以下假定:
假定1同一博客網(wǎng)站下的眾多博客內(nèi)容,必然具有相同的域名地址。
假定2所有的博客網(wǎng)頁均必然完全符合1.1節(jié)中的五個基本特征和功能要素。
2.1網(wǎng)頁格式調(diào)整
通常,由于網(wǎng)頁制作人員或動態(tài)網(wǎng)站程序的一些小失誤,Internet上的很多網(wǎng)頁并沒有嚴(yán)格遵循W3C組織的HTML語法標(biāo)準(zhǔn),可能存在標(biāo)簽標(biāo)志不完整或遺漏的現(xiàn)象,這樣就給網(wǎng)頁DOM分析帶來了噪聲干擾。為了避免這種干擾,筆者增加了預(yù)處理環(huán)節(jié),通過使用Tidy提供的HTML完善模塊,對原始網(wǎng)頁中的相關(guān)HTML標(biāo)簽進(jìn)行完善性修復(fù)。
2.2基于DOM算法的網(wǎng)頁分塊
按照W3C組織所指定的標(biāo)準(zhǔn),每一個網(wǎng)頁的最終HTML結(jié)構(gòu)均可以對應(yīng)地描述成DOM樹的形式。DOM定義了HTML文檔的邏輯結(jié)構(gòu),提供了一種對網(wǎng)頁中的數(shù)據(jù)及內(nèi)容進(jìn)行管理和操作的途徑。DOM將整個文檔的內(nèi)容分別抽象為不同的對象,用節(jié)點的形式予以表示,如標(biāo)簽節(jié)點、文檔類型節(jié)點、文本節(jié)點、注釋節(jié)點、屬性節(jié)點等。再用類似于父子的關(guān)系將各節(jié)點按照不同層次有順序地組織起來,形成樹型結(jié)構(gòu)。下面是一段從HTML代碼中抽取出的一段表格的代碼(圖1(a))與DOM樹(圖1(b))對應(yīng)的實例。其中用矩形框表示標(biāo)簽節(jié)點,而在標(biāo)簽的起始標(biāo)記和終止標(biāo)記中出現(xiàn)的文字部分則表示為一個文本節(jié)點(橢圓框)。
網(wǎng)頁的DOM樹描述了網(wǎng)頁不同于純文本的結(jié)構(gòu)特點,提供了對網(wǎng)頁結(jié)構(gòu)進(jìn)行分析的方法以及編程的接口。參照DOM樹,并結(jié)合Blog自身的特點,作了以下完善:a)定義時間戳的表示。b)以時間戳為標(biāo)志,構(gòu)建以時間戳為最親子節(jié)點的DOM子樹。該子樹以最鄰近的〈table〉或〈div〉標(biāo)簽為根節(jié)點,同時,該子樹中僅包含一個時間戳。c)將b)中得到的DOM子樹向外延擴展,同時,確保該DOM子樹中僅包含了一個時間戳信息。
經(jīng)過上述步驟后,即可將原有的Web網(wǎng)頁中的DOM樹結(jié)構(gòu)同步解析為多個具有時間戳標(biāo)志的DOM子樹。下面將針對這些DOM子樹進(jìn)行模式匹配,以確定其是否符合Blog的標(biāo)準(zhǔn)特征。
2.3模式匹配
由于當(dāng)前的Blog網(wǎng)頁中絕大部分都是根據(jù)動態(tài)網(wǎng)頁技術(shù)進(jìn)行設(shè)計與布局開發(fā),同一Blog網(wǎng)頁中的相同功能模塊必然存在其DOM樹結(jié)構(gòu)的一致性。比如Blog中的留言部分,如果有多人留言,則任意留言部分的DOM結(jié)構(gòu)一定都是相同的,并且位置也是接近的。這就為進(jìn)一步的模式匹配提供了依據(jù)。
1)DOM子樹分組根據(jù)2.2節(jié)中獲取的DOM子樹位置特征,將相鄰的DOM子樹分為一組,然后再針對同組中的DOM子樹進(jìn)行模式匹配比較。
2)DOM結(jié)構(gòu)模式匹配比較在進(jìn)行匹配時,主要關(guān)注DOM標(biāo)簽結(jié)構(gòu)的比較,而不關(guān)心其內(nèi)部的文字內(nèi)容。在比較過程中,遵循以下算法流程:
procedure DOM子樹匹配算法
begin
根據(jù)DOM子樹的相鄰距離進(jìn)行兩兩分組,將DOM子樹距離為1的兩個子樹并為一組
針對以上分組,將其分組間相鄰距離為1的分組進(jìn)一步合并,最終形成時間戳分組序列。
for每個分組內(nèi)部的DOM子樹
進(jìn)行DOM子樹的DOM標(biāo)簽匹配,若其標(biāo)簽不匹配,則返回失敗信息
if匹配失敗
則該網(wǎng)頁不是Blog網(wǎng)頁
else
匹配成功,進(jìn)入2.4節(jié)的進(jìn)一步識別中
end
2.4協(xié)同識別(依賴同一域名下的其他網(wǎng)頁輔助)
如1.3節(jié)中所述,由于博客網(wǎng)頁特征易與留言板或社區(qū)類的其他網(wǎng)頁混淆,通過協(xié)同識別方式,將上一步中識別出的Blog網(wǎng)頁與該網(wǎng)頁內(nèi)相同域名下的其他網(wǎng)頁進(jìn)行分析,以進(jìn)一步提高Blog網(wǎng)頁的識別準(zhǔn)確率。
Blog網(wǎng)頁中同域名網(wǎng)頁鏈接的獲取與分類。
根據(jù)DOM樹中的分解,可以很容易地找出該Blog網(wǎng)頁中的所有鏈接地址。但是,同一網(wǎng)頁中的不同鏈接由于網(wǎng)頁本身的內(nèi)容及廣告等的需要,有著不同的意義。對該Blog網(wǎng)頁中的所有鏈接進(jìn)行了分類篩選,并賦予不同權(quán)重(表1)。
3相關(guān)實驗
通過之前的分析方法將該驗證系統(tǒng)與40 000多條網(wǎng)頁地址中的相關(guān)網(wǎng)頁內(nèi)容進(jìn)行了分析測試,并獲取相關(guān)實驗數(shù)據(jù)及過程如下:
a)實驗用網(wǎng)頁的獲取。通過百度和Google網(wǎng)站的搜索功能,分別通過關(guān)鍵詞“論壇”“博客”“BBS”搜索了130個相關(guān)網(wǎng)站,并從這些網(wǎng)站中提取了17 852個類似Blog的網(wǎng)頁。此外,通過Blogdigger網(wǎng)站,隨意提取了15 000條Blog網(wǎng)頁。兩部分網(wǎng)頁合并后,總的網(wǎng)頁數(shù)量為32 852條。
b)分析識別結(jié)果。在以上的32 852條網(wǎng)頁記錄中,根據(jù)本文提及的方法進(jìn)行了分析識別判斷,并最終將其分為了Blog網(wǎng)頁和非Blog網(wǎng)頁兩類。在對已識別為Blog網(wǎng)頁的網(wǎng)頁群中隨機抽取了400個網(wǎng)頁進(jìn)行人工識別發(fā)現(xiàn),所有的網(wǎng)頁100%都是Blog網(wǎng)頁。但是,在對于識別為非Blog網(wǎng)頁的隨機選取的400個網(wǎng)頁分析發(fā)現(xiàn),其中有132個網(wǎng)頁實際也是Blog網(wǎng)頁,但該程序?qū)⑺鼈冏R別為了非Blog網(wǎng)頁,如表2、3所示。
c)實驗結(jié)果分析。經(jīng)過實驗發(fā)現(xiàn),本研究的Blog定義相對非常嚴(yán)謹(jǐn),在識別為Blog網(wǎng)頁的所有數(shù)據(jù)中,幾乎沒有錯誤的識別情況。但是,由于Blog網(wǎng)頁千差萬別,尤其是中英文時間戳的格式多樣性,以及部分Blog網(wǎng)頁的內(nèi)容特征多樣,使得實驗程序?qū)⒉糠諦log網(wǎng)頁也識別為了非Blog網(wǎng)頁。而這部分錯誤識別的Blog網(wǎng)頁的主要特征包括:時間戳格式為英文的類似“May 5,07”這樣的一些非正規(guī)格式。
該Blog網(wǎng)頁所在的網(wǎng)址中存在一些非Blog的網(wǎng)頁,如存在專門的網(wǎng)站介紹這樣的非Blog網(wǎng)頁。該介紹類鏈接正好在每個Blog頁中也均有鏈接顯示。
這些錯誤情況,正是下一步算法調(diào)整的方向。
4結(jié)束語
經(jīng)過本研究,筆者找到了一個能有效識別博客網(wǎng)頁和其他網(wǎng)頁的方法。該方法通過分析網(wǎng)頁的DOM樹結(jié)構(gòu),通過基于DOM子樹的模式匹配和協(xié)同識別,進(jìn)一步提高了識別博客網(wǎng)頁的準(zhǔn)確性。
初步實驗結(jié)果顯示,本文的研究成果能夠準(zhǔn)確地將非Blog網(wǎng)頁識別出來,而不管其來自國內(nèi)還是國外的Blog網(wǎng)站。但是,實驗結(jié)果也同步提示,本文的算法將部分Blog網(wǎng)頁也識別為了非Blog網(wǎng)頁。因此,未來還有待在現(xiàn)有的嚴(yán)格定義規(guī)則中進(jìn)行相對調(diào)整,以提高對于非Blog網(wǎng)頁識別的準(zhǔn)確度。
參考文獻(xiàn):
[1]LINDAHL C,BLOUNT E.WebLogs:simplifying Web publishing[J].Computer, 2003,36(11):114-116.
[2]GLANCE N,HURST M,TOMOKIYO T.BlogPulse:automated trend discovery for WebLogs[C]//Proc ofthe 13th International World Wide Web Conference.New York:ACM Press,2004.
[3]ELGERSMAl E,DERIJKE M.Learning to recognize Blogs:a preliminary exploration[C]//Proc of EACL 2006 Workshop on New Text——Wikis and Blogs and Other Dynamic Text Sources.2006.
[4]王娜.博客搜索引擎與傳統(tǒng)搜索引擎的比較研究[J].圖書情報工作,2006,50(7):54-57.
[5]古平,朱慶生,李云峰.An error-driven learning algorithm for Baye-sian network classifiers[C]//Proc of the 11th International Computer Conference.2005:412-415.
[6]HSU P L,LIU P C.Using ontology to map categories in Blog[C]//Proc of International Workshop on Integrating AI and Data Mining.2006:65-72.
[7]RAGGETT D. Clean up your Web pages with HTML tidy[EB/OL].http://tidy.sourceforge.net/docs/api.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”