支持大规模互联网新闻舆情数据ETL过程设计
2019-05-23李佳倩项来易金才波董心媛何坤荣苏瑞
李佳倩 项来易 金才波 董心媛 何坤荣 苏瑞
摘要:近年来,网络技术的蓬勃发展引发了互联网数据的爆炸式增长,以新闻站点、微博等为代表的网络媒体时时刻刻在产生大量不规则、异构的新闻舆情数据。该文在分析互联网新闻舆情数据特点的基础上,提出了支持大规模互联网新闻舆情数据ETL过程的解决方案,实现对多源、非结构化的新闻舆情数据的格式化存储。
关键词:新闻舆情数据;ETL过程
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2019)05-0011-02
1 引言
随着网络技术的迅猛发展,网络新闻的发布渠道逐渐呈现多元化的态勢,如新闻评论、新闻跟帖、博客、微博、论坛等。这些强交互性、范围广泛的网络传播方式使得传播者和受传者间的关系发生了翻天覆地的变化,颠覆了传统媒体传播新闻的方式,网络新闻舆情向人们的生活、社会经济、国家政治等方面渗透,网络参与者可以自由地获取信息,也可以就某些事件发表看法和意见[1][2]。目前,网络新闻舆论已经成为社会舆论的重要表现形式之一。
但是,与传统媒体的出版和传播流程不同,网络处在弱约束环境中,舆情数据来源复杂、数据不规则,加之当前对传播内容监管机制的不完善,网络新闻舆情数据中往往也充斥着负面信息,如迷信、黄赌毒等,这严重威胁到了社会公共安全。因此,必须加强对网络舆情的监控,在新闻舆情采集的基础上,首先要将不规则网络新闻数据进行格式化处理,即新闻舆情数据ETL(Extract、Transform、Load,抽取、转换、加载)[3]。
2 互联网新闻数据ETL需求分析
2.1 数据分析及其预处理
为了有效降低网络舆情数据分析的复杂度,需要根据舆情数据的不同来源对其进行预处理。不同方面的舆情数据各自的特点,比如新闻评论数据中的新闻标题、发表单位等,论坛数据中有回帖内容、回帖时间等,需要针对不同的数据进行个性化处理。而对类似的新闻数据,由于数据来源的不同,数据的格式也不尽相同,比如不同来源的贴吧舆情数据,其“贴吧发布时间”数据字段格式可能有多种形式,如“yyyy/MM/dd”、“yyyy-MM-dd”、“yyyy-MM”等,这就需要根据目标数据的需求对其进行格式化统一处理。
2.2 ETL需求分析
新闻数据的ETL过程的需求分析首先给出目标数据格式化精确的描述,在新闻数据ETL过程中逐步实现既定的设计目标[4]。总的来说,新闻数据ETL需求分析主要包含如下几个方面:
1)新闻舆情数据可能因抓取数据失败或者本身没有内容而成为空数据,所以需要设计一定的规则来处理这些空数据;
2)数据源中存在大量重复或无效的数据,需要通过设置相应条件来清洗这些数据;
3)为了提高数据质量,删除非必要的字段;
4)数据源字段中的具体数据格式不规整,需要对不符合要求的数据进行裁剪或者替换,使数据规范化;
5)数据源中数据的格式存在差异,需要以目标数据库表的数据格式为转换目标,转换这些数据的数据格式;
6)源数据的字段名称与目标数据库表的字段名称不统一,需要进行格式化处理;
7)为保障ETL过程的鲁棒性,需要设置错误识别与检测机制。
3 互联网新闻数据ETL设计与实现
针对大规模新闻舆情数据,ETL过程主要难点在于对多源异构数据的清洗和转换。而不同领域的数据有着各自的特点,难以以通用的处理方法对其进行统一处理。所以,为了保证数据的质量,通常研究是针对一个专门领域的数据集,或者是针对不同性质的数据进行通用处理[5]。
具体来讲,ETL过程主要通常包括数据抽取、转换和装载这三个核心步骤,其中,数据转换又可细分为清洗和转换两个模块,ETL过程如图1所示。首先,根据数据源的不同,抽取数据库或者文件数据,再通过清洗规则和转换规则实现对数据的清洗转换,转化为与目标数据匹配的数据,并装载到指定数据库中,同时,把异常数据储存到指定文件或者数据库中。
ETL过程主要实现多源、异构数据的整合,抽取源数据到中间层进行数据ETL处理,再把处理完毕的数据存入目标数据库中。支持大规模互联网新闻数据ETL系统架构如图2所示。
本文网络舆情ETL数据处理以网易新闻和新浪新闻为例。为了便于管理和控制整个ETL过程,且使其能自动化地完成数据处理操作,ETL过程作业包含开始、2个转换、成功、中止运行这5个节点。其中,2个转换名为网易新闻处理、新浪新闻处理,分别对应2个数据源的数据操作;中止作业节点是为了防止处理过程错误而设置的,当三个转换中某个执行失败时,整个ETL过程会中止;成功节点是为了判断整个ETL过程是否执行完整,当两个转换都执行成功时,成功节点才会执行。网络舆情数据ETL过程的流程图如图3所示:
数据ETL处理的清洗转换规则设计主要包括如下几个方面:
1)重复数据的处理:设置数据是否重复的判断条件,如果数据重复,把该数据舍弃,反之,则保留该数据;
2)无效数据的处理:据实际需求判断哪些字段是关键字段,再判断该字段的数据是否为空,删除所有的空数据;
3)空数据的处理:对无效数据进行删除后,数据源中还存在许多空数据,要根据每个字段的特点设定一定的规则对这些空数据进行替换,保证数据的完整性;
4)数据字段的删除,在源数据中,若存在无意义的字段,要使用Kettle的相关组件,在数据输出前对字段进行筛选,保留需要的字段;
5)数据的裁剪和替换,数据源中,部分字段的数据存在错误。有些数据中掺杂着其他字段的数据,要通过裁剪,去掉不属于本字段的数据,使数据规范化。
此外,为了增强数据ETL过程的稳定性,需要对错误进行输出,即定义部分组件的错误处理步骤。
4 实验结果与分析
使用爬虫程序分别从网易新闻、新浪新闻上爬取新闻数据信息,包括新闻的标题、来源、发布时间、参与人数、评论人数、评论人、评论内容、评论时间、评论点赞人数等字段,形成了2个名为网易新闻、新浪新闻形式的数据源,具体如表1所列。
Kettle转换平台中处理器采用的是Intel i5 4200U,1.6GHz,8G内存,硬盘转速7200RPM,接口是SATA2.0,软件平台是Windows 10 操作系统,Kettle 7.1版本。使用Kettle对表1中的数据进行格式化转换,时间开销如表2所示。
5 结束语
网络新闻舆情数据来源范围广、数据格式不统一等,这个给舆情数据的处理带来的挑战。本文首先给出了舆情数据预处理的方法,并给出了网络舆情数据ETL过程的设计方法,并以Kettle开源软件为基础,设计了面向互联网新闻舆情数据的ETL过程。
参考文献:
[1]唐勇.互联网舆情监控系统的设计与实现[D].北京邮电大学, 2013.
[2]郝文江,武捷.互联网舆情监管与应对技术探究[J].信息网络安全, 2012(3): 1-4.
[3]崔有文,周金海.基于KETTLE的数据集成研究[J].计算机技术与发展, 2015, 25(4): 153-157.
[4]韩强飞,张国晨,张发光.基于Kettle构建企业数据仓库[J].信息系统工程, 2017(2): 108.
[5]程子傲,董博,赵悦,等.基于Kettle的数据交换平台研究与实践[J].辽宁大学学报:自然科学版, 2018, 45(01): 13-18.
【通联编辑:代影】