2023年11月23日发(作者:)

基于Spark的新闻大数据分析研究

李伟;孙新杰;张毓福

【摘 要】随着大数据时代的到来,面对海量新闻数据,用户很难获得有用的信息.

出基于Spark技术构建新闻大数据分析系统,使用Scrapy采集新闻数据,利用向量

空间模型对数据进行特征化,选择K-Means算法进行新闻聚类,对新闻进行实时分

,帮助用户获取新闻热点.系统运行结果表明,该方法对新闻大数据分析效果较好.

【期刊名称】《六盘水师范学院学报》

【年(),期】2019(031)003

【总页数】3(P20-22)

【关键词】新闻大数据;Spark;新闻热点;向量空间模型;K-Means算法

【作 者】李伟;孙新杰;张毓福

【作者单位】六盘水师范学院数学与信息工程学院,贵州六盘水553001;六盘水师

范学院数学与信息工程学院,贵州六盘水553001;六盘水师范学院数学与信息工程

学院,贵州六盘水553001

【正文语种】

【中图分类】TP391.3

随着大数据时代的到来,网络上的新闻内容呈爆炸式增长。面对海量的互联网新闻

资讯,用户很难获得有用的信息,需要构建新闻大数据分析系统,帮助用户分析获

取新闻热点。肖剑楠等[1]提出了构建新闻数据可视分析系统,帮助用户更好地

分析与理解新闻数据,Liu M C et al2]通过比较多个新闻数据源中共同以及不

同的主题,但是在处理新闻大数据时存在速度慢的问题。

Spark是基于内存计算的大数据并行计算框架[3],可以加快集群处理大数据的

速度,同时保证系统的高容错性和高可伸缩性。基于Spark技术来构建新闻大数

据分析系统,可以减少新闻大数据的处理时间。

1 关键技术

Spark4]是加州大学伯克利分校的AMP实验室所开源的并行框架,是一种类

Hadoop5]的集群计算环境,不同点在于Spark将作业中间输出结果保存在

内存中,而不需要存储到HDFSSpark提高了大数据背景下数据处理的实时性,

其优势在于运行需要迭代的数据挖掘和机器学习算法。

MapReduce的调度方式不同,Spark会尽可能地管道化。它根据不同的依赖

关系将RDD切分成多个阶段(Stage),每个阶段包含一系列需要进行流水线执

行的函数。Spark只会记录Transformations的操作,并不会真正去执行,直到

需要进行Actions操作的时候才会启动计算过程。Spark在执行过程中,在逻辑

运算之间会形成有向无环图,其运行原理如图1所示,最后由调度器调度图上的

任务进行运算。

1 Spark执行有向无环图

2 系统架构

新闻大数据分析系统主要分为三个模块,即新闻抓取模块、新闻分析模块和可视化

展现模块。系统架构如图2所示。新闻抓取模块采用爬虫Scrapy6]分布式抓

取网络新闻,新闻分析模块采用Spark对新闻进行离线分析和实时分析,可视化

展现模块通过Web页面展现新闻热点。

2 系统架构

Scrapy是基于Python的快速高效Web抓取框架,用于抓取网络站点新闻,提

取结构化数据。首先建立Scrapy项目,定义要提取的新闻Item,然后启动分布

式爬虫抓取新闻站点并提取Items,最后存储数据到MongoDB进行新闻离线分

析,存储数据到Kafka进行实时新闻分析。

3 新闻聚类

MongoDB数据库中读取信息进行数据预处理,抽取网页ID和文本信息。使用

向量空间模型(VSM)将预处理后的数据转换成向量,获取文本的主体和知识。

向量空间模型将文档映射为一个特征向量Vd=t1w1(d);……;tn

wn(d)),式中tii=12,…,n)是不同的词条项,wi(d)tid中权值,其

取值为tid的出现频率,公式为:

式中,是词条tid中出现频率的函数,ni是含有词条ti的文档数目,N是所有

文档的数目。在信息检索中,TF-IDF函数是常用的词条权值计算方法[7],文档

中词条ti出现的频率越高,则文档对内容属性的区分能力越强,其权值也越大。

文档间相似度采用向量夹角余弦来表示,文档di与文档dj相似度公式为:

当进行查询时,根据布尔模型将查询条件Q进行向量化,文档d与查询Q的相似

度公式为:

式中利用VSM能够实现文档的自动分类,并对查询结果相似度进行排序。

根据文档间相似度,再使用K-Means算法[8]进行新闻聚类,统计分析出新闻

热点的类别。使用SparkMLlibKmeans类库,聚类分析得到新闻文本的主

题,其程序关键代码如下所示:

4 实时分析新闻热点

新闻具有很强的时效性,笔者也进行了新闻热点实时分析研究。实时新闻数据为

Scrapy抓取的网页,并将新闻数据存储在KafkaTopic中。使用保存的K-

Means聚类模型,通过Spark Streaming对存储在Kafka中新闻数据进行实时分

析,其程序关键代码如下所示:

最后,系统的可视化展现模块通过Web页面展示实时新闻的分析结果,如图3

示。在页面中列出了当前新闻热点,用户可以快速获取有用 新闻信息。

3 当前新闻热点结果页面

5 结语

本文提出了新闻大数据分析系统的架构,通过Scrapy爬取新闻网页进行数据采集,

采用向量空间模型对新闻数据进行特征化,使用Spark技术进行新闻聚类,并对

新闻热点进行了实时分析。下一步研究的重点是将处理流程进行高度的集成化,方

便系统的部署实施。

参考文献:

【相关文献】

1]肖剑楠,刘梦尘,刘世霞.新闻数据可视分析系统[J.计算机辅助设计与图形学学

,2016,28(11)1863-1870.

2LIU MC,LIU S X,ZHU X Z,et uncertainty-aware ap-proach for exploratory

microblog retrievalJ.IEEE Transac-tions on Visualization and Computer

Graphics,2016,22(1)250-259.

3]李淋淋,倪建成,曹博,.基于Spark框架的并行聚类算法[J.计算机技术与发

,2017,27(05)97-101.

4HOLDEN 快速大数据分析[M.北京:人民邮电出版社,2015.

5]李伟,石云,孙新杰.基于Hadoop的协同过滤算法的并行化研究[J.六盘水师范学院学

,2017,29(3)46-49.

6]华云彬,匡芳君.基于Scrapy框架的分布式网络爬虫的研究与实现[J.智能计算机与应

,2018,8(5)47-50.

7]武永亮,赵书良,李长镜,.基于TF-IDF和余弦相似度的文本分类方法[J.中文信息学

,2017,31(05),138-145.

8]许明杰,蔚承建,沈航.基于Spark的并行K-means算法研究[J.微电子学与计算

.2018,35(5)95-99.