论文部分内容阅读
随着科学技术的发展,特别是计算机技术和通信技术的快速发展,科技进入了互联网时代,人们的生活越来越网络化,互联网应用在日常生活中的地位也越来越重要。基于庞大的用户群体和频繁的用户使用率,互联网世界产生了海量的数据。据IDC预测结果显示,到2020年,全世界的数据量保有量将达到40ZB(1ZB=10亿TB),而且数据规模和数据多样性都呈现爆炸性的增长。我们正处于一个数据的海洋之中。 在这海量的数据资源中,文本数据占据了重要地位。文本数据包括了电子邮件、网页、学术论文、电子书籍、聊天记录、商品评论等,是互联网中最常见的资源。这些文档中包含了了大量的信息,是我们知识获取的重要来源。但互联网文本数据不仅数量庞大、格式多种多样,而且往往是半结构化或者非结构化的数据。如何充分利用这些文本数据,成了我们亟待解决的问题。 互联网数据的体量及增长速度,决定了使用传统的方法进行文本挖掘是不现实的。只有借助最新的大数据处理技术,才能帮助我们在海量文本数据中发现规律,获取知识并指导实际生产。大数据文本挖掘技术中,最重要的要解决文本数据的存储和处理问题。 针对以上存在的问题,本文在前人成果的基础上做了以下工作: 1)研究了文本存储、文本处理、以及文本获取的最新技术。其中,分析了文本数据的特点和大数据时代下文本数据存储面临的问题,并从关系型数据库的不足和非关系型数据库MongoDB的特点出发,阐述了采用MongoDB作为文本数据存储和管理方案的原因;分析了新一代大数据处理引擎Spark相对于Hadoop的优势,并研究了Spark的编程模型RDD和Spark机器学习库MLlib;最后研究了网络爬虫技术获取网页数据的原理。 2)以文本挖掘技术中的文本情感分类为分类目标,研究了文本分类的实现过程。包括了对文本情感分类技术的研究,并从文本预处理,文本向量化表示,文本特征提取,文本分类算法几个方面阐述了文本分类的实现过程。 3)设计并实现Spark-MongoDB平台的各个模块。首先设计网络爬虫(Web Crawler)抓取流程,并获取网站的评论数据;接着设计MongoDB的存储流程,对采集到的评论数据进行存储;然后分析了常用分词工具的特点,并选择Ansj分词器实现中文分词和去停用词;最后设计了在Spark上进行文本分类的流程,并给出了Spark-MongoDB的整体功能框架图。 4)搭建Spark-MongoDB平台并运行算法,评估平台的性能。在Linux操作系统上搭建Hadoop,Spark,MongoDB集群,并将它们串联;分别对单节点本地、单节点MongoDB、集群HDFS、集群MongoDB四种部署模式下的NB算法、SVM算法,采用准确率P、召回率R、F检验这三个指标,评估平台的分类效果;通过在MongoDB集群中添加Shard节点、创建分片集合、对已有数据集合进行分片,验证了平台的扩展性;最后使用加速比(Speedup)验证了平台的分布式计算能力。 通过上述的论证和实验,证明了结合Spark-MongoDB的文本分类技术平台,不仅能有效解决海量文本数据存储面临的结构复杂性、集群扩展性问题,也具备较高的处理速度和较好分类准确度,该平台无论在实验室环境还是在实际生产中,都具备良好的应用价值。