前言
互联网的飞速发展促进了很多新媒体的发展,不论是知名的大V,明星还是围观群众都可以通过手机在微博,朋友圈或者点评网站上发表状态,分享自己的所见所想,使得“人人都有了麦克风”。不论是热点新闻还是娱乐八卦,传播速度远超我们的想象。可以在短短数分钟内,有数万计转发,数百万的阅读。如此海量的信息可以得到爆炸式的传播,如何能够实时的把握民情并作出对应的处理对很多企业来说都是至关重要的。大数据时代,除了媒体信息以外,商品在各类电商平台的订单量,用户的购买评论也都对后续的消费者产生很大的影响。商家的产品设计者需要汇总统计和分析各类平台的数据做为依据,决定后续的产品发展,公司的公关和市场部门也需要根据舆情作出相应的及时处理,而这一切也意味着传统的舆情系统升级成为大数据舆情采集和分析系统。
分析完舆情场景后,我们再来具体细化看下大数据舆情系统,对我们的数据存储和计算系统提出哪些需求:
- 海量原始数据的实时入库:为了实现一整套舆情系统,需要有上游原始输出的采集,也就是爬虫系统。爬虫需要采集各类门户,自媒体的网页内容。在抓取前需要去重,抓取后还需要分析提取,例如进行子网页的抓取。
- 原始网页数据的处理:不论是主流门户还是自媒体的网页信息,抓取后我们需要做一定的数据提取,把原始的网页内容转化为结构化数据,例如文章的标题,摘要等,如果是商品点评类消息也需要提取有效的点评。
- 结构化数据的舆情分析:当各类原始输出变成结构化的数据后,我们需要有一个实时的计算产品把各类输出做合理的分类,进一步对分类后的内容进行情感打标。根据业务的需求这里可能会产生不同的输出,例如品牌当下是否有热点话题,舆情影响力分析,转播路径分析,参与用户统计和画像,舆论情感分析或者是否有重大预警。
- 舆情分析系统中间和结果数据的存储,交互分析查询:从网页原始数据清洗到最终的舆情报表这中间会产生很多类型的数据。这些数据有的会提供给数据分析同学进行舆情分析系统的调优,有的数据会提供给业务部门根据舆情结果进行决策。这些查询可能会很灵活,需要我们的存储系统具备全文检索,多字段组合灵活的交互分析能力。
- 重大舆情事件的实时预警:对于舆情的结果除了正常的搜索和展示需求以外,当有重大事件出现我们需要能做到实时的预警。
我们计划分两篇介绍完整的舆情新架构,第一篇主要是提供架构设计,会先介绍时下主流的大数据计算架构,并分析一些优缺点,然后引入舆情大数据架构。第二篇会有完整的数据库表设计和部分示例代码。大家敬请期待。
系统设计
需求分析
结合文章开头对舆情系统的描述,海量大数据舆情分析系统流程图大体如下:
图1 舆情系统业务流程
- 原始网页存储库,这个库需要能支持海量数据,低成本,低延时写入。网页数据写入后,要做实时结构化提取,提取出来的数据再进行降噪,分词,图片ocr处理等。对分词文本,图片进行情感识别产生舆情数据结果集。传统的离线全量计算很难满足舆情系统的时效性需求。
- 计算引擎在做数据处理时,可能还需要从存储库中获取一些元数据,例如用户信息,情感词元数据信息等。
- 除了实时的计算链路,对存量数据定期要做一些聚类,优化我们的情感词识别库,或者上游根据业务需要触发