




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于Spark的Web文本挖掘系统的研究与实现摘 要通信技术与电子技术的高速发展带动了互联网网页的爆发式增长。各类网站由雨后春笋大量出现,数百亿网页散布在整个互联网中。同时各类网页有着自身不同的结构,因此急需一种高效的处理手段来帮助人们快速地从庞大的互联网文本数据集中提取出有价值的信息,用以取代传统的人工数据处理。近年来,以Hadoop框架和并行处理框架Spark为代表的大数据技术开始兴起,为海量数据的存储和处理提供了新的思路和技术支持。尤其是新一代计算框架Spark,由于其底层采用了基于内存的计算,相比Hadoop具备更高的处理效率,同时还提供了对实时计算和交互式数据访问的支持。克服了Had
2、oop在这些应用中的不足。因此,本系统选择了并行计算框架Spark作为文本挖掘过程的实现工具,以此为基础构建了针对新浪微博舆情热点的Web文本挖掘系统。主要工作可以概括为以下几个部分:在系统开发的知识准备和技术了解部分,对Web文本挖掘的基本概念和通用流程进行了研究和介绍;随后按照整个系统的处理流程,对各个部分设计的技术进行了分别介绍,包括网络爬虫、挖掘工具以及数据可视化。其中选取HDFS与并行计算框架Spark框架做了着重介绍。在系统的算法研究部分,选取了经典特征提取算法TF-IDF算法进行了深入研究。从算法的原理,优势、不足和改进几个方面分别进行了阐述。着重介绍了算法的原理和内容,同时也提
3、供了关于优化算法的思路。在系统的设计部分,将系统按照功能划分分成了三个主要模块:数据采集模块、文本挖掘模块以及数据可视化模块。分模块对每个模块的功能、架构设计进行了介绍,同时确定了各个模块实现的计算选型和执行流程。在系统的实现部分,首先介绍了HDFS与Spark框架环境的详细搭建部署过程。随后根据系统设计的编排顺序,对系统三大模块的具体实现做了详细的介绍,包括功能实现和交互实现两个部分。最后对系统进行了运行测试,抓取了约100万微博消息数据进行了初步测试,证实了系统具有良好的可用性。关键词:Web文本挖掘,Spark,大数据,TF-IDF算法,网络舆情Research and Implemen
4、tation of Web Text Mining System Based on SparkAbstractThe rapid development of communication technology and electronic technology has led to the explosive growth of Internet pages. Various types of sites have emerged from the mushroom, tens of billions of pages scattered throughout the Internet. At
5、 the same time all kinds of pages have their own different structure, so an urgent need for an efficient means to help people quickly from the huge Internet text data set to extract valuable information to replace the traditional manual data processing. In recent years, Hadoop framework and parallel
6、 processing framework Spark as the representative of the large data technology began to rise, for the mass data storage and processing provides a new way of thinking and technical support. In particular, the new generation of computing framework Spark, because of its underlying use of memory-based c
7、omputing, compared to Hadoop with higher processing efficiency, but also provides real-time computing and interactive data access support. Overcoming the shortcomings of Hadoop in these applications. Therefore, the system chooses the parallel computing framework Spark as the realization tool of the
8、text mining process, and builds the Web text mining system for the hotspot of Sina microblogging. The main work can be summarized as follows:1. In the knowledge preparation and technology understanding part of the system development, the basic concepts and general flow of Web text mining are studied
9、 and introduced. Then, according to the whole process flow, the technology of each part is introduced separately, including network Reptiles, digging tools and data visualization. Which selected HDFS and parallel computing framework Spark framework made a focus on the introduction.2. In the part of
10、the algorithm research, the TF-IDF algorithm of classical feature extraction algorithm is studied deeply. From the principle of the algorithm, advantages, shortcomings and improvements in several aspects were described. This paper introduces the principle and content of the algorithm, and also provi
11、des the idea of optimizing the algorithm.3. In the design part of the system, the system is divided into three main modules according to the function: data acquisition module, text mining module and data visualization module. The function and architecture of each module are introduced, and the calcu
12、lation and selection process of each module is determined.4. In the implementation part of the system, first introduced the HDFS and Spark framework environment detailed deployment process. Then, according to the order of the system design, the detailed implementation of the three modules of the sys
13、tem is introduced in detail, including the function realization and the interactive realization of the two parts. Finally, the system was run test, grabbed about 100 million microblogging message data for the initial test, confirmed that the system has good usability.Keywords: Web Text Mining, Spark
14、 , TF-IDF Algorithm,Internet Public Opinion目 录 TOC o 1-3 h z u HYPERLINK l _Toc481963917 第1章 绪论 PAGEREF _Toc481963917 h 1 HYPERLINK l _Toc481963918 1.1 研究背景 PAGEREF _Toc481963918 h 1 HYPERLINK l _Toc481963919 1.2 研究现状 PAGEREF _Toc481963919 h 1 HYPERLINK l _Toc481963920 1.2.1 文本挖掘技术 PAGEREF _Toc48196
15、3920 h 1 HYPERLINK l _Toc481963921 大数据处理技术 PAGEREF _Toc481963921 h 2 HYPERLINK l _Toc481963922 文章的内容及意义 PAGEREF _Toc481963922 h 2 HYPERLINK l _Toc481963923 第2章 相关知识与技术介绍 PAGEREF _Toc481963923 h 4 HYPERLINK l _Toc481963924 2.1 网络爬虫 PAGEREF _Toc481963924 h 4 HYPERLINK l _Toc481963925 2.2 文本挖掘 PAGEREF
16、_Toc481963925 h 5 HYPERLINK l _Toc481963926 2.3 分布式存储系统HDFS PAGEREF _Toc481963926 h 7 HYPERLINK l _Toc481963927 2.4 大数据处理框架Spark PAGEREF _Toc481963927 h 8 HYPERLINK l _Toc481963928 2.4.1 Spark核心组件 PAGEREF _Toc481963928 h 8 HYPERLINK l _Toc481963929 弹性分布式数据集RDD PAGEREF _Toc481963929 h 9 HYPERLINK l _
17、Toc481963930 2.4.3 Spark工作流程 PAGEREF _Toc481963930 h 9 HYPERLINK l _Toc481963931 2.4.4 Spark的优势 PAGEREF _Toc481963931 h 10 HYPERLINK l _Toc481963932 2.5 数据可视化 PAGEREF _Toc481963932 h 10 HYPERLINK l _Toc481963933 第3章 挖掘算法研究 PAGEREF _Toc481963933 h 12 HYPERLINK l _Toc481963934 3.1 TF-IDF算法 PAGEREF _To
18、c481963934 h 12 HYPERLINK l _Toc481963935 3.1.1 TF-IDF算法介绍 PAGEREF _Toc481963935 h 12 HYPERLINK l _Toc481963936 3.1.2 TF-IDF算法的理论依据及不足 PAGEREF _Toc481963936 h 12 HYPERLINK l _Toc481963937 3.1.3 算法的改进思路 PAGEREF _Toc481963937 h 13 HYPERLINK l _Toc481963938 第4章 系统总体设计 PAGEREF _Toc481963938 h 14 HYPERLI
19、NK l _Toc481963939 系统需求概要 PAGEREF _Toc481963939 h 14 HYPERLINK l _Toc481963940 4.1.1 文本采集 PAGEREF _Toc481963940 h 14 HYPERLINK l _Toc481963941 4.1.2 数据存储 PAGEREF _Toc481963941 h 14 HYPERLINK l _Toc481963942 4.1.3 文本分析 PAGEREF _Toc481963942 h 14 HYPERLINK l _Toc481963943 4.1.4 结果可视化 PAGEREF _Toc48196
20、3943 h 14 HYPERLINK l _Toc481963944 4.2 系统设计概要 PAGEREF _Toc481963944 h 14 HYPERLINK l _Toc481963945 4.2.1 系统架构设计 PAGEREF _Toc481963945 h 14 HYPERLINK l _Toc481963946 4.2.2 系统模块划分与技术选取 PAGEREF _Toc481963946 h 15 HYPERLINK l _Toc481963947 数据处理流程 PAGEREF _Toc481963947 h 17 HYPERLINK l _Toc481963948 用户界
21、面设计 PAGEREF _Toc481963948 h 17 HYPERLINK l _Toc481963949 第5章 系统实现 PAGEREF _Toc481963949 h 18 HYPERLINK l _Toc481963950 系统运行环境 PAGEREF _Toc481963950 h 18 HYPERLINK l _Toc481963951 5.2 系统环境搭建 PAGEREF _Toc481963951 h 18 HYPERLINK l _Toc481963952 5.2.1 HDFS的搭建 PAGEREF _Toc481963952 h 18 HYPERLINK l _Toc
22、481963953 5.2.2 Spark框架的安装 PAGEREF _Toc481963953 h 21 HYPERLINK l _Toc481963954 5.3 模块设计的具体实现 PAGEREF _Toc481963954 h 21 HYPERLINK l _Toc481963955 数据采集模块 PAGEREF _Toc481963955 h 22 HYPERLINK l _Toc481963956 文本挖掘模块 PAGEREF _Toc481963956 h 23 HYPERLINK l _Toc481963957 数据可视化模块 PAGEREF _Toc481963957 h 2
23、4 HYPERLINK l _Toc481963958 第6章 总结与展望 PAGEREF _Toc481963958 h 26 HYPERLINK l _Toc481963959 6.1 本文总结 PAGEREF _Toc481963959 h 26 HYPERLINK l _Toc481963960 6.2 展望 PAGEREF _Toc481963960 h 26 HYPERLINK l _Toc481963961 参考文献 PAGEREF _Toc481963961 h 28 HYPERLINK l _Toc481963962 致谢 PAGEREF _Toc481963962 h 29
24、第1章 绪论1.1 研究背景互联网自诞生以来就对各行业和人们的生活方式产生着深刻的影响,而今更甚,网民规模在移动互联网兴起后更是发生了爆炸式的增长。根据2017年1月中国互联网信息中心(CNNIC)发布的第39次中国互联网发展状况统计报告截至2016年12月,我国网民规模达亿,普及率达到53.2%,超过全球平均水平个百分点,超过亚洲平均水平个百分点 HYPERLINK E:2016201639390119.docx l _ftn1 1。全年共计新增网民4299万人,增长率为6.2%。中国网民规模已经相当于欧洲人口总量。随着2016年度微博用户发展报告显示,据2016年微博发布的第三季度财报中显
25、示,截止2016年9月30日,微博月活跃人数已达到亿,较2015年同期相比增长34%;其中9月份移动端在MAU 总量中的占比为89%;9月的日活跃用户达到亿,较去年同期增长32%。从以上数据可以看出新浪微博在网络意见汇聚和传播中起了非常重要的作用,已经成为舆情发展的主要媒介。因此,微博热点可以作为当前社会舆论热点的一个侧面体现。截至2016年12月,中国的网页数量约为2360亿个,年增长11.2%,数量较2010年增长了近四倍。面对如此海量的数据,传统的以人力驱动的文本挖掘系统其有限的处理能力已不再适用。大数据技术的出现让我们对海量数据进行快速处理成为了可能,其中Apache Spark 是当
26、前流行的大数据处理模型,具有快速、通用、简单等特点。Spark是针对MapReduce 在迭代式机器学习算法和交互式数据挖掘等应用方面的低效率,而提出的新的内存计算框架,既保留了MapReduce 的可扩展性、容错性、兼容性,又弥补了MapReduce 在这些应用上的不足。1.2 研究现状 文本挖掘技术文本挖掘也称文本中的知识发现,是数据挖掘方法在文本数据集上的运用旨在从大量非结构化的文本集合中挖掘信息、发现知识。它是一个跨学科的交叉研究领域,涉及机器学习、自然语言处理、统计学等多个领域的知识和方法。近年来,随着数据存储技术和互联网的不断发展,数据正以前所未有的速度迅速增长和积累,特别是社交媒
27、体的用户每天都在创造大量的文本信息。这些数据一定程度上记录了人们的行为态度、交往过程和互动关系,为研究人们的社会化行为提供了新的可能。社会科学研究方法是我们认识各种社会现象及事物的途径,是我们获取知识的重要方式。文本挖掘可以利用机器学习、自然语言处理等计算机技术从大量文本数据中发现模式、规律、趋势等,为学者以定量手段进行社会科学研究提供新的方法。社会计算的目的便在于架起自然科学与社会科学之间的桥梁,借助计算机技术形成一套完整的社会科学定量分析研究手段。基于此,文本挖掘在社会科学领域研究中的应用得到了学者们越来越多的关注。相关研究表明,近年来国际上关于文本挖掘的研究论文呈不断上升趋势,且主要集中
28、在自然科学领域。王继成、潘金贵、张福炎于2000年在论文web文本挖掘技术研究中提出了一种才用多个agent体系结构的web文本挖掘系统原型Web Miner.Web Miner。将多维文本分析与文本挖掘这两种技术有机地结合起来 ,以帮助用户快速、有效地挖掘 Web上的 HTML 文档。陈建华、包煊于2010年在论文Web挖掘系统的设计与实现中从文本挖掘定义、挖掘任务、挖掘分类等方面介绍了挖掘理论。在分词中采用了近邻法来减少训练样本集中的样本数量来加快算法的执行速度。胡健、杨炳儒等人于2008年在论文基于非结构化数据挖掘结构模型的Web文本聚类算法中提出了一种新的Web文本聚类算法基于DFSS
29、M的Web文本聚类(WTCDFSSM)算法。该算法可以对各类远程教育站点上收集的文本资料信息自动进行聚类挖掘;采用网格结构模型,帮助人们进行文本信息导航;从海量文本信息源中快速有效地获取重要的知识。黄晓斌、赵超于2009年在论文文本挖掘在网络舆情信息分析中的应用中介绍了网络舆情的特点与作用,分析了文本挖掘技术的主要功能,提出网络舆情信息挖掘分析模型,并以实例说明文本挖掘在网络舆情分析中的应用。 大数据处理技术当今时代是一个信息爆炸的时代,每时每刻都有大量的数据被生产、搬运和应用。为了解决原来越多海量数据的专业化、规模化加工问题,挖掘数据蕴藏的价值,大数据处理技术应运而生。初代大数据并行处理框架
30、Hadoop应用最为广泛,但是随着大数据领域的研究和实践不断的深入,也暴露出一些问题,如不适合低延迟数据访问、不能进行迭代式数据处理等缺点。Spark基于内存计算,自2013年成为Apache基金项目后高速发展,凭借其高效的数据处理能力和对实时、交互式数据访问的支持逐渐成为新一代的大数据处理引擎。其最新版本Spark的机器学习库中包含了丰富的数据挖掘相关算法,如LDA,聚类算法K-means、分类算法朴素贝叶斯等。能够轻松应归常规的大规模文本挖掘场景,并具有很好的效果和很高的效率。但是,作为一种新兴的技术,面对多元的复杂的文本挖掘需求,还是有一定改进的空间。1.3 文章的内容及意义本文的主要内
31、容包括了以下几点:介绍了文本挖掘的含义以及具体的实现过程,并特别针对社交网站的文本挖掘的相关知识进行了学习和研究,包括了高效的用于新浪微博文本数据采集的网络爬虫技术,用于文本挖掘处理的大数据处理技术以及对挖掘结果进行直观展示的数据可视化技术。对用于大规模文本挖掘的大数据相关技术进行了研究,包括并行计算框架Spark、分布式存储系统HDFS。对文本挖掘相关算法进行了研究。实现了一个基于Sprak用于社交网站舆情领域的文本挖掘系统,能够快速准确地对海量的消息进行处理,得到准确的分析结果。构建了对挖掘后数据的可视化系统,提供数据的直观展示和用户交互的处理。第2章 相关知识与技术介绍本章介绍了web文
32、本挖掘系统的设计与实现的相关技术,文本挖掘的实现流程和步骤,网络爬虫数据采集程序,数据的储存与计算平台,以及数据的采集和可视化相关技术。2.1 网络爬虫网络爬虫是一种按照一定规则自动地抓取互联网信息的程序或者脚本。一般来说,网络爬虫可以分为通用网络爬虫、聚焦网络爬虫、增量试网络爬虫一集Deep Web爬虫四种。其中通用网络爬虫一般作为搜索引擎的数据抓取部分。网络爬虫同样是数据挖掘中数据集的重要来源之一。网络技术迅速发展,互联网则是大量信息的载体,怎样高效地提取和利用这些信息成为了一个很大的挑战。通用网络爬虫的特点是尽可能的提高网络覆盖率和抓取速率,有可能返回大量与需求不相关的内容,这种方式在处
33、理结构复杂的信息时也有些吃力。因此部署运行爬虫的有限资源与近乎无限的互联网信息就存在很大矛盾。为了解决这些问题,提高数据采集效率,定向爬取网络资源的聚焦爬虫应运而生。它选择性地爬行那些与预定好的主题相关页面的网络爬虫。这样的做法和通用爬虫相比可以极大的节省网络和硬件资源,同时抓取到的数据也具有更高的质量,不但减轻了后续数据清洗的工作量还有助于对信息进行进一步的挖掘。爬虫的一般工作流程是:从把精心挑选的初始URLURLURL进行新一轮的爬取,如此循环这个过程,就能达到采集大量信息的目地。聚焦爬虫的工作流程较为复杂,需要根据一定的搜索策略从队列中选择下一步要抓取的URL,并重复上一过程,直到打到系
34、统的某一条件时停止。另外,所有被爬虫抓取的网页还会被系统储存,进行一定的分析过滤,并建立索引,以便以后的查询和检索,此外这个过程得到的分析结果还可能对以后的抓取过程给出反馈和指导。图2.1.1 爬虫执行流程2.2 文本挖掘文本挖掘是利用数据挖掘方法在文本数据集上的运用,旨在运用计算机技术从大量非结构化的文本集合中抽取、归纳文本内容,帮助人们从海量的文本数据集中发现有价值的信息和知识。实现的流程如图2.1所示:图2.2.1 文本挖掘流程1数据清洗互联网上的文本数据巨大且形式不尽相同,为了使文本挖掘的效率更高结果更准,在使用挖掘算法对数据源进行挖掘处理之前必须对采集到的源数据进行数据清洗。其过程可
35、以简要概括去除文本标记、分词、去除停用词三个步骤。去除文本标记:网站上的文本数据大都以HTML和XML格式进行保存,其中包含大量用于格式化文本的标签。不仅如此,文本自身也含有大量标点符号、特殊字符以及空格等。去除文本标记的目的就是去除这些对文档完整性没有影响的部分,减少可能对挖掘结果造成的干扰。分词:分词是进行中文文本挖掘的基础和比较关键的步骤,常用的方法有词库对比和词频统计。其中基于词频统计的方法通过分析文本进行分词,不依赖词典,效果较稳定,而词库分词的效果则受词典质量影响会有明显波动。去除停用词:去除文本中的“的”、“地”、“得”这类虚词,这些词语只用来标识自然语言中的语法关系而并不会对文
36、本内容的实际意义造成影响。2文本表示很多文本数据无法直接被计算机处理,需要将文本转换成计算机能够识别的语言,用来获取初始的文本特征集。布尔模型和空间向量模型是文本表示的两种主要模型。其中布尔(Boolean)模型是基于集合论和布尔代数的一种简单检索模型。它的特点是查找那些于某个查询词返回为“真”的文档。在该模型中,一个查询词就是一个布尔表达式,包括关键词以及逻辑运算符。通过布尔表达式,可以表达用户希望文档所具有的特征但完全匹配会导致太多或者太少的结果文档被返回。而向量空间模型(VSM)把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂。当文档被表示为
37、文档空间的向量,就可以通过计算向量之间的相似性来度量文档间的相似性。3特征选取对文本进行语言学处理和数学处理后得到的结果,包括词性、词频、TF-IDF分数等都可作为文本的特征使用。比如向量空间模型可以直接使用TF-IDF分数作为特征,通常,针对不同的任务,可以使用不同的特征,比如情感分析会附带上情感词典(比如正面-情感词的百分比、负面-情感词的百分比、每个句子中否定词个数、每个句子中程度副词个数、每个句子特殊标点符号个数)作为新的特征。序列标注模型,会使用序列边界与否作为新的特征。获取新的特征后,可以使用传统机器学习的降维方法,对数据进行筛选和降维,比如主成分分析算法(PCA)、局部线性嵌入(
38、LLE)、LDA、Laplacian Eigenmaps拉普拉斯特征映射等。2.3 分布式存储系统HDFSHDFS(Hadoop Distributed File System)是Apache基金会Hadoop项目的一个子项目。它是一个高度容错的分布式文件系统,设计用于在低成本硬件上使用。它屏蔽了具体的技术细节,从最终用户的角度来看,他就想传统的文件系统一样,可以通过目录路径对文件执行各种操作。HDFS主要有以下几个特点:HDFS适合储存大量文件,总储存量可以达到PB,EB级。HDFS也适合存储单个的文件,单个文件一般在百兆级别以上,不大适合处理大量的小文件。基于廉价的普通硬件,可以容忍硬件出
39、错。系统中的某一台或几台服务器出现故障的时候,系统仍然可以利用备份保证数据的完整性。基于简单的一致性模型,HDFS应用程序需要满足一次写入,多次读取一个文件的访问模式,支持追加操作,但无法对已经存在的数据进行修改。支持顺序的数据流访问,HDFS适合处理批量数据而不适合用于随机定位访问。同时,它侧重高吞吐量的数据访问,可以容忍数据的高延迟,不大适合需要低延迟数据系统的构建由于分布式存储系统的性质,HDFS集群拥有一个NameNode和多个DataNode。NameNode管理文件系统的元数据,DataNode存储实际的数据。客户端通过同NameNode与DataNodes的交互访问文件系统。客户
40、端向NameNode发送请求以获取文件的元数据,而真正的文件I/O操作是直接和DataNode进行交互的。图 HDFS架构 大数据处理框架SparkSpark于2009年诞生于加州大学伯克利分校AMPLab。目前,已经成为Apache软件基金会旗下的顶级开源项目。它和Hadoop的MapReduce计算框架类似,但是相对于MapReduce,Spark凭借其可伸缩、基于内存等特点以及可以直接读写Hadoop上任何格式数据的优势,进行批处理时更加高效,并且具有更低的延迟。Spark已经成为轻量数据快速处理的统一平台,各种不同的应用,如实时流处理,机器学习,交互式查询等,都可以通过Spark建立在
41、不同的存储和运行系统上。2. Spark核心组件以Spark为核心的整个生态圈,最底层为分布式存储系统HDFS、Amazon S3、Mesos,或者其他格式的存储系统(如Hbase,Hive等);资源管理采用Mesos、YARN等集群资源管理模式,或者Spark自带的独立运行模式,以及本地运行模式。在Spark大数据处理框架中,Spark为上层多种应用提供服务。例如,Spark SQL提供SQL查询服务,性能比Hive快350倍;MLlib提供机器学习服务;GraphX提供图计算服务;Spark Streaming将流式计算分解成一系列短小的批处理计算,并且提供高可靠和吞吐量服务。值得说明的是
42、,无论是Spark SQL、Spark Streaming、GraphX还是MLlib,都可以使用Spark核心API处理问题,它们的方法几乎是通用的,处理的数据也可以共享,不仅减少了学习成本,而且其数据无缝集成大大提高了灵活性。图2.4.1 Spark核心组件2.4.2 弹性分布式数据集RDDSpark的核心概念是RDD,全称为Resilient Distributed Datasets,是一个容错的、并行的数据结构,可以分布在集群的节点上,以函数式编程操作集合的方式进行各种并行操作。可以将RDD理解为一个具有容错机制的特殊集合,它提供了一种只读、只能有已存在的RDD变换而来的共享内存,然后
43、将所有数据都加载到内存中,方便进行多次重用。RDD是弹性的,当内存不足时它还可以与磁盘进行数据交换。RDD的实质是一种更为通用的迭代并行计算框架,用户可以显式地控制计算的中间结果并用其再次进行后续的计算。2.4.3 Spark工作流程Spark的任务从创建Spark Application的运行环境启动SparkContext开始,在SparkContext的初始过程中会分别创建DAGScheduler作业调度和TaskScheduler两级任务调度模块。随后SparkContext向资源管理器(根据实际情况确定,可能是Standalone、Mesos、Yarn)申请Executor资源,再由
44、资源管理器分配资源并启动StandaloneExecutorBackend,executor,之后向SparkContext申请Task。DAGScheduler将job 划分为多个stage,并将Stage提交给TaskScheduler,Tsak在Executor上运行,运行完毕后将释放所有资源。图2.4.2 Spark工作流程2.4.4 Spark的优势快速处理能力。Spark允许将中间输出和结果存储在内存中,节省了大量的磁盘IO。同时Spark自身的DAG执行引擎也支持数据在内存中的计算。根据Spark官方的数据,Spark性能大约比Hadoop高了100倍,即使内存不足需要磁盘IO,
45、这时也要比Hadoop快上十倍。易于使用。Spark现在支持Java、Scala,Python和R等语言编写应用程序,大大降低了使用的门槛。自带了80多个高等级操作符,允许在Scala,Python,R的shell中进行交互式查询。支持流式计算。与MapReduce只能处理离线数据相比,Spark对实时的流计算提供了支持。Spark Streaming提供了对数据实时处理功能的支持,其流式处理能力还要强于Storm。可靠性高。Spark自身实现了Standalone部署模式,在这种模式下,Master节点可以有不止一个,解决了Master节点可能出现故障的问题。丰富的数据源支持。除了对操作系统
46、自身的文件系统和HDFS提供了支持,Spark还很好地支持了Cassandra, HBase, Hive等作为数据源。 数据可视化海量数据的涌现,数据过剩和信息超载等问题促使了数据可视化技术的出现。数据时代数据可视化成为理解和表达数据的有效手段甚至是唯一手段。数据可视化主要旨在借助图形化的手段,清晰有效地展现与传达信息。一方面,数据赋予可视化以意义。另一方面可视化增加数据的灵性,两者相辅相成,帮助人从信息中提取知识、从知识中收获价值。文本可视化是数据可视化的一个子命题,其大致流程如图2.所示。文本可视化涵盖了信息收集、数据预处理、知识表示、视觉呈现和交互等过程。其中,数据挖掘和自然语言处理等技
47、术充分发挥计算机的自动处理能力,将无结构的文本信息自动转换为可视的有结构信息。可视化呈现可以让人类视觉认知、关联、推理的能力得到充分的发挥,为人们更好的理解文本和发现知识听过了新的有效途径。文本分析信息收集数据预处理知识表示可视化呈现可视化呈现视觉交互视觉编码操作数据图2.5 文本可视化基本框架第3章 挖掘算法研究本章为web文本挖掘系统的实现作了算法的研究,在热点内容的抽取上,准备采用经典的特征提取算法TF-IDF算法。3.1 TF-IDF算法 TF-IDF算法介绍TF-IDF算法是一种用于信息检索与文本挖掘的常用加权算法,可以用于一个词在一个文件或者一个文件对于一个语料库的重要程度的评估。
48、字词的重要性随它的文本中出现的频数成正比增加,同时还会随着她在语料库中出现的频率成反比下降。在一个给定的文件里,词频(term frequency,tf)指的是给定的词语在该文件中出现的频率。它是对词数(term count)的归一化,避免更偏向于长文本。(文本越长同一个词语在该文件内可能会比在较短的文件内有更高的词数,与该词的重要程度无关。)对于在某个特定文件的词ti,它的重要性可以用以下公式表示:tfi,j=ni,jknk,j (3.1)在以上式子中ni,j是该词在文件dj中出现的次数,分母为文件dj中所有字词出现的次数总和。逆文件频率(inverse document frequency
49、 , idf)是度量一个词语普遍重要性的参数。某一个特定词语的idf,可以由总文件数目除以包含该词语文件的数目,将其商进行取对数运算得到:idfi=logDj:tidj (3.2)其中D表示语料库中的文件总数,j:tidj表示包含词语ti的文件数目(ni,j0的文件数目),如果ti不在语料库中,分式的分母则为零。因此,一般情况下使用1+j:tidj。最后tfidfi,j值由tfi,j值与idfi值相乘得到,即:tfidfi,j=tfi,jidfi ()在某一特定文档内有高词频,以及该词在整个文档集合中有着低文件频率,那么该词将有高权重的tf-idf值。 TF-IDF算法的理论依据及不足TF-I
50、DF算法创建在这样一个假设之上:对区别文档最有意义的词语应该是那些在文档中出现频率高,而在整个文档集合(语料库)中出现频率少的词,所以如果特征空间坐标系取tf词频来作为测度,就能体现同类文本的特点。另外考虑到单词有区分不同不同类别的能力,TF-IDF算法认为一个词出现的文本频数越小,他区别不同文本的能力就越强。因此引入了逆文本频度idf的概念,以tf和idf的乘积作为特征空间坐标系的最终测度,并用它完成多权值tf的修正,调整权值的主要目的是突出重要单词,抑制次要单词。但是在本质上idf是一种试图抑制噪声的加权,并且单纯地认为文本频率小的词更重要,文本频率大的词就更次要,显然这不是完全正确的。i
51、df的简单结构并不能完全准确地反映单词的重要程度和特征词的分布状况,因此它并不能很好地完成对权值的修正功能,因此TF-IDF算法的精度并不是很高。3. 算法的改进思路在实际应用中,我们可以人为地增加判别条件对部分词语进行加权处理。例如词语在一句话中的位置,我们可给在句首、句中、句尾的词语分别赋予不同的额外权值,通过一定的公式计算,对出现在这些位置的词语进行加权操作。此外,词语带有的符号修饰也值得关注,例如在互联网网页文本数据中,我们可以根据不同的标签对其中词语进行不同的加权处理。微博文本数据中,我们可以根据消息自带的话题标签对该词进行加权。通过类似这样的加权方式,我们可以尽可能修正原生算法得到
52、的权值,从而得到更加切合实际的执行结果。第4章 系统总体设计本章的目标是完成一个基于Spark的Web文本挖掘系统的设计。该系统以社交网站(新浪微博)舆情信息作为文本挖掘的对象,以并行计算框架Spark作为计算平台,实现对网络舆情热点的文本挖掘工作。系统功能的主要目标可以概括成以下内容:系统能够完成大量互联网社交网站(新浪微博)上的舆情信息生成文本数据集,利用并行计算框架Spark按照一定的挖掘算法对采集到的文本进行挖掘,对当前舆情热词进行抽取,最终通过web页面方式对挖掘结果进行数据可视化操作。 文本采集Web信息有着数量很大,更新很快及规范性较差的特点,用户自行采集、存储数据有着很大的难度
53、,也很难对采集的格式进行统一,因此,系统需要提供文本采集模块,能够自动完成网页的解析以及文本采集工作。 数据存储由于系统所使用的数据集较大以及存储系统需要与Spark进行对接,所以存储系统需要能够很好地支持大规模文件的批量读取操作,此外还要能够对交互式查询进行良好的支持。 文本分析文本分析功能需要为用户从已经采集到的海量的文本数据集中快速、准确地抽取出热点内容。 结果可视化结果可视化功能需要实现将文本分析的结果高效、清晰地传递给用户,通过一定的交互手段让使用者能够很快了解分析的效果。4.2 系统设计概要4. 系统架构设计根据对系统功能需求的分析,决定系统基于B/S架构进行构建,系统架构设计图如
54、下:服务器端Internet数据采集数据存储用户交互响应可视化生成浏览器端文本挖掘图 4.2.1 系统架构设计图数据采集、数据存储以及文本挖掘功能均在服务器端实现。数据采集功能负责解析网页,从互联网上抓取目标数据。数据存储功能需要将采集程序得到的大规模数据进行存储,以备挖掘使用。文本挖掘功能包含文本清洗和去停用词以及特征提取几个步骤,最终实现从采集到数据中抽取热点信息。浏览器端是终端用户与系统的交互接口,根据用户交互动作与服务器端进行通信,从而反馈相应信息到浏览器端。随后将从服务器端返回的挖掘结果进行可视化处理,便于用户查看。并根据用户需求返回相关原始信息。4. 系统模块划分与技术选取根据系统
55、架构设计,可将系统所有功能拆分为三个主要的功能模块,其中数据采集模块主要负责网页解析和目标信息的抓取,文本挖掘模块负责采集数据的存储以及对采集数据的分析挖掘。文本数据可视化模块负责将挖掘用户交互及结果展示。文本挖掘Spark数据查询Elasticsearch数据存储Mongodb/HDFS爬虫程序Scrapy数据可视化Django文本数据集用户请求数据文本挖掘模块数据采集模块图4.2.2 系统模块划分数据采集模块采用了Python语言下基于Twisted异步网络库的网络爬虫框架Scrapy进行编写。由于具有并发抓取的特性,因此基于Scrapy编写的网络爬虫能够快速准确地将需要的结构化的数据从网
56、页中解析抽取出来,然后将其进行存储。文本挖掘模块主要分为三个部分,文本挖掘、数据存储以及数据查询。文本挖掘部分才用并行计算框架Spark进行处理,能够高效地完成对海量数据的处理。文本存储部分采用非关系型数据库MongoDB和HDFS,MongoDB对接数据采集模块,HDFS对接文本挖掘模块,保证能够为系统提供最大化的存储性能。数据查询部分采用基于Lucene的搜索引擎Elasticsearch实现,保证能够为可视化模块提供精准、快速的查询。数据可视化模块采用Python语言下的Django框架进行web应用构建,热点信息的词云化处理采用pytagcloud包绘制,页面与后台的数据交换才用Aja
57、x请求实现。模块的整体布局和效果实现基于HTML、CSS和JavaScript,能够清晰地将热点信息展现在web页面上,同时提供用户与服务器端的交互服务,满足需求的同时也具有很好的跨平台支持。数据处理流程系统内的数据处理由数据采集程序、并行计算框架Spark、HDFS以及MongoDB一起完成。数据在系统内的处理流程大致如下:新浪微博网页Scrapy爬虫程序MongoDB计算框架SparkHTML清洗后文本RDD挖掘结果TXTITEMHDFS图4.2.3 系统数据处理流程数据最初以HTML形式进入数据采集模块,由Scarpy编写的爬虫程序进行解析和处理,随后存储进非关系型数据库MongoDB,
58、将数据导出清洗后上传至HDFS。计算框架Spark从HDFS读取经清洗后的数据转换成Spark下特有数据结构RDD进行挖掘处理,最终以将挖掘结果以TXT文件形式进行输出。系统的用户界面也就是数据的可视化页面。主要包含两个功能提供对Spark处理后的最终数据和原始数据中与热点相关数据的可视化。主界面主要分为两个模块,热点信息词云以及相关原始数据展示列表。Web文本挖掘系统热点词云原始微博列表图4.2.4 系统界面概要图第5章 系统实现本章将对系统设计的细节实现做详细的介绍,包括从系统各部分的环境部署搭建到详细设计和实现。此外最后对系统进行了测试运行,实现了针对新浪微博舆情数据的文本挖掘。系统由分
59、布式服务器集群作为承载硬件,因未大规模投入生产,在本地使用VMwareStation创建三台虚拟机模拟分布式服务器集群。集群由一个主机两从机构成,具体配置如下:表1系统硬件配置名称配置数量物理机16G RAM,CPU I7-4710MQ,1T 硬盘1集群主机(master节点)2G RAM,CPU 1核,30G硬盘1集群从机(slave节点)2G RAM,CPU 1核,30G硬盘2表5.1-2 系统运行环境环境名称具体版本集群服务器操作系统JDKHadoopSparkPython 系统环境搭建 HDFS的搭建HDFS (The Hadoop Distribute File System)是大数
60、据处理框架Hadoop的一部分,因此安装HDFS即安装Hadoop框架。一般来说,Hadoop的安装需要经过以下步骤:添加专用的hadoop用户账户,避免直接使用root账户可能带来的安全隐患。解压JDK到/opt目录,修改/etc/profile文件设置path及classpath为JDK目录。安装ssh-server,在集群各个服务器上生成公钥,并将该公钥复制到集群中的其他服务器上并添加到的授权文件中。集群中的三台服务器均要执行此步骤,实现集群中服务器间两两免密码登录。解压hadoop安装包到/opt目录,修改hadoop目录下/etc/hadoop目录下的配置文件 随后将slaves文件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 难点解析:2024年CPMM试题及答案
- 厚皮甜瓜设施吊蔓栽培技术
- 生物学中的统计应用试题及答案
- 健康教育防流感课件
- 保健艾灸知识培训课件
- 常见CPSM考试误区分析试题及答案
- 获取2024年CPSM考试真题试题及答案
- 2024年CPSM线上学习资源试题及答案
- 高效生态体系的试题及答案
- SCMP2024学习策略不断优化与试题及答案
- 第三十六届全国电力行业风力发电运行检修 职业技能竞赛基础理论考试题库
- 农产品食品检验员(高级)职业技能鉴定考试题库
- 【MOOC】模拟电子电路实验-东南大学 中国大学慕课MOOC答案
- 2024年注册会计师考试税法科目试卷与参考答案
- 《大坝安全监测培训》课件
- 办公用品、易耗品供货服务方案
- 2024年全国中学生生物学联赛试题含答案
- 生鲜电商物流配送模式分析及优化策略-以京东为例
- 湛江市2025届高三10月调研测试 语文试卷(含答案详解)
- 超星尔雅学习通《当代大学生国家安全教育》章节测试答案
- 中国诗词线索题
评论
0/150
提交评论