如何完成企业舆情监测——话题检测与跟踪
发布时间:2021-09-29 10:47 浏览次数:次
这篇博客中提到的一部分思路我已经做了测试,把结果也更新上来了。之前事件收集算法也有了新的更好的思路,这一部分也更新在了相关内容里。但很可惜的是,老板可能觉得这个舆情分析短期不能带来效益,让我先搁置了。。。所以暂时不会再对舆情分析这部分做研究了。不过后续估计会进行知识图谱构建,所涉及的技术也有很多重合的,因此这篇博客还是会不定期更新一些我的测试结果和踩的坑之类的,欢迎大家一起探讨~
近期公司新提了需求,希望利用已有的舆情检测系统对公司的负面新闻进行监测。目前的舆情系统能完成基本的信息抓取、信息分析与统计,但当前舆情系统为事件级监测,针对已出现的某一事件进行舆情分析,尚不能准确处理企业级的舆情。
目前所考虑的基本流程为:
事件收集
话题检测(TDT)
事件追踪
事件收集
确定爬取网站:考虑包括微博、头条、知乎等主流新闻网站以及百度、谷歌、必应等主流搜索引擎。
网页过滤与清洗:现有的系统中,具备基本的过滤算法,可以过滤出相关度较高的网页,但当网页数量级较高时(如10w~100w),必然会存在内存占用过多的问题。这方面有两个解决思路,一是直接在爬取阶段对网页直接过滤,要考虑算法;二是考虑直接在资讯里进行搜索,或是只搜索发布时间在一定范围内的网页。
爬取策略:广度优先、深度优先、聚焦搜索、基于内容评价的搜索等
关键词全覆盖法:如果直接对网页整体进行处理难免数据量过大,运算速度受限,并且效率也低。可以直接对报道/网页的title进行分析,如果覆盖了关键词(比如企业名称、某舆情事件等)再对网页内容进行分析处理;处理过程中一定会产生新的话题或主题,然后再对关键词更新,再进行搜索。这样整个系统的效率会提高,不需要存储过多的信息。
话题检测
文本聚类:将收集到的事件按话题进行聚类,目前主流聚类方法包括LDA、K-means等等,现有的nlp工具也基本都有主题模型接口。
初阶 直接对文本进行聚类,可以使用sklearn里的工具;
高阶 可以使用LDA构建主题模型,现有的gensim就具备该接口,需要对其进行准确性测试。
最近对文本聚类这一部分做了一些测试,把结果总结一下:
· 直接对文本进行聚类可以比较准确的得到想要的结果,但后续对每一类文本进行关键词/主题提取时效果不好,这里使用的时genism中的提取关键词的方法keywords。
若直接利用LDA进行主题提取,得到的类别不够准确,尤其本身k值的选择就很玄学,主题类别数的变化会导致结果有较大的变化。
最终使用了分层处理的方式,先利用k-means对文本进行聚类,这里的类别数依旧是拍脑袋得到的=-=,聚类层在每一个类别上加入LDA主题提取层,这时k值直接设定为1,相当于对整个文本进行主题提取,这样就可以得到每一个类别的主题,准确率也比较高。
genism里提供的关键词提取方法受算法局限,只是最简单的textbank等方法,当然得到的结果也不尽如人意了,LDA在这方面还是精度要高很多滴。
建议先对文本进行预处理,尤其是停用词处理,这点真的非常重要。
时间惩罚:对舆情进行监测时,时间是一个必须要考虑的因素,时间越近的报道对于事件检测的意义显然更大。一个是在处理伊始,给出时间窗,对时间窗内的文本进行分析;另一个是设置惩罚值,一直没有被更新的主题权值衰减,一直被更新的主题权值增加,从而可以获取最新的主题趋势。
新话题检测:聚类时应对相似度不高的文本创建新话题,归入话题库中。
主题移除:当主题权值小到一定程度(设置阈值),应对主题库更新,将不再被讨论关注的主题移除。
事件追踪
对于已经检测到的较重要的事件,在检测后需要对事件进行后续追踪,设置合适的阈值,对新文本做相似度分析,相关文本放入已有事件。也可以另外启动一个监测任务,单独对该话题进行监测。
本文来源于网络,若有侵权请联系3449817223#qq.com,将在第一时间删除。