在互联网时代,热词往往反应了一段时间内公众普遍关注的事件。因此,热词计算是舆情系统中的核心模块,针对资讯、评论、弹幕等进行热词统计,可以快速对海量资讯提取核心词汇,帮助用户快速研判舆论舆情。然而海量数据的热词计算,对计算的实时性、准确性提出了很大的挑战。
一、技术难点与常规解决方案
○ 关键词提取,关键词提取好坏直接影响统计效果,如何提取高质量关键词?常规的技术方案,一般是通过计算TF-IDF词频提取关键词。然而,该方案需要维护复杂的词库,后续还需要不断更新词条,因此维护成本较大。
○ 海量资讯分析,当需要处理海量数据时,如何保证系统高吞吐量、实时性、精确性?常规的技术方案,大多通过离线全量计算,比如每天统计一次当天所有资讯的热词。这种技术方案,统计热词的时间窗口是固定的,无法针对灵活的动态时间窗口进行统计。
○ Top-N排名统计,精确Top-N计算必须统计全量数据,如何平衡数据量与响应时间的矛盾?常规的技术方案只能在某个固定时间窗口,离线全量统计该窗口内的Top-N,该方法不能满足我们可选时间窗口的热词分析需求,因此需要寻找更优的解决方案。
针对上述三个问题,业界常规解决方案已经无法满足易盾的热词分析需求,下面谈谈易盾是如何解决这些问题的:
○ 针对关键词提取,易盾使用TextRank提取关键词提高提取效果,该算法思想来源于PageRank,相比于传统的TF-IDF,不需要维护停驻词、词库等,计算简单有效。实际效果验证表明,TextRank关键词提取,比传统的TF-IDF关键词提取效果好,同时不需要维护一大堆词库配置,大大简化了运营维护成本。
○ 针对海量资讯分析,易盾通过实时流式计算+数据回流保证系统高吞吐量与实时性,支持灵活的动态时间窗口统计。同时,为了提高热词分析的精度,在简单统计词频的基础上,针对文章的热度对词进行加权,而文章的热度会综合考虑以下因素:文章的转发量、浏览量、评论量、发布时间衰减因子等等。
○ 针对Top-N计算,易盾使用一种快速Top-N统计算法实现快速排名统计。利用二八定律,通过一种分治算法,将T时间窗口内的热词Top-N计算,分解为若干个小窗口内的Top-M计算,再把若干小窗口的Top-M合并成得出最终结果。实践证明,该方案大大提高了计算速度,支持可选时间范围的实时Top-N计算,同时计算精度损失可以忽略不计。
关键词提取
海量资讯如何做热词分析?为了提高分析效率,我们首先对每篇资讯提取核心关键词,基于这些核心关键词统计整体资讯的热词分布情况。那么如何提取单篇文章的关键词呢?易盾舆情选择TextRank提取算法,该算法思想来源于PageRank,其算法原理可以用如下的数学公式概况:
具体来说,TextRank 算法是一种用于文本的基于图的排序算法。 通过把文本分割成若干组成单元(单词、句子)并建立图模型,利用投票机制对文本中的重要成分进行排序,通过不断迭代计算最终解。相比于传统的TF-IDF,该方案不需要维护复杂的词库配置,计算简单有效,仅利用单篇文档本身的信息即可实现关键词提取。
二、热词统计流式计算
易盾通过实时流式计算+数据回流保证系统高吞吐量与实时性,支持灵活的动态时间窗口统计。因为每篇文章的热门程度不一样,词的热度计算不能仅仅统计这个词在所有文章中的出现次数。因此,热词分析在计算热度时,会用文章的热度对词进行加权,而文章的热度会综合考虑以下因素:文章的转发量、浏览量、评论量、文章发布的时间,如果发布时间越长,则热度衰减地越高。
针对时间衰减因子,我们针对线上数据反复调整衰减因子取值,最终得出了最优的计算公式。
三、一种快速Top-N计算算法
为了满足根据时间范围实时筛选查询Top-N热词排名榜单,我们采用一种快速Top-N计算算法,利用二八定律,通过一种分治算法,将T时间窗口内的热词Top-N计算,分解为若干个小窗口内的Top-M计算,再把若干小窗口的Top-M合并成得出最终结果。
○ 将T时间窗口内的热词Top-N计算,分解为若干个小窗口内的Top-M计算,实时统计小窗口内的热词Top-M排名,同时把小窗口结果回流。
○ 把若干小窗口的Top-M合并成得出最终结果,简化为对多个时间窗口内Top-M的合并,由于小窗口的数量优先,大大简化了计算复杂度。
二八定律,这是在很多领域存在的规律。我们认为热词统计也差不多能符合二八原则,即热词与非热词的热度差别比较大。
简单来说,存储空间越多准确率越高。有统计分析说明,发现 50 倍空间[1][2]对于普通的数据分布是够用的。换而言之,用户需要 Top 100 的结果,对于每种组合条件值,保留 Top 5000 的记录, 并供以后再次合并。这样即使多次合并, Top100 依然是比较接近真实结果 。通过反复统计对比数据,分析M取值不同,对Top-N的计算精度的影响,我们选择M等于25*N,该值在满足计算实时性的同时,对计算精度的影响可以忽略不计。
四、总结
本文主要介绍了易盾舆情热词分析的核心技术难点,及其解决方案。从文本中提取关键词用于统计,易盾使用TextRank提取关键词提高提取效果;通过流式计算+数据回流保证系统高吞吐量、实时性;为了能够选择时间范围实时聚合热词,使用一种快速Top-N统计算法实现快速实时统计。最终,热词分析模块能够支撑舆情海量长文本资讯实时热词分析,数据时延在秒级,同时时间筛选查询控制在秒级。
目前,易盾舆情已经为网易云音乐、网易公关部、网易严选等客户提供舆情监测服务。我们将继续与用户在一起,精益求精,进一步优化打磨舆情产品,持续为客户提供高质量舆情服务。
参考文献:
[1]Ahmed Metwally, et al. “Efficient computation of frequent and top-k elements in data streams”. Proceeding ICDT’05 Proceedings of the 10th international conference on Database Theory, 2005.
[2]Massimo Cafaro, et al. “A parallel space saving algorithm for frequent items and the Hurwitz zeta distribution”. Proceeding arXiv: 1401.0702v12 [cs.DS] 19 Setp 2015.
来源:freebuf.com 2020-11-03 19:23:15 by: wangyiyunyidun
请登录后发表评论
注册