程思祥雷 鳴
(1.長江大學圖書館;2.長江大學計算機科學學院,湖北 荊州 434023)
隨著Internet技術的發(fā)展,網絡資源飛速增長,如何有效利用這些豐富的資源成為人們普遍關注的問題。數據挖掘技術和Internet應用研究的結合構成了當今比較活躍的一個研究領域——Web數據挖掘。要從海量的Web數據中獲取有價值的潛在模式和隱含信息必須依靠Web數據挖掘技術。
與Web數據異質、分布、動態(tài)、無統一結構的特點不同,Web服務器日志結構比較完善,用戶訪問Web站點后會留下完整的記錄。Web日志挖掘通過挖掘Web日志記錄來發(fā)現用戶訪問Web頁面的模式、挖掘有用模式和預測用戶瀏覽行為[1]。
目前Web日志挖掘可分為兩種方法[2]:①將Web服務器上的數據映射到關系數據庫,選擇合適的數據挖掘技術處理;②利用特殊的預處理技術直接處理日志數據,采用標準的數據挖掘技術來進行訪問數據的挖掘。
分析對象是長江大學圖書館的主頁服務器日志數據,自2009年10月26日到2009年11月19日,日志文件共25個,大小為262M,共有1619085條記錄。
Web服務器日志文件(Web Server Log File)記錄了用戶訪問該站點時每個頁面的請求信息。日志記錄的格式主要分為兩種[3]:通用型日志格式(Common Log Format,CLF)和擴展型日志格式(Extended Log Format,ELF)。筆者使用的數據屬于W3C擴展日志格式,ELF日志文件包括兩種記錄類型:指令型記錄(以“#”開頭)和數據記錄。
ELF確定的日志格式被定義為一個域的集合,而不是定義一種固定的格式。很多域前面需要加上前綴。下面列出W3C擴展日志格式的可用域前綴[4]:
c-:客戶端;s-:服務器端;r-:遠程服務器端;cs-:客戶端到服務器端;sc-:服務器端到客戶端;sr-:服務器端到遠程服務器端;rs-:遠程服務器端到服務器端;x-:應用。這些前綴與域指令行中的域標識符相結合,用于說明何種數據將寫入日志。
表1 W eb日志記錄的部分主要信息
下面是一個Web服務器日志文件ELF格式的例子:
#Software:Microsoft Internet Information Services 5.0
#Version:1.0
#Date:2009-10-26 00:00:49
#Fields:date time c-ip cs-username s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status cs(User-Agent)2009-10-26 00:00:49 10.10.90.29-10.203.1.13 80 GET/index.asp-200 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1)
數據預處理是數據挖掘前期很重要的工作,其結果的好壞直接影響了挖掘結果。數據預處理的工作量占整個數據挖掘過程的50%左右[5]。Web日志預處理的目的是針對上一階段產生的數據進行初步整理,剔除日志中對挖掘過程無用的屬性和數據,并將Web日志中的數據轉換為挖掘算法可識別的形式。
數據清理可采用以下3種方式:①根據日志文件的時間,如只需要對上周日志文件進行挖掘;②根據所訪問的文件類型,如只需要對.asp文件進行挖掘;③根據使用者請求和算法類型選取屬性列,如只需要對訪問路徑進行挖掘。
數據縮減可采用以下兩種方式:縱向縮減(行縮減)和橫向縮減(列縮減)。對于不同的挖掘需求可采用不同的縮減方式,如縱向縮減可通過URI資源的擴展名、用戶動作、狀態(tài)碼進行縮減。進行流量分析時,可采用橫向縮減的方式,如保留用戶訪問時間、用戶請求的URI資源等字段,這里必須保留URL為圖形文件的記錄。進行聚類分析時,可保留用戶訪問時間、用戶IP、用戶請求訪問的URL、用戶所使用的代理等字段??v向縮減可減少記錄條數,橫向縮減僅減少屬性列,對記錄條數無影響,這兩種縮減方式都不會降低日志清理的精度。進行數據縮減可減少算法掃描日志的時間,提高挖掘效率。
目前較為有效的用戶識別方法有:①基于用戶瀏覽器和操作系統的差異。②基于引用頁進行判斷[6]。這里我們認為不同IP地址代表不同用戶;若IP地址相同,用戶瀏覽器或操作系統不同,也認為是相同的用戶;若用戶請求的某頁面沒有請求過也認為這是一個新的用戶。
進行會話識別最簡單的方法是使用時間戳(timeout),常用的是30分鐘,L.Catledge和J.Pitkow由實驗得出timeout值設為25.5分鐘更好[3]。如果用戶訪問頁面時間差超過了timeout,則認為用戶開始了一個新的會話。
根據挖掘目標和數據特征,選擇合適的挖掘算法模型。Web日志數據挖掘中常用的技術有:統計分析、路徑分析、關聯規(guī)則挖掘、序列模式挖掘、聚類分析、分類學習等。
根據應用的要求,選擇合適的數據挖掘算法及模型參數,建立數據挖掘模型,從數據中提取所需的知識,并以一定的形式展現出來。如決策樹結構、關聯規(guī)則集等。
對挖掘結果進行解釋與評估。將挖掘的知識以用戶可以理解的方式(如圖表)呈現給用戶,并對所得的結構進行解釋,包括對知識的一致性檢查,模型的驗證,識別知識的真正有趣模式。進行Web站點流量統計,需要對源數據進行分析,統計網站響應狀態(tài)、請求成功的IP地址、具體頁面的訪問流量、訪問成功的頁面、訪問出錯的頁面等,可畫出訪問時間——訪問人數折線圖,初步了解用戶訪問的時間分布情況,按照用戶訪問方式統計,了解用戶大多會進行什么操作。
根據原始數據可統計出以下部分結果:
分布圖如圖2所示。
分布圖如圖3所示。
請求成功的記錄數為1403516條,請求成功的IP地址數有10475條。圖4中僅列出訪問量前10位的請求成功的IP地址。
以縱向縮減為例,原始數據大小為262M,共有1619085條記錄。
對.gif、.jpg、.jpeg、.ico、.cgi、.css、.js這 7 種擴展名篩選后,記錄條數縮減為211146條。按GET請求記錄縮減后,記錄條數為210043條。將狀態(tài)碼為4和5開頭的記錄刪除后,記錄條數為185291條。按下載文件篩選后有1727條記錄。
圖5中僅列出訪問量前10位的頁面。
以長江大學圖書館主頁服務器Web日志文件為例,分析了Web日志挖掘中的關鍵步驟——數據預處理技術,并針對數據清理、數據縮減、用戶識別進行闡述。Web日志分析可進行時段分析,統計出一天中哪些時段、每周哪天、每月哪天甚至每年哪個時段的訪問人數及具體停留時間,進而分析出訪問人群的上網習慣等相關信息;可進行來源統計,統計出用戶到達目標網頁所經過的路徑,幫助管理者修改、縮短訪問路徑,提高訪問效率;可進行客戶端分析,網站設計者可根據統計出的訪問群瀏覽器和操作系統使用情況,有針對性地對某種瀏覽器或操作系統進行開發(fā);可進行受訪頁分析,統計第一個被訪問的網頁和最后離開網站的網頁,分析通常訪問者從哪個頁面進入網站,從哪個頁面退出網站,設計者可通過這些數據改善網站結構。
Web日志挖掘是Web挖掘領域一個重要的研究方向。它對于發(fā)現用戶瀏覽網站的行為規(guī)律,改善頁面之間的超鏈接結構,提高整個Web系統性能等方面都具有十分重要的意義。
[1] Pitkow J.Insearch of reliable usage data on the WWW[C].In:Proc of 6th Int’T WorldWideWeb Conf.SantaClara.California,1997.
[2] 王麗娜.Web日志挖掘的研究和實現[C].鄭州大學,2005.
[3] 童恒慶,梅清.Web日志挖掘數據預處理研究.現代計算機:專業(yè)版,2004(3).
[4] 夏成文,韓堅華,梁乘銘.Web日志挖掘數據預處理研究.微型電腦應用,2007(10).
[5] Doru Tanasa,Brigitte Trousse.Advanced Data Preprocessing for Intersites Web Usage Mining[J].IEEE Intelligent Systems,March/April 2004:59-65.
[6] 趙紅玲,宋瀚濤.Web日志挖掘中數據預處理的研究[J].計算機應用研究,2004.