舆情监测系统尝试

关键词:舆情监测,搜索引擎,Nutch
作者:BIce 创建时间:2012-07-20 14:01:14

由于上个学期我和曹接到了一个舆情监测的项目,虽努力尝试但最终没有满足用户需求,遂遗憾作罢。有段时间没写博客了,顺便就写写这个项目吧。

所谓舆情监测,就是要对民间的敏感信息进行搜索监测,放在网络上,就是关于网络舆情的信息监测了,关于这方面的研究还真有人做过,不过都是局限于理论上,都知道应该结合计算机数据挖掘技术对网络数据进行挖掘,获取可能的舆情信息,加以防范,但真正给出实现的还没找到。也有一些公司在做这些事,不过技术还不成熟,关于这方面的资源信息,在本文最后的链接里有列出。

网络舆情需要从网络信息里进行查找,想要获取网络舆情信息,第一步就是要获取网络信息,有了数据才有发现新东西的可能。网络信息的获取方式无外乎以下几种:

  1. 门户网页,个人博客
  2. 论坛和贴吧等讨论区
  3. 人人,微博等社交网络

我们尝试实现的舆情监测系统也是针对这三类数据进行的,下面依次对这三种数据的获取和分析进行说明。

一、门户网页和博客类网页

此类网页信息说白了也就是传统搜索引擎会抓取到的信息,不需要任何有状态的验证(如登录限制)即可查看的网页,对于这种数据,我们采用的也是传统的搜索引擎技术进行数据获取和索引。在这方面我们没有自己进行网络爬虫Spider的开发,而是使用了一个开源的爬虫Nutch,Nutch是基于Lucene的一个开源爬虫,并可以与Lucene很好的结合到一起建立索引,并且支持增量性搜索,功能很强大。关于Nutch的配置,简单的话需要设置两个:一是需要搜索的URL Seed,可以是很多个网页;二是进行检索时收录的网页限制,可以通过正则表达式设定Nutch检索收录的URL格式,如果不满足此格式的话,搜索到的网页会被直接抛弃。再就是使用Nutch命令,指定检索的深度和广度,Nutch就会按照Seeds的设置,进行网页检索,完成指定数量网页的检索和索引之后,Nutch进程结束。在这里我们需要一个不停调用Nutch的脚本来执行抓取和索引过程。我们实现的脚本如下:

二、贴吧、空间等网页

此类网页需要有状态的信息(如注册信息)才可以进行查看,故不能使用传统的搜索引擎技术。关于这方面的技术由于后期其他方面无法满足甲方要求故搁置,经过和曹的讨论后,这个方面数据的获取和索引策略暂定如下(没有实现):

使用类似Nutch的技术来对数据进行抓取和索引,唯一不同的是在抓取过程中,需要准备好需要检索空间的具体注册信息,在执行抓取之前首先执行一个模拟的登录过程,然后再后续抓取过程中发送响应的Cookie和Session信息,这样就可以绕过一些登录相关的权限检查,进而获取到数据了。获取数据之后可以采取一样的方法,将其建立索引和第一部分的数据放到一个索引表中。

三、人人网、微博等社交网站

在提到的三类数据中,此类数据获取起来是最为麻烦的,因为社交网站和其他网站不同,它有比较完整的权限管理机制,使得我们不能简单的通过模拟用户登录来对其下属页面进行检索。关于社交网站的数据获取,我们唯一的办法就是利用其开放的API(如XXX开放平台,一般大的社交网站都会提供),注册成为它的开发者,然后利用平台提供的API对数据进行获取和组织。对这些网站进行数据获取的难点是几乎需要对每个网站都采用不一样的策略进行开发,其开发成本会非常高。

关于社交网站的数据获取,我们唯一做的就是新浪微博,由曹完成。选择新浪微博的原因是:作为主要的微博门户,可能的敏感信息微博上面会比较多,虽然它也有自己的开发平台,有API可以使用,但是它还有一个比较好的功能就是微博搜索。通过微博搜索,我们就可以比较简单的对获取一些对应敏感信息。但是可恶的是,新浪微博没有对此功能开放API,这也就意味着我们必须通过程序来对微博搜索的结果进行文本分析,然后对这些可能的信息进行索引和分组,用以查询。

和其他两种数据不同,第三类数据由于有了开发平台和查询接口的存在,使得我们不必自己存储数据,而由它们帮我们存储数据,我们只需要给出查询关键字,就可以获取到一些我们需要的,可能是敏感信息的信息。当然,这种方式也是有缺点的,比如由于某种原因,微博搜索屏蔽了一些关键字或者说不对外开发了,这样我们就无法获取有效信息了。

关于项目的失败

尽管付出了不小的努力,项目还是失败了。在此我再次表示对曹的歉意。。纵观项目的开发整个过程,虽然甲方的需求一直在变,导致我们无法继续进行开发,但我在这个项目的失败上也是有责任的。首先,我不应该在没有明确需求的情况下就接下项目,过于乐观的错误估计了形势,导致实际的甲方需求获取之后发现根本不是我想的那么回事,从一个我看来很容易的问题变成了一个几乎无法实现的困难。

关于项目失败的技术原因,是因为我们无法有效的检索到合适的比较新出现的网络数据,没有数据,也就没有挖掘的可能。(但是在单台服务器且时间有限的情况下,实在是不能挖到更多数据了)。在这个数据为王的时代,有数据一切才有可能

以上。

 

检索到的网络舆情信息相关资料:

http://bbs.tiexue.net/post_4058634_1.html

http://www.knowlesys.cn/cn/solutions/public_opinion/index.htm

http://baike.baidu.com/view/2726344.htm

http://wenku.baidu.com/view/6e252c4be45c3b3567ec8b49.html

http://www.cnki.com.cn/Article/CJFDTOTALSCJG200903016.htm

http://www.cnki.com.cn/Article/CJFDTotalKJXX201123019.htm

留言功能已取消,如需沟通,请邮件联系博主sunswk@sina.com,谢谢:)