网络舆情监测的途径:
一、使用搜索入口作为捷径
搜索入口有两类:一类是搜索引擎的入口, 一类是网站的站内搜索。
做舆情监测往往是有主题、有定向的去做, 所以很容易就可以找到监测对象相关的关键字,然后利用这些关键字去各类搜索入口爬取数据。
当然也会遇到反扒的问题,例如你长时间、高频次的爬取搜索引擎的结果页面,网站的反扒策略就会被触发,让你输入验证码来核实是否是人类行为。
使用搜索入口作为捷径也会带来一些好处,除了爬取门槛低,不需要自己收录各类网站信息外,另一个特别明显的好处是可验证性非常好,程序搜索跟人搜索的结果会是一致的, 所以人很难验证出你获取的数据有偏颇。
二、爬虫根据网站入口遍历爬取网站内容
第一步要规划好待爬取的网站有哪些? 根据不同的业务场景梳理不同的网站列表, 例如主题中谈到的只要监测热门的话题,这部分最容易的就是找门户类、热门类网站,爬取他们的首页推荐,做文章的聚合,这样就知道哪类是最热门的了。思路很简单,大家都关注的就是热门。至于内容网站怎么判断热门,这个是可以有反馈机制的:一类是编辑推荐;一类是用户行为点击收集,然后反馈排序到首页。
第二步是使用爬虫获取数据。爬虫怎么写是个非常大的话题,在这里不展开说明,需要提一嘴的是, 爬虫是个门槛很低但是上升曲线极高的技术。难度在于:网站五花八门;反扒策略各有不同;数据获取后怎么提取到想要的内容。
三、数据检索与聚合
数据获取下来后哪些是你关心的、 哪些是垃圾噪声,需要用一些NLP处理算法来解决这些问题。这方面门槛高、难度大。首先大规模的数据如何被有效的检索使用就是个难题。 比如一天收录一百万个页面(真实环境往往比这个数量级高很多),上百G的数据如何存储、如何检索都是难题。值得高兴的是业内已经有一些成熟的方案,比如使用solr或者es来做存储检索, 但随着数据量的增多、增大,这些也会面临着各种问题。
通常对热门的判断逻辑是被各家网站转载、报道的多, 所以使用NLP的手段来做相似性计算是必须的,业内常用的方法有Simhash或者计算相似性余弦夹角。有些场景不单单是文章相似,还需要把类似谈及的文章都做聚合,这时就需要用到一些聚类算法,例如LDA算法。从我们的实践经验来看,聚类算法的效果良莠不齐, 需要根据文本特征的情况来测试。
(知乎:国双商业市场、西窗捕舆)