面向多租户的SaaS舆情监控系统及方法
【技术领域】
[0001] 本发明设及舆论监控领域,特别是一种面向多租户的SaaS舆情监控系统及方法。
【背景技术】
[0002] 2015年,中国的网民渗透率将达50%,随着网民不断增多,言论数量也表现出爆炸 性增长的趋势。为了及时发现言论中的不良信息,掌控网络言论的发展态势,舆情监控已经 成为政府及大型企业的实际需求。但海量的媒体数据和异构的信息内容为舆情监控带来了 极大的挑战:
[0003] 1.传统的舆情系统的设计多采用单机模型,主要面向单个领域进行监控。随着答 数据的涌现和数据结构的多变,现有的舆情监控系统难W同时满足海量数据的实时获取和 实现多领域的监控,传统的单机系统面对庞大的多源数据表现出可扩展性等问题。
[0004] 2.当前的舆情监控系统都是基于某类特定算法实现的,针对一个特定的用户需求 可能需要多种算法进行分析。在面向不同用户的需求,或者针对新的任务和功能,现有的系 统难W进行处理和扩展。
[0005] 因此,我们提出面向多租户的SaaS舆情监控系统,针对海量、异构、多源数据进行 爬取,在并行计算框架基础上对数据分析,并通过云计算平台W低成本提供海量舆情数据 的监控服务。
【发明内容】
[0006] 有鉴于此,本发明的目的是提出一种面向多租户的SaaS舆情监控系统及方法,在 多数据源、多租户等方面体现了良好的可扩展性。
[0007] 本发明的系统采用W下方案实现:一种面向多租户的SaaS舆情监控系统,包括数 据采集与存储模块、基于并行处理框架的数据分析模块;所述数据采集与存储模块是在 Nutch开源框架的基础上,对指定的包括新闻、博客、论坛在内的网站进行实时监控,发现并 下载最新网页的全文信息,自动提取网页中的链接,访问其他网页进行抓取并存储至数据 库中,采集的舆情数据采用皿ase分布式存储技术实现海量数据的存储;所述数据分析模块 在并行计算框架基础上,采用基于Single-Pass的改进算法发现热点话题,将挖掘出的热点 话题与用户预设的业务需求描述进行逐条匹配,用W实现用户在海量数据上的筛选和过 滤。
[000引进一步地,本发明的数据采集与存储模块是基于Nutch开源框架实现的。Nutch是 一个由化va实现的开源web捜索引擎,主要用于收集网页数据,对其进行分析、索引,W提供 相应的接口来对其网页数据进行查询的一套工具。Nutch 1.X版本将爬取的网页存储在 皿FS文件系统中,而2.X版本对底层的数据存储进行了抽象,支持使用多种数据库,例如 皿ase ,MySql来存储数据。考虑到使用上的需求,本方法选取Nutch 2.2.1版本,方便读取存 储的网页数据。
[0009]较佳的,舆情监控系统在信息获取上要求具有高度的针对性和时效性。为满足上 述两点,本发明基于Nutch搭建采集模块,采用分布式部署和并行爬取的策略,由一台服务 控制器和多个爬虫端组成,服务控制器负责爬虫端的监测与控制,每个爬虫端可单独配置 爬取的站点、深度等参数,进行全天候的数据获取。对于爬取的数据,按照一定的格式存储 于分布式平台皿ase中。皿ase是一个分布式的、面向列的开源数据库,依托于化doop的皿FS 作为最基本存储基础单元。皿ase不同于一般的关系数据库,它是一个适合于非结构化数据 存储的数据库。
[0010] 进一步地,Nutch是为捜索引擎设计的爬虫,主要针对互联网上的信息进行漫无边 际的爬取,在精准数据抓取方面较为薄弱;另一方面,Nutch数据更新周期的长短,决定了采 集的数据是否具有时效性,但周期设置过短,Nutch则会浪费大量时间在已爬取网页的更新 工作上。因此,对Nutch进行了 W下改进:
[0011] 1)限制数据的采集范围。Nutch提供了一个迭代次数的设置参数,爬虫程序一旦达 到迭代次数即停止,但最后一次迭代解析出的链接将会作为下一次爬虫的起始地址,因此 Nutch会对互联网上的信息进行漫无边际的爬取。但互联网上太久远的网页不是我们的采 集目标,为去除运部分网页,我们设置一定的爬取深度。爬虫程序从入口 URL开始抓取网页, 一直采集到预设的深度即停止。最后一层深度的网页只获取内容,不解析其链接,实现数据 采集范围的限制功能。
[0012] 2)废除数据更新周期。若一个网页的所在位置与入口地址的距离已经超出上述的 爬取深度,我们认为该网页已经不在我们的采集范围内,即该网页对于本舆情监控系统来 说"太久远"了,没有必要再进行更新,因此本方法废除了数据更新周期运个配置参数。针对 仍在采集范围内的网页,每一次爬虫程序启动,都要获取其HTTP header中的Last-Modified 属性 ,判断是否需要更新 ,若需要更新则将该 网页的U化加入预取列表 ,等待重新 抓取。
[0013] 3)7*24小时采集。由于网络舆情具有突发性,网络上随时可能产生新的言论,为实 时获取网络舆论信息,本方法采用全天候的监控方法,为Nutch添加了一个时间调度模块, W达到实时监控的目的。
[0014] 特别的,数据分析模块是舆情系统的核屯、部分,该模块采用MapReduce并行处理框 架实现。数据分析模块设及采用开源分词工具IKAnalyzer对采集的舆情数据进行中文分词 处理,提取出文本的特征词并计算特征词的权重,建立文本的向量空间模型,然后通过改进 的Single-Pass聚类算法实现热点话题挖掘,并针对用户的不同业务需求向用户推送舆情 内容,
[0015] 本发明还提供了一种基于上文所述的面向多租户的SaaS舆情监控系统的方法,具 体包括W下步骤;
[0016] 步骤SI:所述数据采集与存储模块采用Nutch开源框架对指定的包括新闻、博客、 论坛在内的网站进行实时监控,发现并下载最新网页的全文信息,自动提取网页中的链接, 访问其他网页进行抓取并存储至数据库中;
[0017] 步骤S2:将采集的舆情数据采用皿ase分布式存储技术实现海量数据的存储;
[0018] 步骤S3:所述数据分析模块采用开源分词工具IKAnalyzer对采集的舆情数据进行 中文分词处理,提取出文本的特征词并计算特征词的权重,建立文本的向量空间模型,然后 通过改进的Single-Pass聚类算法实现热点话题挖掘,并针对用户的不同业务需求向用户 推送舆情内容。
[0019] 进一步地,所述步骤Sl中Nutch的工作具体包括W下步骤:
[0020] 步骤Sl 1:初始化抓取数据库化awl抓,注入种子1]化;
[0021 ] 步骤S12:根据化awl抓创建抓取列表,并写入相应的segments,一个segments代表 一次抓取;
[0022] 步骤S13:根据预取列表中的链接进行抓取,获取网页文件;
[0023] 步骤S14:把获取到的网页文件的页面信息存入所述数据库中,解析获取的页面, 提取页面内的链接,并更新所述化awl抓;
[0024] 步骤S15:判断Nutch的爬取工作是否达到预先设定的深度,若是,则停止爬取工 作,并进入步骤S16;若否,则返回步骤S12;
[00巧]步骤S16:从化awl抓获取页面重要性评分,同时更新segments;
[0026] 步骤S17:为获取的页面建立索引数据库;
[0027] 步骤S18:去除重复的内容,将索引进行合并生成最终可提供系统查询的索引文 件。
[0028] 进一步地,步骤S3中所述提取出文本的特征词并计算特征词的权重具体为:采用 向量空间模型VSM表示文档,即将文档加央射为W下形式化的方式来描述:
[0029] d=(tl,Wl,t2,W2,t3,W3, . . . ,tn,Wn);
[0030] 其中,tl,t2,t3,…,tn是代表文档内容的特征词;W1,W2,W3,…,Wn为对应特征词tl, ,tn的权重;
[0031] 其中,特征词的权重为某个词的TF ? IDF值,所述TF表示词条在文档中