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