Web上有海量的數據,用傳統的數據分析方法已無法有效地獲取隱藏在海量數據中的有用信息或知識,怎樣對這些數據進行復雜的應用是目前信息處理技術研究的熱點之一,Web數據挖掘技術以其能在Web環境下從大量的數據中發現隱含的規律性內容,解決數據的應用質量問題而倍受青睞。對于電子商務來說,Web數據挖掘就是要通過對電子商務網站上異構的海量客戶數據進行深層次分析,了解網絡客戶詳細的商務行為細節,從中獲取對商業決策有價值的信息。Web數據挖掘常用的技術有路徑分析、關聯規則、序列模式、聚類與分類技術等。對電子商務系統積累的不同來源、不同組織結構的海量數據實施Web挖掘的關鍵問題是:首先必須屏蔽Web數據源的異構性,其次需要有較完善的半結構化模式抽取技術支持。
一、用XML據模型屏蔽Web數據源的異構性
1. 用XML屏蔽Web數據源異構性的可行性。目前電子商務系統服務器端主要是XML、HTML和關系數據等數據類型。從信息集成角度來看,關系數據模型過于嚴謹,無法有效地表示半結構化和非結構化數據;HTML對文檔的要求也過于完整,且不能定義數據的層次,沒有提供編程接口解析它所攜帶的數據,無法真正實現各種應用程序、數據庫及操作系統間的數據交互。XML與關系數據模型和HTML相比,可以表示更多樣化的數據格式,能夠使不同來源的結構化、非結構化數據很容易地進行合并。采用XML集成多個不同數據源的信息,只需要把來自不同數據源的信息先轉成XML文檔,然后再處理經過解析器解析的數據流即可。任何應用程序只需要知道兩種格式,即本身的和XML的,就可以通過XML為中介實現與其他應用程序的信息交換。
因此,在Web挖掘的數據預處理階段,可以用XML作為異構數據源集成應用的中間數據模型來屏蔽Web數據源的異構性。
2. HTML文檔向XML文檔轉換的實現。目前已有許多由研究機構和企業開發出的將HTML文檔轉換為XML文檔的軟件產品,其中有一些正逐步走向實用。如HTML Tidy就是一個能夠出色地完成HTML代碼清理轉換任務的工具,它由Dave Raggett開發,可以在VisualC++6.0環境中以HTML文檔名稱為參數執行如下指令被調用來完成轉換:
WinExec(“TIDY -o output.xhtml -i test.html”, SW ̄HIDE)
其中output. xhtml為轉換結果文件,test. html為待轉換的HTML文檔名稱。
實際應用中,用戶可以采用HTML Tidy先將HTML文檔轉換為XHTML文檔。XHTML文檔為XML的子集,它結合了部分XML的強大功能及大多數HTML的簡單特性,符合XML規范,實施Web數據挖掘時可以直接從XHTML文檔上進行數據抽取。
3. 關系數據向XML數據轉換的實現。關系數據是完全結構化數據,其結構相對較簡單,可以生成具有不同語義的信息視圖,并能很自然地用XML形式的數據加以表示。目前很多著名的關系數據庫管理系統如Microsoft SQL Server、 IBM DB2 EXTENDER、 ORACLE 91、 SYBASE等都支持對XML數據的存儲管理。因此,實際應用中可以利用SQL server 2000 DBMS具有的能從關系數據中產生XML文檔,并在關系數據庫表中存儲XML文檔的功能,在分析數據庫所包含的表間及表中列間關系的基礎上,先建立關系數據庫結構和XML文檔結構之間的映射關系,再掃描數據庫,然后輸出XML文檔。
二、基于XML的數據查詢與抽取的技術實現
由于Web數據的大量信息都與抽取無關,由HTML文檔和關系數據轉換而來的XML文檔以及Web上原有的XML文檔中都包含大量的冗余信息,所以需要過濾清洗掉XML文檔中的無關數據,并根據一定的規則進行數據抽取,以統一的XML數據模式描述來自不同數據源的數據,形成XML數據集,為下一步數據挖掘算法的實施作好準備。
1. 利用XSL過濾清洗XML文檔中的無關數據。XSL是一種用于以可讀格式呈現XML數據的可擴展樣式表語言(Extensible Stylesheet Language),能夠對XML樹進行添加和刪除元素、查找或選擇特定元素等操作。因此,可以利用XSL來處理XML結構的文檔,以檢索抽取適當的數據。這一抽取過程可通過查找XML數據內的引用點、將數據重新映射成XML、合并結果并處理數據等幾個步驟完成。
2. 基于XML的數據查詢。由于采用XML作為中間數據模型,因此系統的查詢處理可采用下面的邏輯表示形式:
Head:一Body
Head→Unit
Body→Unitl, …, Unitn(Condition)?
Unit→<Label Value>
Label→string|variable
Value→variable|{Unit+}
condition→(Predicate)
Head表示杏詢的結果,Body表示查詢處理;?表示任選,+表示一個或多個;Predicate是條件表達式;Label對應XML的tag,Value對應tag中的值;連接操作均隱含在有相同Label的unit之間。這種邏輯表示有利于表示XML的層次和嵌套結構。(本文受浙江萬里學院2007年科研項目“基于Web訪問信息挖掘的商業智能發現研究”資助)
(作者單位:浙江萬里學院商學院)