论文部分内容阅读
数据挖掘一直以来都是计算机领域的一个研究热点。近年来,随着Web2.0应用的普及和云计算的发展,互联网已经进入了大数据时代,数据的产生、传输、存储、访问和处理方式产生了明显的变化。传统的数据挖掘方法在数据源异构、数据规模急剧膨胀的大数据时代,正面临严峻的挑战。本文提出了一套完整的分布式环境下基于文本的数据挖掘方法,实现了海量文本数据从数据抽取、预处理、搭建数据仓库到数据挖掘的全过程,并将该方法应用于解决微博用户推荐问题进行验证,取得良好效果。广义的数据挖掘工作通常包含两个部分,搭建数据仓库和进行数据挖掘。数据挖掘的对象通常是来自多个异构数据源的大规模数据,从数据一致性、访问效率等因素考虑,需要有一个统一的管理系统对数据进行集成、维护,即数据仓库。数据仓库的搭建包含了数据的抽取、转换和加载,即ETL过程。传统的数据仓库设计是基于RDBMS设计思想的,需要整合所有数据源的数据类型和数据结构,设计一个统一的模式(Schema),包括表结构和外键等。这样做的优势在于可以保证数据的ACID性质。但是在大数据背景下,数据源复杂,异构性强、数据规模扩展迅速,从而对基于RDBMS数据仓库的可扩展性、灵活性以及效率提出了新的挑战。在完成数据仓库搭建的基础上,传统的数据挖掘已经形成了一整套较为成熟的算法体系,典型的算法包括分类、聚类、关联、预测等,此外还与其他学科交叉产生了包括机器学习、神经网络等技术。这些数据挖掘技术应用场景具备一些鲜明的特点:数据一次写入,频繁读,运算密集,而数据更新操作较少。针对这些特点,基于RDBMS设计方法保证的ACID性质的优势不仅得不到充分体现,反而成为了性能上的制约。针对以上问题,本文提出了一套分布式环境下,基于文本的数据仓库搭建与数据挖掘的方案。首先,在数据仓库搭建方面,本文提出一种在分布式环境下快速搭建数据仓库的方法,利用MapReduce完成整个ETL过程;同时摒弃了RDBMS而使用NoSQL数据库集群作为数据仓库的基础,从而保证了系统的可扩展性和运行效率。其次,借鉴搜索引擎的思想,提出一种MongoDB+Lucene+MapReduce的针对文本数据的数据挖掘解决方案,通过并行访问,提高对分布式环境下海量文本数据的访问效率;采用计算TFIDF值评估文本信息量,而非传统的词法、语法分析。最后,应用这一整套方法,解决了一个具有Web2.0特征的数据挖掘问题:微博的用户推荐问题,从而验证了这一方法的可行性,并取得良好效果。