李 劍 ,陳海建
(1.江蘇廣播電視大學,江蘇 南京 210036;2.上海電視大學 信息與工程系,上海 200433;3.上海財經(jīng)大學 信息管理與工程學院,上海 200433)
隨著網(wǎng)絡技術的迅猛發(fā)展,以網(wǎng)頁形式發(fā)布的信息、數(shù)據(jù)爆炸性地增長,人們期望能夠及時有效地關注、獲取、管理和分析對比特定行業(yè)的熱點信息和數(shù)據(jù)。尤其在金融和傳媒領域,信息和數(shù)據(jù)變化特別快,能及時收集來自不同網(wǎng)站上發(fā)布的信息和數(shù)據(jù)變得尤其重要。但是,絕大多數(shù)網(wǎng)頁基于HTML格式,其松散的特性使得現(xiàn)有的頁面提取算法不能較好地與特定領域的業(yè)務相結合,分析出信息的語義。例如,對單個頁面而言,如果完全進行自動化分析,較難在分析結果中對與新聞這一特定領域相關的新聞標題、鏈接、發(fā)表時間和正文等內容元素加以區(qū)分;對于新聞標題列表和新聞正文分別位于不同網(wǎng)頁這一典型的多頁面結構,需要聯(lián)合分析多個網(wǎng)頁的內容,如果沒有一套完善的提取和分析這些信息的軟件平臺,也難以得到完整信息。
本文針對Internet上新聞網(wǎng)站的信息,設計并實現(xiàn)了一個網(wǎng)頁插件形式的半自動化的網(wǎng)頁信息搜集中間件,對于不同版式的新聞網(wǎng)站,只需編寫少量相關代碼實現(xiàn)中間件,即可完成對新聞標題、鏈接、發(fā)表時間和正文等信息的提取。新聞生成器插件加入到新聞中心平臺中,由Web Services提供同構的新聞獲取接口,前臺通過調用Web Services即可構建匯集各種新聞和通知公告的新聞中心。此外,本平臺還提供將新聞轉換為RSS(Really Simple Syndication)種子的功能,以方便用戶使用RSS閱讀器訂閱新聞。
基于此種新聞中心平臺架構,完全不需要改變現(xiàn)有的新聞網(wǎng)站布局,即可自動匯聚多方面的新聞,創(chuàng)建新聞門戶網(wǎng)站。此外,本平臺還具有高擴展性,當有新的網(wǎng)站需要關注時,只需編寫擴展插件,即可實現(xiàn)將關注的網(wǎng)站加入到視野中。
對Web信息提取的研究早在20世紀80年代就已開始,根據(jù)參考文獻[1],現(xiàn)有的對Web信息提取分析的方法可以分為多種類型:從自動化程度上可劃分為手工、半自動和全自動提取分析方法;從原理上可劃分為基于自然語言理解、基于本體、基于HTML(HyperText Markup Language)和基于隱馬爾可夫模型等提取分析方法。本文設計并實現(xiàn)的新聞中心平臺,在對單個頁面進行分析時所采用的是基于HTML的半自動提取分析方法,也即:在信息提取之前通過解析器將Web文檔解析成語法樹,通過半自動的方式產(chǎn)生提取規(guī)則,將信息提取轉換成對語法樹的操作實現(xiàn)信息提取”。
在Web中,信息是以半結構化和無結構文檔的形式組織存儲的,參考文獻[2]中指出:“這些數(shù)據(jù)沒有統(tǒng)一的模式,數(shù)據(jù)的內容和表示相互交織,數(shù)據(jù)內容基本上沒有語義信息進行描述,僅僅依靠HTML語法對數(shù)據(jù)進行描述”。
當前,對Web信息提取的研究主要有兩個方向[3]:一種是研究怎樣把網(wǎng)頁中無結構或半結構化數(shù)據(jù)轉換為結構化數(shù)據(jù),這類研究的主要目的在于提取細粒度的數(shù)據(jù);另一種研究則是希望通過信息提取技術,提取標題、正文等主題內容或興趣區(qū)域。本文設計并實現(xiàn)的新聞中心平臺,主要注重的是對新聞標題、鏈接、發(fā)表時間和正文等內容元素的提取。
由于現(xiàn)實中Web頁面種類繁多,形式各異,在國內外的研究工作中,學者們提出了多種Web信息提取方式,例如:Finn[4]等人將HTML文檔看作字符和標簽組成的序列,在字符集中的區(qū)域提取文字。這種方式適用于以文字為主要內容的文檔,而不便于提取文檔中的圖片、鏈接等內容;胡國平等[5]人針對新聞網(wǎng)站提取了基于統(tǒng)計的正文的抽取方法,但卻只適合所有正文只有一個TABLE標簽中的文檔;而楊成[6]提出了一種面向由XML描述的Web文檔的、基于用戶主題信息的模式和數(shù)據(jù)提取方法。該方法利用學習算法從樣本文檔中提取規(guī)則,然后使用匹配算法從目標文檔中訓練出模式。
考慮到新聞領域相關的內容元素較為簡單(包括標題、正文等),本文認為針對某個具體的新聞網(wǎng)站,可以由人工編碼完成少量差異化的提取和分析工作,以插件形式加入到整個新聞提取和分析過程中,實現(xiàn)對各類新聞網(wǎng)站內容的準確高效提取。
中間件是新聞中心平臺的核心,是進行半自動化信息提取的部分。中間件主要類的UML類圖如圖1所示。圖中,IGenerator接口對提取新聞的主要方法 (獲得標題及正文等)進行了定義,凡是具有實現(xiàn)了IGenerator接口的類的插件均可以加入到平臺中作為針對某個新聞網(wǎng)站的生成器,為平臺提供來自某一特定網(wǎng)站的新聞??紤]到流行的新聞網(wǎng)站的架構具有一些相似之處,本新聞平臺事先設計了一些實現(xiàn)IGenerator接口的基類,使用戶在開發(fā)某些類型的新聞網(wǎng)站生成器插件時,無需從頭開始編碼工作,只需由這些基類派生,并實現(xiàn)一些差異化的工作即可。例如,TitleListNewsGenerator基類對如圖2所示類型的新聞網(wǎng)站提供了支持。
圖1 插件平臺主要類的UML圖類
圖2 一種常見的新聞網(wǎng)站架構
TitleListNewsGenerator基類對提取這類新聞網(wǎng)站信息的功能做了進一步的封裝和優(yōu)化(例如并行分析多個新聞正文頁),如需從某個具體的、如圖2所示的新聞網(wǎng)站提取信息,只需編寫派生自TitleListNewsGenerator基類的實例,再對特定網(wǎng)頁的少量特殊內容進行人工編碼實現(xiàn)(例如若新聞鏈接地址是通過JavaScript事件生成的,則需要對這種鏈接進行轉換)即可。提取這類新聞網(wǎng)站的信息的流程如圖3所示。
針對不同類型的新聞網(wǎng)站,新聞生成器插件平臺可以開發(fā)多種不同的基類,將其中可以自動化完成的工作預先實現(xiàn),而插件制作人員只需對所針對的網(wǎng)站的特殊部分(例如與網(wǎng)頁版面美化有關的少量特殊內容可能需要過濾)加以處理即可。
新聞生成器插件中包括至少一個直接或間接實現(xiàn)IGenerator接口的類,該接口定義新聞生成器必須實現(xiàn)的功能,包括獲得新聞標題和新聞描述等。新聞生成器插件針對不同的新聞網(wǎng)站,采取不同的分析頁面源代碼和抓取分析策略,最終實現(xiàn)在IGenerator接口中規(guī)定必須實現(xiàn)的功能。
新聞生成器插件在分析頁面源代碼的過程中,需要注意的是將頁面圖片、附件所使用的相對路徑或由JavaScript在事件中生成的路徑均轉換為絕對路徑,使其在從新聞網(wǎng)站獨立出來后仍能正常使用。此外,在處理過程中若發(fā)生錯誤,應將異常交由日志記錄模塊進行記錄,并由異常處理模塊做相應處理。
圖3 一種常見的新聞提取流程
基于半自動化提取新聞的設計思想,為江蘇城市職業(yè)學院實現(xiàn)了一套可擴展的新聞中心平臺。其平臺由歸檔數(shù)據(jù)庫、新聞生成器插件平臺、服務層、RSS種子生成模塊、日志記錄和異常管理模塊以及多種類型的新聞中心表示層(客戶端、網(wǎng)站、RIA等)組成,其整體架構如圖4所示。
圖4 新聞中心平臺的架構
2.2.1 新聞生成器插件平臺
基于2.1節(jié)插件的設計思想,新聞生成器插件平臺負責將各插件集成到新聞中心平臺中,為新聞中心平臺提供來自不同網(wǎng)站的新聞信息。插件加載引擎通過讀取插件配置文件定位插件并加載。插件配置文件是一個XML文件,該文件定義了各新聞生成器插件所屬的新聞類別、插件文件路徑和生成器類的完整路徑,其格式如下所示:
要為新聞中心平臺增加新的新聞生成器插件,只需在插件配置文件中增加該插件的配置信息以及插件加載引擎即可定位到該插件,并通過調用相關方法,向新聞中心平臺提供來自新來源的新聞信息。
2.2.2 歸檔數(shù)據(jù)庫
歸檔數(shù)據(jù)庫負責存放保留由各新聞生成器通過分析新聞所在網(wǎng)站源代碼而抓取生成的新聞內容。
2.2.3 RSS種子生成模塊
在新聞生成器插件平臺的基礎上,RSS種子生成模塊能夠為每個新聞來源生成一個RSS種子,以便用戶使用RSS閱讀器訂閱新聞。
由于RSS文件是XML格式的,因此在生成RSS種子時,需要轉換或過濾與XML文檔不兼容的字符。另外,根據(jù)RSS標準的規(guī)范定義,需要將日期時間轉換為RFC822規(guī)定的格式。
在新聞生成器插件平臺的基礎上,服務層進一步將功能抽象為一個個平臺無關的Web Services方法,以適合為多種類型的表示層提供功能。
服務層主要提供以下服務:獲得新聞類別列表、獲得新聞頻道列表、獲得新聞標題列表和獲得新聞正文等。
日志記錄和異常管理模塊貫穿整個新聞中心平臺的服務周期,用以記錄平臺的工作狀況,并在發(fā)生異常時及時采取措施。
通過調用服務層提供的Web Services,新聞中心的表示層可以使用不同技術,并設計成為多種不同的表現(xiàn)形式,從而滿足不同用戶的需要。
新聞中心平臺基于.NET Framework 4.0構建,除表示層因具體技術不同而有所區(qū)分外,新聞中心平臺的其余部分最終均部署于Dell PowerEdge R900服務機上使用VMWare ESX 3i劃分的一臺安裝有Windows Server 2008操作系統(tǒng)的虛擬機上。
新聞中心平臺的客戶端可以多種不同形式 (網(wǎng)站、PC或手機應用程序等)向用戶提供新聞。圖5是江蘇城市職業(yè)學院新聞中心客戶端的運行效果圖。圖中的新聞均由新聞中心平臺通過提取與分析江蘇城市職業(yè)學院網(wǎng)站的內容自動整理生成,并與網(wǎng)站更新保持同步,用戶通過使用新聞中心平臺,能夠便捷地集中瀏覽原本散落于網(wǎng)站各個頁面學院的新聞。
圖5 基于新聞中心平臺的江蘇職業(yè)學院新聞中心客戶端運行截圖
除使用本文實現(xiàn)的新聞中心平臺的方式外,還可通過設計門戶網(wǎng)站或設計搜索引擎的方式方便對信息的獲得,與此二種方式相比,新聞中心平臺有其特有的優(yōu)勢。
3.2.1 與門戶網(wǎng)站相比的優(yōu)勢
新聞門戶網(wǎng)站能夠分類發(fā)布和整理新聞,但重新架構一套門戶網(wǎng)站,意味著需要完全放棄現(xiàn)有的所有新聞網(wǎng)站,重新組織來自眾多院系部門的新聞維護人員,成本極高。此外,各院系部門并非完全不需要一個展示自身的網(wǎng)站平臺,完全廢棄這些網(wǎng)站而統(tǒng)一使用門戶網(wǎng)站將使各院系部門的形象千篇一律,流程僵化,而保留這些網(wǎng)站并同時使用門戶網(wǎng)站又將造成信息的冗余。
而新聞中心平臺是利用插件半自動化地從各院系部門現(xiàn)有網(wǎng)站中提取新聞,避免了重復建設,并只由歸檔數(shù)據(jù)庫做適當緩存,隨時可以刪除,不存在大量冗余。與建設門戶網(wǎng)站相比,使用新聞中心平臺能有效降低成本投入,且更加靈活。
3.2.2 與搜索引擎相比的優(yōu)勢
可以使用搜索引擎,通過關鍵詞檢索新聞。然而檢索的范圍和粒度都難以控制,也不能滿足一般的新聞瀏覽需要。而新聞中心平臺將新聞分門別類,在方便統(tǒng)一瀏覽的同時,可以足夠快速地找到所需的新聞,在必要的時候還可以加入搜索功能作為輔助。
本文設計并實現(xiàn)了一套基于插件架構的新聞中心平臺,該平臺在新聞中心網(wǎng)站和客戶端的設計中進行了實踐,通過插件提取新聞網(wǎng)站的內容進行分析匯總,解決了新聞來源混亂而不易于獲得的問題,且具有較好的擴展性。今后將進一步分析新聞網(wǎng)站的特點,有針對性地提高信息提取的自動化程度。
[1]王宇寧.隱馬爾可夫模型在信息抽取中的應用研究[D].大連:大連理工學院,2007.
[2]袁宇麗.基于HTML網(wǎng)頁的Web信息提取研究 [D].成都:電子科技大學,2005.
[3]謝德輝.面向刑偵網(wǎng)頁的信息抽取與主題爬蟲應用研究[D].大連:大連理工學院,2007.
[4]FINN A, KUSHMERICK A, SMYTH B.Fact or fiction:contentclassification fordigitallibraries [C].The 2nd DELOS Network of Excellence Workshop on Personalisation and Recommender Systems in Digital Libraries, Dublin,Ireland, 2001: 110-115
[5]胡國平,張巍,王仁華.基于雙層決策的新聞網(wǎng)頁正文精確抽取[J].中文信息學報,2006,20(6):1-10.
[6]楊成.基于XML的網(wǎng)頁信息提取系統(tǒng)的研究與設計[J].電腦知識與技術,2009,5(25):7327-7329.