郭曉黎 劉澤偉 劉瑞祥
(1.中國礦業(yè)大學(xué) (北京)機電與信息工程學(xué)院,100083;2.北京工業(yè)大學(xué)軟件學(xué)院,北京市朝陽區(qū),100124;3.北京聯(lián)合大學(xué)信息學(xué)院,北京市朝陽區(qū),100101)
煤礦安全網(wǎng)站逐漸發(fā)展成熟并具有一定規(guī)模,涌現(xiàn)出像煤礦安全網(wǎng)、中國安全生產(chǎn)網(wǎng)等在煤礦安全領(lǐng)域內(nèi)有影響力和知名度的網(wǎng)站,使煤礦安全事件的相關(guān)信息日漸豐富。但是,煤礦安全領(lǐng)域網(wǎng)站的架構(gòu)、內(nèi)容及表現(xiàn)形式、功能實現(xiàn)也都隨著Web技術(shù)的廣泛應(yīng)用而不斷地發(fā)展和改變,帶來了 “信息過載”問題。如何從龐大的煤礦安全信息資源庫中抽取出用戶關(guān)心的信息,成為了當(dāng)今煤礦安全領(lǐng)域一個亟待解決的問題。
Web信息抽取是將Web作為信息源的一類信息進行抽取,簡單地說,Web信息抽取就是指從Web頁面中抽取滿足用戶需求的信息而過濾掉不相關(guān)的冗余信息,其核心是將分散在網(wǎng)頁上的半結(jié)構(gòu)化的HTML頁面中隱含的信息抽取出來,并以更加結(jié)構(gòu)化、語義更加明確的形式表示出來,使用戶可以在Web中更加方便地查詢數(shù)據(jù),應(yīng)用程序能更加直接地利用Web中的數(shù)據(jù)。
Web信息抽取技術(shù)根據(jù)自動化程度可以分為人工方式、半自動方式和全自動方式三大類,這種分類方式主要是根據(jù)Web信息抽取的核心——包裝器 (Wrapper)生成方式的不同來分類的。根據(jù)抽取原理和抽取方式的不同,信息抽取技術(shù)可以分為6類:基于自然語言處理方式的Web信息抽取、基于包裝器歸納方式的Web 信息抽取、基于ontology方式的Web 信息抽取、基于視覺特征的Web信息抽取、基于Web查詢方式的Web信息抽取和基于HTML結(jié)構(gòu)方式的Web信息抽取。
信息抽取一般包括以下幾個步驟:
(1)對Web網(wǎng)頁預(yù)處理。目的是從半結(jié)構(gòu)化網(wǎng)頁中過濾掉無用的 “噪聲”數(shù)據(jù),并對不規(guī)則的HTML標識進行修正,保留有用信息的過程。
(2)定義信息抽取規(guī)則。即用定制的語言表達抽取規(guī)則,描述所需要抽取的信息。針對某一領(lǐng)域的信息特征預(yù)定義信息抽取規(guī)則,存儲在規(guī)則庫供用戶選用。
(3)對信息進行抽取。對文本進行合理的詞法、句法及語義分析,使用規(guī)則匹配方法識別抽取規(guī)則的各個部分,并對上下文進行分析,確定最終需要抽取的信息。
(4)結(jié)構(gòu)化數(shù)據(jù)并返回給用戶。
Web信息抽取就是從異構(gòu)的Web頁面中提取出用戶需要的數(shù)據(jù),抽取的特點主要表現(xiàn)在:
(1)Web頁面結(jié)構(gòu)不規(guī)則,沒有特定的數(shù)據(jù)模型對其進行描述,增加了Web信息抽取的難度。
(2)Web 頁面上的數(shù)據(jù)多數(shù)用HTML 來描述,注重數(shù)據(jù)的表現(xiàn),缺乏數(shù)據(jù)的描述。
(3)Web頁面中的數(shù)據(jù),大部分是與主題無關(guān)的 “噪音”數(shù)據(jù),降低了數(shù)據(jù)抽取的精確度和效率,也加大了數(shù)據(jù)抽取的難度。
(4)Web頁面的數(shù)據(jù)組織形式多變,表現(xiàn)形式各不相同,特定頁面的信息抽取規(guī)則不能應(yīng)用于其它頁面。
因此,Web頁面數(shù)據(jù)的異構(gòu)性、不規(guī)則及易變性等特點,需要根據(jù)實際的需求,采用合適的抽取方法,對Web信息進行抽取。
當(dāng)今,煤礦安全事件的信息多數(shù)都集中在各式各樣的Web頁面中,面對信息量龐大、結(jié)構(gòu)復(fù)雜的Web頁面,關(guān)心的只是很小的部分板塊。如何去掉大量冗余信息,抽取到有效的數(shù)據(jù),為用戶提供優(yōu)質(zhì)的檢索服務(wù),是要解決的核心問題。本文結(jié)合各抽取方法的特點以及煤礦安全信息網(wǎng)本身的特點,提出了一種面向煤礦安全事件的Web信息抽取方法,此信息抽取過程的框架如圖1所示。
圖1 信息抽取過程
煤礦安全事件信息網(wǎng)頁具有結(jié)構(gòu)穩(wěn)定、信息量大等特點,由于這類網(wǎng)頁在各大網(wǎng)站的功能相近,所起的作用相似,因此網(wǎng)頁的結(jié)構(gòu)相對比較穩(wěn)定,不會受到某個網(wǎng)站的約束,適合進行大批量統(tǒng)一抽取處理。中國煤礦安全網(wǎng)中有關(guān)事故案例信息的一個實例見圖2。
從圖2中可以發(fā)現(xiàn),網(wǎng)頁的結(jié)構(gòu)十分清晰,需要的煤礦安全事件信息就是圖中事故案例部分。因此,把<ul></ul>之間的內(nèi)容直接匹配出來,就實現(xiàn)了頁面清洗。同樣,<ul></ul>之間內(nèi)容的結(jié)構(gòu)也比較規(guī)范。
<li></li>標簽之間的信息正是需要抽取的,再次對這個單元模塊信息進行匹配,就能更加準確定位需要抽取的信息,使頁面清洗更加徹底。正則表達式的特性正好能滿足上述需要,因此,考慮采用基于正則表達式匹配的頁面清洗協(xié)助完成信息抽取的任務(wù)。
圖2 事故案例信息實例
頁面清洗主要分為3個步驟:第一步是將頁面中的樣式表、腳本以及注釋等無關(guān)信息去除掉;第二步是根據(jù)頁面具體內(nèi)容的不同,將頁面內(nèi)容分成不同的類別塊;第三步是按照指定規(guī)則對各塊做進一步篩選。
正則表達式是對字符串操作的一種邏輯公式,即用事先定義好的特定字符及其組合,組成一個“規(guī)則字符串”,利用這個 “規(guī)則字符串”來過濾任何符合規(guī)則的字符串,并完成提取、判斷、替換等操作。正則表達式的靈活性、邏輯性和功能性都很強,可以用簡單的方式實現(xiàn)字符串的復(fù)雜控制。Java正則表達式通過Java.util.regex 包下的Pattern類與Matcher類實現(xiàn)。Pattern類的主要作用是根據(jù)正則表達式的相關(guān)語法,針對要匹配的對象構(gòu)建正則表達式。Matcher類的作用是根據(jù)Pattern類所構(gòu)建的正則表達式匹配對象,并且對匹配內(nèi)容進行進一步處理。
對于前面討論的煤礦安全事件信息網(wǎng)頁,其中包含煤礦安全事件信息的模塊包括<ul>標簽及其子標簽。由于煤礦安全事件信息網(wǎng)頁的結(jié)構(gòu)簡單,內(nèi)容模式相對固定,通過對大量網(wǎng)頁進行分析可以得出:頁面經(jīng)過匹配,需要抽取的常見標簽大致有以下幾種:<Meta>、<table>、<ul>、<li>、<a>等。匹配標簽的過程基本相同,這里只以圖2中的一個<ul>標簽下面的子標簽<a>為例。針對此示例,要想匹配出<ul>標簽下<a>標簽的內(nèi)容,需要定義一個Pattern對象,針對這個Pattern對象構(gòu)造相應(yīng)的正則表達式如下:
針對上述Pattern對象的規(guī)則,會有一個Matcher對象與之對應(yīng)進行匹配,并且為匹配內(nèi)容進行后續(xù)處理,如按照分組進行抽取、替換和刪除等。
經(jīng)過以上匹配過程,<a>標簽結(jié)構(gòu)包含的內(nèi)容即為待抽取信息塊。如果網(wǎng)頁的結(jié)構(gòu)比較簡單,標簽不復(fù)雜,就可以按照上述步驟進行其他頁面的信息抽取工作。
Web頁面清洗是Web信息抽取過程中一個很重要的環(huán)節(jié),為抽取過程后續(xù)流程做準備。頁面清洗效率的高低將直接影響整個抽取過程的性能和效率。
信息抽取的任務(wù)是從頁面中提取出用戶需要的信息,實現(xiàn)半結(jié)構(gòu)化數(shù)據(jù)到結(jié)構(gòu)化數(shù)據(jù)的轉(zhuǎn)換。網(wǎng)頁經(jīng)過清洗后,再根據(jù)網(wǎng)頁的結(jié)構(gòu)特點與上一步中建立的抽取規(guī)則進行匹配。利用匹配成功的規(guī)則對網(wǎng)頁進行信息提取,最終把抽取到的數(shù)據(jù)保存在特定的數(shù)據(jù)結(jié)構(gòu)中,作為下一步信息存儲的數(shù)據(jù)源。
抽取規(guī)則的作用是描述待抽取信息的各種特征和規(guī)律,識別和定位待抽取信息在Web 頁面中的位置。
面向煤礦安全事件的Web信息定向提取,需要對特定的Web網(wǎng)頁信息進行抽取,并在特定網(wǎng)頁中提取特定的面向煤礦安全事件的信息,抽取的信息需要精確匹配,因此對數(shù)據(jù)抽取的正確性和準確度要求都較高,綜合考慮采用人工標注方式來生成抽取規(guī)則。
這種方式用到DOM 和XPath 相關(guān)技術(shù)。DOM 是萬維網(wǎng)制定的一種語言標準,它定義了文檔的邏輯結(jié)構(gòu)以及操作文檔各元素的通用方法,可以作為各種編程語言以及各種應(yīng)用程序的編程接口,利用DOM 可以對XML 文檔進行讀取,以及增、刪、查、改等各項基本操作。DOM 樹用來保存XML 數(shù)據(jù),對XML 文檔的解析和各種操作都可以在DOM 樹上進行。XPath即為XML 路徑語言,是一種用來確定XML文檔中某部分位置的語言。實際應(yīng)用過程中,首先指定樣本學(xué)習(xí)網(wǎng)頁,然后根據(jù)樣本頁面生成對應(yīng)的DOM 結(jié)構(gòu),由人工在DOM 結(jié)構(gòu)中標注感興趣的數(shù)據(jù)位置,然后得到待抽取數(shù)據(jù)位置的XPath 表達式。例如,圖2 所示的HTML 頁面,對應(yīng)的DOM 模型樹結(jié)構(gòu)如圖3所示。
比如要抽取 “煤礦瓦斯突出事故”,通過上述DOM 結(jié)構(gòu),就可以直接標記出來,得到待抽取數(shù)據(jù)位置的XPath 表達式Expression 為 “//* [@class= “l(fā)ist lh24f14”]/li [1]/a [1]/text()”,表示抽取class為“e_list lh24f14”的節(jié)點下第一個 “l(fā)i”節(jié)點下,第一個 “a”節(jié)點下的文本節(jié)點。
通過采用以上人工標注規(guī)則和基于Xpath 方式的信息抽取策略,在信息抽取過程中能提高抽取的效率和準確度。
對于抽取出來的數(shù)據(jù),可以采用多種方式進行管理,本文對此不做詳細研究。
圖3 DOM 模型樹結(jié)構(gòu)
針對煤礦安全網(wǎng),隨機抽取部分網(wǎng)頁 (頁面數(shù)量≥500個)進行頁面清洗,使用基于正則表達式匹配策略直接提取出關(guān)鍵信息,大部分無用信息被直接舍棄。實驗選取樣本學(xué)習(xí)頁面清洗算法、DOM 解析頁面清洗算法以及本文研究的基于正則表達式抽取策略的網(wǎng)頁清洗算法。幾個頁面清洗算法進行實驗論證,由于頁面清洗的主要功能在于快速去除網(wǎng)頁 “噪音”,必須盡可能完整地保留有用信息,因此頁面清洗后有效頁面的比例將作為首要的評價指標,同時,清洗的時間效率也是評價的重要指標。有效頁面的判定標準以清洗后頁面內(nèi)容關(guān)鍵詞的數(shù)量來確定,直接包含4個及以上指定關(guān)鍵詞信息,則判定該頁面為有效頁面。評價指標為:清洗頁面數(shù)量、清洗耗時、有效頁面數(shù)量、有效頁面比例以及清洗效率,頁面清洗算法的實驗結(jié)果如表1 所示。
表1 頁面清洗算法實驗結(jié)果
由表1可看出,3種常用算法中,樣本學(xué)習(xí)策略和正則表達式策略的有效頁面比例分別為91.1% 和94.8%,遠高于DOM 解析策略的83.2%。樣本學(xué)習(xí)策略雖然效率與本文研究的算法相近,但是樣本學(xué)習(xí)前期需要花費一定時間,而且當(dāng)抽取煤礦安全事件信息的網(wǎng)頁集發(fā)生變化,樣本學(xué)習(xí)策略需要重新對網(wǎng)頁集進行學(xué)習(xí),費用較大。
本文對信息提取技術(shù)進行了概述,對頁面清洗、抽取規(guī)則的建立以及信息抽取技術(shù)進行分析。在此基礎(chǔ)上,對面向煤礦安全事件的Web信息抽取技術(shù)進行了研究,并提出了一種專用于面向煤礦安全事件的基于正則表達式匹配抽取策略的頁面清洗算法。此算法在易用性、準確性、效率和系統(tǒng)性能方面都有所改善,同時也需要繼續(xù)優(yōu)化,來滿足用戶進一步的個性化需求。
[1] 雷振興.煤礦安全事故的分類和預(yù)測研究 [D].西安理工大學(xué),2010
[2] 付華.煤礦瓦斯災(zāi)害特征提取與信息融合技術(shù)研究[D].遼寧工程技術(shù)大學(xué),2006
[3] J.Cho et.al.Efficient crawling through URL 0rdering[J].Computer Networks,1998 (3)
[4] 李盛韜.基于主題的Web信息采集技術(shù)研究 [D].中國科學(xué)院,2002
[5] 馮二波.領(lǐng)域?qū)嶓w屬性及事件抽取技術(shù)研究 [D].哈爾濱工業(yè)大學(xué),2008
[6] 金岳富.Web 信息采集與信息抽取技術(shù)的研究[D].哈爾濱工業(yè)大學(xué),2009