论文部分内容阅读
随着互联网和搜索引擎技术的飞速发展,Web中包含的信息不断增加,搜索引擎成为大多数用户为获取网络信息的首选。在用户与搜索引擎的交互过程中,产生了海量的查询日志,而且这些日志还在不断地增长。由于日志中蕴含了大量和用户相关的信息,成为很多公司为更好地了解并吸引更多用户的重点研究对象。利用分布式技术存储并计算海量日志,使得对查询日志的研究变得更加方便。如今各大互联网公司都越来越重视自己的查询日志,期望通过对这些日志进行及时、精确地分析和挖掘来发现隐藏在日志中的用户行为特征,以此来提高用户使用搜索引擎时的满意度,提升企业的市场竞争力。本文以海量查询日志作为处理对象,主要进行的工作有:(1)对日志预处理技术的研究。主要研究了数据清洗、用户识别、会话识别、路径补充和事务识别以及相关算法,并将分布式技术和算法相结合,实现了基于Hadoop的日志预处理过程,为后面数据挖掘做准备。(2)设计用户日志挖掘系统。考虑到日志海量的特点,传统的数据存储和计算方法难以适用于搜索引擎用户行为分析中。针对此问题,本文提出基于MapReduce编程框架对海量日志进行挖掘的思想,根据日志中记录的用户查询词、点击的URL和标识用户身份的ID对用户行为进行建模,将用户行为用特征向量来表示,给出不同用户相似度的计算公式,分析了K-means算法分布式化的可行性并给出详细的分布式实践步骤。实验证明,该算法能够有效的对用户聚类,并在处理海量数据时表现出较好的性能。(3)对用户行为进行分析。主要分析了日志量、用户量及两者的关系;用户查询词的数量、长度、字符组成、常用查询词;被点击的URL总量、URL的深度、常用URL;搜索引擎返回结果的顺序与用户点击的顺序之间的关系。经过对日志的多角度分析,得出用户行为的特征,从而为以后改善搜索引擎和用户之间的交互体验提供参考依据。