如何完成企业舆情监测——话题检测与跟踪

2019.5.8更新:这篇博客中提到的一部分思路我已经做了测试,把结果也更新上来了。之前事件收集算法也有了新的更好的思路,这一部分也更新在了相关内容里。但很可惜的是,老板可能觉得这个舆情分析短期不能带来效益,让我先搁置了。。。所以暂时不会再对舆情分析这部分做研究了。不过后续估计会进行知识图谱构建,所涉及的技术也有很多重合的,因此这篇博客还是会不定期更新一些我的测试结果和踩的坑之类的,欢迎大家一起探讨~
近期公司新提了需求,希望利用已有的舆情检测系统对公司的负面新闻进行监测。目前的舆情系统能完成基本的信息抓取、信息分析与统计,但当前舆情系统为事件级监测,针对已出现的某一事件进行舆情分析,尚不能准确处理企业级的舆情。

目前所考虑的基本流程为:

  • 事件收集
  • 话题检测(TDT)
  • 事件追踪

事件收集

  1. 确定爬取网站:考虑包括微博、头条、知乎等主流新闻网站以及百度、谷歌、必应等主流搜索引擎。
  2. 网页过滤与清洗:现有的系统中,具备基本的过滤算法,可以过滤出相关度较高的网页,但当网页数量级较高时(如10w~100w),必然会存在内存占用过多的问题。这方面有两个解决思路,一是直接在爬取阶段对网页直接过滤,要考虑算法;二是考虑直接在资讯里进行搜索,或是只搜索发布时间在一定范围内的网页。
  3. 爬取策略:广度优先、深度优先、聚焦搜索、基于内容评价的搜索等
  4. 关键词全覆盖法:如果直接对网页整体进行处理难免数据量过大,运算速度受限,并且效率也低。可以直接对报道/网页的title进行分析,如果覆盖了关键词(比如企业名称、某舆情事件等)再对网页内容进行分析处理;处理过程中一定会产生新的话题或主题,然后再对关键词更新,再进行搜索。这样整个系统的效率会提高,不需要存储过多的信息。

话题检测

  1. 文本聚类:将收集到的事件按话题进行聚类,目前主流聚类方法包括LDA、K-means等等,现有的nlp工具也基本都有主题模型接口。
    初阶 直接对文本进行聚类,可以使用sklearn里的工具;
    高阶 可以使用LDA构建主题模型,现有的gensim就具备该接口,需要对其进行准确性测试。
    最近对文本聚类这一部分做了一些测试,把结果总结一下:
    · 直接对文本进行聚类可以比较准确的得到想要的结果,但后续对每一类文本进行关键词/主题提取时效果不好,这里使用的时genism中的提取关键词的方法keywords。
    • 若直接利用LDA进行主题提取,得到的类别不够准确,尤其本身k值的选择就很玄学,主题类别数的变化会导致结果有较大的变化。
    • 最终使用了分层处理的方式,先利用k-means对文本进行聚类,这里的类别数依旧是拍脑袋得到的=-=,聚类层在每一个类别上加入LDA主题提取层,这时k值直接设定为1,相当于对整个文本进行主题提取,这样就可以得到每一个类别的主题,准确率也比较高。
    • genism里提供的关键词提取方法受算法局限,只是最简单的textbank等方法,当然得到的结果也不尽如人意了,LDA在这方面还是精度要高很多滴。
    • 建议先对文本进行预处理,尤其是停用词处理,这点真的非常重要。
  2. 时间惩罚:对舆情进行监测时,时间是一个必须要考虑的因素,时间越近的报道对于事件检测的意义显然更大。一个是在处理伊始,给出时间窗,对时间窗内的文本进行分析;另一个是设置惩罚值,一直没有被更新的主题权值衰减,一直被更新的主题权值增加,从而可以获取最新的主题趋势。
  3. 新话题检测:聚类时应对相似度不高的文本创建新话题,归入话题库中。
  4. 主题移除:当主题权值小到一定程度(设置阈值),应对主题库更新,将不再被讨论关注的主题移除。

事件追踪

对于已经检测到的较重要的事件,在检测后需要对事件进行后续追踪,设置合适的阈值,对新文本做相似度分析,相关文本放入已有事件。也可以另外启动一个监测任务,单独对该话题进行监测。

基本分为以上三大块,其余类似于文本预处理、文本情感分析等等模块不做叙述,后续有了新的想法再更新。现在的瓶颈在于事件收集的算法部分,后续的话题检测与事件追踪算法基本成熟,相关文献很多,所涉及的复杂算法也基本都有工具支持,如果有这方面需求的朋友也欢迎交流!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值