Web日志预处理技术探析

2011-12-31 00:00:00贾丙
电脑知识与技术 2011年10期


  摘要:随着Internet的普及,Web日志挖掘成为一个新的研究课题。由于Web日志数据的半结构化,为了得到有效的挖掘模式,提高挖掘算法的效率,首先需要对数据预处理。该文详细介绍了Web日志数据预处理的四个步骤:数据清洗,用户识别,会话识别和路径补充,并实现了对某校院网日志记录的预处理,得到了理想的结果。
  关键词:数据预处理;数据清洗;用户识别;会话识别
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)10-2222-02
  Web日志挖掘[1] 就是通过分析保留在服务器上的用户访问日志记录,从而发现用户访问Web页面的模式,分析用户在Web站点的访问日志可以帮助理解用户的行为和Web的拓扑结构,帮助网站管理人员改进站点的结构,提高站点的访问率,带来一定的经济效益。但由于原始日志数据是半结构化的数据,其中包含了大量有缺陷的、冗余的原始数据,不能拿来直接进行挖掘,因此在对其进行挖掘之前,必须要对它进行预处理。
  Web日志数据进行删除、筛选、重新组合,最后转化为能直接进行挖掘的数据格式,并保存到数据库中,以便于下一步的处理。主要由数据清洗,用户识别,会话识别,路径补充四个步骤来完成。
  1 数据清洗
  数据清洗[2]就是将不一致、无关的数据从Web日志数据源中清除掉。可以建立以下规则对日志数据进行缩减。
  1) 辨别URL,删除无关记录。
  在日志挖掘中,只有用户主动请求的URL对分析挖掘才有用处,如果网站是以文本内容为主的网站,就要把伴随页面一块下载下来的图片、音频等与内容无关的信息从日志文件中删除掉,也就是删除后缀为gif、jpg、jpeg、bmp、mp3、png、cgi、js、css的URL。但是如果网站以图片为主,应保留后缀为gif、jpg、jpeg、bmp的URL,删除其它后缀的URL。所以,应该根据不同的挖掘目的,辨别URL。
  2) 辨别状态码,删除错误记录。
  如果用户请求失败,在Web日志中也会保留这些情况,但这些记录对日志挖掘来说是没有意义的。所以在进行数据清洗的时候,可以通过辨别日志中的状态码,删除状态码以4开头或以5开头的记录。
  3) 辨别请求类型。三种最常见的请求类型是:GET、POST、HEAD。只有GET是用户请求页面的操作,其它请求类型的记录则可以删除。
  4) 删除无关的属性。Web日志文件中记录了用户日期(date)、时间(time)、客户IP地址(c-ip)、服务器IP (s-ip)、发送字节数(sc-bytes)等属性。这些并不都是挖掘所需要的,因此可以根据挖掘目的只选择保留用户访问时间、用户的IP地址和所请求的页面等属性,删除其它属性。
  本文采集某学院2008年7月30号的服务器日志文件做为研究对象,根据Web日志的格式和内容,依据以上四条规则清理。该日志文件中原来有48350条日志记录,经过数据清理后有2420条记录,净化率达到95%。表1是数据净化后的5条日志记录。
  2 用户识别
  用户[3]是指通过浏览器访问一个或多个站点的个体。用户识别是从数据清洗后的数据中识别每个访问网站的用户。目前,用户识别的常用方法有IP地址/Agent、注册、使用Cookies等。到现在为止还没有一种通用的方法能够完全准确的识别出用户。常使用IP地址/ Agent类型以及一些临时信息综合起来标识一个用户。具体方法是:
  第一步,优先考虑IP,IP不同则表示不同的用户。
  第二步,综合考虑浏览器、操作系统,IP相同,但是用户的浏览器或操作系统不同,则认为是不同的两个用户。
  第三步,IP地址相同,用户的浏览器和操作系统也相同,构造每个用户的浏览路径,判断用户当前请求访问的页面与之前浏览过的页面之间是否有链接。如果没有直接的链接,则认为是具有相同IP的多个用户,如果有则表示是一个用户。
  我们从校园网上采集的日志数据,用户主要是学生、教师、领导、家长等。大多是通过校园网或者公网访问,而只有少数人通过代理服务器访问,在上述3条规则的基础上,我们分析了采集到的Web日志数据,标识这段时间内访问该校院网的用户。表2示意了用户识别的结果。
  3 会话识别
  用户会话[4]是指用户对服务器的一次有效访问。通过其连续请求的页面,可以发现用户的访问行为和浏览兴趣。显然不同用户请求的页面属于不同的会话。当某个用户的页面请求在时间上跨度比较大时,就有可能是该用户多次访问同一个网站,可以将用户的访问记录分成多个会话来处理,这就叫做会话识别。会话识别有多种算法,有的基于时间进行划分,有的则依据站点的拓扑结构。现有的会话识别方法分为三类,下面分别来介绍。
  3.1 设置会话固定时间阈值
  给用户一次会话时间设置一个阈值θ。即会话的最后一个页面访问时间tn与会话的第一个页面访问时间t1,两者的时间差tn- t1≤θ,则认为是同一个会话,如果超过这个阈值则认为是新会话的开始。该阈值一般设定为30 分钟,但是L.Catledge 和J.Pitkow 由实验得出设为25.5 分钟更合理一些。
  3.2 设置页面访问时间阈值
  给用户一个页面停留时间域值?灼。假设