摘 要:本文分析了Web網頁的數據挖掘最新技術及發展方向,介紹了基于XML的Web數據挖掘的特點,提出了基于XML的數據抽取技術,最終得到所需的數據并通過一個通用的應用模式進行挖掘的全過程。
關鍵詞:數據挖掘 Web挖掘 XML
中圖分類號:TN711文獻標識碼:A文章編號:1674-098X(2011)01(b)-0029-02
Web技術的飛速發展,在促使人們信息交流的方式變的更加方便快捷的同時,也積累了大量的數據,如何發現并利用隱藏在這些數據背后的知識就成為當前信息技術領域研究的熱點問題之一。Web數據挖掘就是能夠滿足這一要求的一種技術,即從Web上的海量數據中提取對人們有用信息并為人們所利用。然而Web上的數據不同于傳統數據庫中的結構化數據,Web上的數據大多是一種無結構或半結構化的數據。如何有效的對Web數據進行清理和集成是Web數據挖掘領域中一個很重要的研究課題。
目前Web挖掘的應用存在著兩個重要的困難。首先,現有的應用模式大多缺乏通用性。往往只能根據現實的情況設計、定制針對性的解決方案,而難以由用戶自己運用成形的軟件模塊,設定數據參數以解決問題。其次,數據的預處理和后處理工作一直是困擾挖掘應用的一個難題。數據結構的復雜性以及異質系統之間的數據耦合問題得不到妥善的解決,使得挖掘應用難以順利展開。上述問題的主要原因在于現有的應用模式未能有效地對挖掘算法進行有效地封裝,因而便無法有效地實現通用的數據表達和接口規范。本文將詳細討論在Web環境下,如何對無結構或半結構化的Web數據進行數據集成的問題,并提出了一種基于XML的挖掘應用模式。該模式充分利用了XML在數據描述能力、異質系統數據交換能力以及可擴展性方面的優勢,為解決上述問題提供一個框架。
1 基于XML技術進行數據挖掘
XML是一種中介標示語言(meta-markup language),提供資料的結構和語義信息,使計算機和服務器能及時處理多種形式的信息。運用XML的擴展功能不僅能從Web服務器下載大量的信息,還能大大減少網絡業務量。它以一種開放的自我描述方式定義了數據結構,在描述數據內容的同時能突出對結構的描述,從而體現出數據之間的關系。這樣所組織的數據對于應用程序和用戶都是友好的、可操作的。
XML可以以簡單開放的方式描述結構化數據,而且數據顯示與內容分開,是數據更合理的表現出來。由此可見XML為在Web上的數據查詢和抽取提供了一個契機,這正是Web挖掘所需要的。本文介紹的Web數據挖掘技術,采用以下方法來實現數據抽取:首先將HTML文檔轉換成XML格式,利用XML格式規范的優點,再從XML文檔中更加有效地分析和處理數據。重點在于如何通過基于XML的數據抽取技術從Web網頁上抽取結構化數據。
根據以上思路,將基于XML技術的Web數據挖掘分為以下幾個步驟,如圖1所示:
從互聯網上確定目標Web網頁,獲得HTML文檔;將HTML文檔轉換成XHTML或XML格式;對XHTML或XML格式的文檔進行數據抽取;對抽取的數據合并為XML數據文件;將提取出的XML數據寫入關系數據庫,以備應用程序挖掘調用。
1.1 獲得目標網頁的Web文檔
確定目標信息源即Web挖掘所要挖掘的Web站點。目前網絡上已經有很多高效、可靠的網絡爬行工具可用,因此可利用這些工具方便的獲取Web頁面的HTML文檔。
1.2 將Web文檔轉換成XML格式
確定了信息源后,我們在抽取過程中的第一步就是將數據從HTML轉換成XML。本過程將通過一個構造名為XMLHelper的Java類來完成,使用Tidy庫提供的函數在XMLHelper.tidyHTML( )方法中執行轉換,這個方法接受URL作為一個參數并返回一個XML文檔作為結果??梢詫⒃嫉腍TML頁面轉換成XHTML(Extensible HTML)或XML文檔。
其中,Tidy是一個開放的源代碼工具。能夠將HTMLTidy作為類庫集成到應用程序之中??捎糜诟恼鼿TMI文檔中的常見錯誤并生成格式良好的等價文檔,還可以將HTML文檔轉換成XHTML(XML的子集)格式的文檔。XHTML是一系列當前和將來的文檔類型和程序塊。XHTML系列文檔基于XML,最終被設計用來與基于XML 的用戶代理程序一起工作。
1.3 數據抽取
不管是在Web頁面或者在XHTML文檔還是XML文檔中,絕大多數的信息都與我們完全無關,因此就要在XML指定的區域中進行數據的抽取,從中抽取我們的數據而避開對于數據挖掘無關的外來信息。完成這一任務應首先檢查Web頁面,找到我們所需信息的位于頁面中的區域。將該區域作為引用點(或稱為錨點)。通過錨點進行數據抽取,需要建立獨立于絕對路徑的信息位置,這就是要查找包含抽取信息的錨點。
通常情況下:錨點是基于信息內容的,與HTML路徑無關,找到了這個錨點就可以創建實際抽取數據的代碼。這個代碼將以XSL文件的形式出現。以下是一個從一個餐飲網頁中析取出餐飲菜單,同時過濾掉其他無用信息的XSL例子。XSL處理器從XHTML樹的根部開始進行遞歸查找“menu”元素,一旦找到該元素,則執行包含在模板中的指令。
Xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”> omit-xml-declaration=”no” method=”xml”/>
1.4 數據集成
現在完成了一次數據抽取,而Web數據挖掘所需要的是進行了多次抽取,并把抽取的結果合并到單個XML文件的數據。因此要針對數據挖掘的特殊性,不斷地進行數據的抽取,通過構造名為XMLHelper的Java類創建一個mergeXML( )方法把XSL文件合并到XMLHelper類中。該方法允許我們把在當前抽取中獲得的數據合并到包含以前抽取數據的XML數據文件中,從而合并成為所需的XML數據文件。
在Web數據挖掘中通過兩個步驟實現數據的集成。首先利用網絡爬行工具將多個原始HTML文檔中的所需數據分別析取下來,轉換后得到的XML文檔都是最終輸出文檔的一部分。然后將這些輸出片段進行連接,并將其傳送至負責整合數據的XSL過濾器,最終形成一個完整的XML文檔。最后一個完整的XML文檔可以通過Java語言中的JDBC將其中提取出的XML數據寫入到關系數據庫中,提供給應用程序以備挖掘時調用。
2 基于XML的挖掘模式
現有的模式將數據挖掘的具體過程與數據格式的處理、表達、轉換工作揉合在一起,使得標準化的接口規范無法形成,進而使得數據挖掘程序本身的結構規范無法形成,因此不但通用性無法保證,可擴展性也無從談起。解決這一問題的一個思路,是將數據的格式組織以及規則的結構化輸出工作從挖掘算法中分離出來,實現標準化的數據輸入輸出結構,從而對挖掘算法進行有效地封裝,形成通用、跨平臺、可擴展的應用模塊。
XML具有很強的數據封裝能力和語義描述能力,能夠有效地支持各種形式的數據應用。近年來,XML已經成為異構平臺數據交換的首選手段,在其基礎上發展起來的各種應用技術有效地對數據的提取、傳遞、轉換和展現提供了支持?;谝陨戏治?,我們提出了一種以XML為基礎的挖掘模式,其基本框架如圖2所示。
在這一模式中,數據的提取轉換、挖掘引擎以及挖掘結果的展現形成了三個單獨的模塊,依靠規范化的XML文檔相聯系。此時所有的需求表達、參數設定的等工作體現為對數據Schema文檔和挖掘結果Schema文檔的編輯工作(Schema文檔用于定義XML文檔中的數據結構及規范性要求),無需對系統內部結構具有深入的了解。數據Schema文檔中指明了將要用于挖掘的數據內容范圍以及目標組織形式。數據提取模塊利用這一文檔,就可以將所需數據從數據庫中提取出來,并自動轉換為符合Schema文檔所定義格式的XML文檔,提供給挖掘引擎。目前大多數的數據庫、數據倉庫產品都已經提供了XML格式的查詢、導出支持。因此,此處的數據提取、轉換模塊只需利用數據倉庫產品本身的功能,加以少量開發便可實現。
我們以關聯規則挖掘為例,來進一步說明這一框架。例如一個超市銷售記錄的管理規則挖掘,我們可以定義一個有關銷售記錄的數據Schema文檔。該文檔表示在該應用中所要挖掘的是超市的銷售數據。根據這一文檔所提供的信息,數據提取模塊可以自動從數據庫中獲取數據并將其組織成符合要求的數據XML文檔。數據XML文檔中所包含的是按照標準化格式組織起來準備用于挖掘的數據內容,挖掘結果Schema文檔中則指明了期望得到的挖掘結果的形式。根據數據Schema文檔和結果Schema文檔,挖掘模塊可以自動地對將要輸入的數據結構進行判別,同時根據期望的結果形式自動選擇合適挖掘算法并調整內部參數。隨后,挖掘模塊從數據XML文檔中讀人數據,完成挖掘運算,并按照挖掘結果Schema文檔的要求將之組織成挖掘結果XML文檔。挖掘結果Schema文檔中定義我們需要定義規則的支持度、置信度以及規則前項集和后項集的個數。根據這一文檔,挖掘模塊選擇最合適的算法并完成挖掘,按照此文檔的定義給出挖掘結果XML文檔。挖掘結果如下代碼所示:
<超市銷售規則 最低支持度=”0.5”置信度=”0.9”>
<規則支持度=”0.6”置信度=”0.97”>
<前項>
<商品 名稱=”牛奶”/>
<商品 名稱=”香腸”/>
<前項/>
<后項>
<商品 名稱=”面包”/>
<后項/>
<規則/〉
<超市銷售規則/〉
挖掘結果XML文檔中所封裝的是用規范化格式所表達的挖掘結果,可以方便地提供給挖掘結果展現模塊或是其他系統。在XML數據的展現方面,CSS和XSLT等技術均已相當成熟,利用這些技術可將挖掘信息構造成直觀、生動的形式,提供給最終用戶。可以看出,兼具嚴格性和靈活性的XML有效地對我們的挖掘應用框架提供了支持?;谶@種靈活性以及可擴展性,這個挖掘模式的基本框架也能夠有效的運用到其他類型的數據挖掘中。遵循這些接口標準而開發的挖掘引擎,也可以不經任何修改就配置到各種各樣的數據環境中使用,而不會受到硬件平臺、操作系統、數據庫類型以及數據結構的制約。
3 結語
本文介紹了Web數據挖掘的相關理論知識,并提出了一種基于XML的實現方法,通過對Web頁面的一系列處理,最終得到所需的數據并通過一個通用的應用模式進行挖掘的全過程。該模式能夠有效地解決挖掘模塊的通用性、異構數據平臺的數據交換和集成、挖掘功能的可擴展性,以及用戶應用操作的簡易性等問題。由于XML能夠使不同來源的結構化的數據很容易地結合在一起,從而解決了Web數據挖掘的難題。同時,由于基于XML的數據是自我描述的,隨著XML作為在Web上交換數據的一種標準方式的出現,面向Web的數據挖掘以及應用將會變得非常輕松。
參考文獻
[1]陳安,陳寧,周龍驤.數據挖掘技術及應用[M].科學出版社,2006,3.
[2]袁文超.“XML在基于Web數據挖掘中的應用”[M].計算機應用,2003.
[3]萬常選.XML數據庫技術[M].清華大學出版社.2005.1.
[4]Myllymaki J. Effective Web Data Extraction with Standard XML Technologies[C].Proceedings of the 10th International Conference on World Wide Web. New York: ACM Press, 2001:689-696.
[5]崔建群,何炎祥,鄭世鈺,吳黎兵.“基于XML的Web數據挖掘關鍵技術的研究”[J].計算機工程,2006,10.