朱琅 济宁市第一人民医院
Web日志中包含了大量的用户浏览信息,如何针对Web日志中的用户行为数据,通过有效的数据
挖掘方法从中分析用户访问数据,并根据分析结论对现有网站的结构设计和交互设计提出有效的改进建议,成为现有网站面临的一个非常重要的课题。基于日志的研究方向主要有网站监控、网络安全、信息推荐等。
当前我院研发的员工技术档案系统实现了人力资源部、医务部、护理部和药学部相关科室的协同办公,共享部分信息数据,系统集成了职工的人事信息、职称、学历、培训、手术授权等数据,并向全院职工开放个人查询和校对的权限,得到了职工广泛使用。本文介绍了一种基于我院员工技术档案系统采集的员工行为日志,分析当前医院职工的行为特征并进行可视化展示,预测未来一段时间内职工可能关注的热点信息,为科室下一步的工作安排提供有效的参考。
用户的行为日志是指用户每次访问网站时,所有的行为数据,包括:访问、浏览、搜索、点击、购买商品、收藏、评论等。通过采集并分析用户行为日志,不仅可以描绘出用户的行为轨迹,还可以挖掘用户的兴趣点,从而可以向用户做出精确的信息推荐,提供个性化服务,提高用户粘性。
一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统,支持在日志系统中定制各类数据发送方,用于收集数据,同时提供对数据进行简单处理,并写到各种数据接受方的能力。
记录的日志信息主要包括:系统特征,比如所采用的操作系统、浏览器、域名和访问速度等;访问特征,包括停留时间、点击的URL、页面标签等;来源特征,包括来访URL,来访IP等。行为日志的深度分成四个级别:接口级,每次调用接口时记录;行为级,用户操作项目任何操作记录,规定每一个操作对应一个编号,前端缓存,批量传入;点击级,记录每一次点击的信息,包括没有点击功能点,包含点击的位置信息; 细微级,网页等鼠标的留存位置等。不同的等级,获取的数据的粗粒度不同,等级越低,获取的数据也就越少,能分析出来的东西也就越少;等级越高,获取的数据量也就很大,处理起来也就越麻烦,相应的可以做到很多粗粒度等级所做不到的东西。
本文采用Log4net作为日志采集的工具。Log4net是.Net下一个非常优秀的开源日志记录组件,记录日志的功能非常强大,它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。针对员工技术档案系统的功能设计,以及日志分析功能的设计方案,日志深度采用接口级和行为级两个级别,从不同粒度进行记录。为了实现分析某一时间段职工集中访问的信息类型数据,日志信息采集格式设计为:访问时间,访问IP,登录账号,访问模块,浏览器类型,字段信息间以制表符进行分隔,其中访问模块主要指职工的信息类型,即基本信息、学历学位、工作经历、职称聘任、培训考核,手术授权。这样,以结构化格式存储日志,方便进一步的统计分析。采集到的日志信息输出到txt文件中,以文件形式保存,以第一条日志记录的时间和最后一条日志记录的时间合并的字符串作为文件名。根据系统多个时间段的访问频率来看,每10000条日志记录成一个txt文件是最好的选择,避免了一个txt文件中日志时间跨度过长的问题,或者固定时间段内日志数量忽多忽少的问题。
日志的可视化工具采用百度研发的ECharts,ECharts是一个使用JavaScript实现的开源可视化库,可以流畅的运行在 PC和移动设备上,兼容当前绝大部分浏览器,提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图等多种图形。
日志检索功能是对采集到的日志可以按条件检索出来进行统计分析,本文设计了根据时间段检索、根据访问模块检索、根据登录账号检索的功能。系统以当前时间为终止时间,默认将一个月前作为起始时间的日志文件全部读入内存,设置检索时间段查询区段日志,或者查看某个访问模块的浏数据。
利用ECharts工具,将查询到的日志分析统计后进行图形化展示。系统主要提供了以下几种数据图形:以柱状图展示某查询时间段内各个访问模块的访问次数,可以直观看出时间段内职工重点关注的模块信息;以柱状图展示某查询时间段内某个职工浏览各个访问模块的访问次数;以折线图展示系统访问次数,时间间隔为24小时,直观统计系统访问量;通过汇总登录IP以饼状图展示各个科室关注的模块信息。
利用日志的分析与可视化展示,直观方便了展示信息热点,为科室下一步工作安排提供重要参考,例如临近每年职称晋升的报名时间点,系统浏览职称聘任模块的日志记录逐渐增多,与此对应拨打电话到主管科室咨询的次数也逐渐增多,因此通过直观查看日志统计分析图表可以预测科室接下来的工作热点,提早进行工作安排。今后可以对日志分析功能进一步改进,利用日志数据增加推荐功能,提高个性化服务水平。