随着网络,计算机,和移动设备的普及,普通大众越来越容易进行信息的发布和交流。特别是文字信息,短到手机短信,长到连载网文,每时每刻都在大量的产生并传 播。分析和处理这些信息有什么用呢?对于商家而言,通过分析这些与用户相关的信息,可以得到大量的用户统计信息,而调整商业策略。比如最简单的例子,某些 “不做恶”的公司,会根据用户电子邮件的信息,在用户界面上显示相关的广告。而对于政府部门来说,及时掌握和分析群众的言论,可以了解大众的酸甜苦辣,想群众之所想,急群众之所急,为共创和谐社会而努力。

那怎么有效的对网络上的言论进行分析和监控呢?首先让我们先做一下需求分析:第一,网络上的文字时时刻刻都在变换,所以需要不断检测新的话题,还要监控这些 话题的发展,以及不同话题之间的关系,防患于未然。第二,大量的文字在网上的传播就像水流一样,所以需要实时地分析这些文字,见招拆招,而不能等文章发完 了,别人话都讲完了,再做分析,这样就太被动了!第三,目前对文字的分析,主要是基于对关键词的分析;而这些关键词的定义跟时间地点,国内国际环境都密切 相关,这就需要支持实时的关键词改变,并实时的得到相关的分析结果。第四,必须能实时分析网络上的海量文字信息,从茫茫大海中快速的抓到自己想要的小鱼。

根据以上的需要分析,对于网络言论进行实时的分析和监控是不是听上去有点难?今天我们要介绍由Jamal Alsakran等写的“STREAMIT: Dynamic Visualization and Interactive Exploration of Text Streams”。该论文介绍了他们开发的STEAMIT系统。该系统支持实时交互式可视化海量网络文字流。让我们看看他们是怎么做的吧。

image courtesy of Jamal Alsakran, et al.

上面是系统的框架图。STREAMIT系统接受网上的大量文档,每个文档对应于一个在不断变换的文字流。随着文字流的输入,系统实时的从每个文档提取关键词组,这些关键词可以由用户不断的调整和加权。对每个文档提取出关键词以后,系统就可以根据这些关键词来计算两两文档之间的相似性(作者采用和改进了cosine similarity的方法来计算相似性的)。

计算出两两文档之间的相似性以后,这个系统的新颖之处是用数值模拟(simulation) 的方法对文档进行分类。该系统把每个文档表示成一个二维的点,而文档之间的相似性则表示成点之间的吸引或者排斥力。这样,对于比较相似的文档,它们所对应 的点就相互吸引;对于不太一样的文档,它们所对应的点就相互排斥。根据牛顿的经典力学,这些点会在平面上动啊动,最后达到一个平衡的状态。一堆堆的点会形 成一个个团,而每个团对应的是相似的文档。

有意思的是,由于关键词的定义和提取是动态变换的,也就是说文档间的相似性也是不断变换的;这样的话,我们就可以看到这些点在不停的变换,而各个点组成的团 也在不断的变化!由于相似性,每个团通常对应于一个共同的话题,这样我们就可以实时的监控这些话题的出现,变化和联系!

image courtesy of Jamal Alsakran, et al.

上面这张图显示了STEAMIT系统的界面。左边部分就是系统的可视化部分,每个点代表了一个文档,而相似的文档聚集在一块;右边上部是关键词表,用户可以定义关键词,设置权重和颜色;右边下部则是文档列表,和相关参数设置窗口。

可以看出该系统涉及到的一些计算会比较耗时,比如说,用数值模拟的方法来计算点的移动。作者在实现中,使用了GPU来处理这些比较复杂的计算,从而保证整个系统能实时的处理大量数据。

下面,我们会介绍一下STEAMIT应用的实例。

© 2011, 视物 | 致知. All rights reserved.

Related Posts: