微信舆情监测系统
技术领域
本发明涉及互联网信息处理技术领域,具体来讲,涉及一种微信舆情监测系统。
背景技术
随着互联网在全球范围内的飞速发展,网络媒体已被公认为是继报纸、广播、电视之后的“第四媒体”,网络成为反映社会舆情的主要载体之一。
网络舆情是一股强大的舆论力量,会反作用于热点事件并对社会发展和事态进程产生一定的影响。由于网络的开放性,会导致网络舆情形成迅速,对社会影响巨大。特别是当出现负面的网络微信舆情时,若不能及时了解、有效引导,很容易形成舆论危机,严重时甚至影响公共安全。对网络微信舆论危机的积极化解,对维护社会稳定、促进国家发展具有重要的现实意义,也是创建和谐社会的应有内涵。
最近,随着互联网技术的迅速发展,以微信为代表的新一代媒体打破信息的控制和垄断,在网络上人们自由表达自己的态度和意见,不再像过去那么容易地无条件接受,相反,不同阶层的利益诉求纷纷呈现,不同思想观点正面碰撞。对相关政府部门来说,如何及时准确的了解网络微信舆情,加强对网络微信舆论的及时监测、有效引导,成为网络微信舆情管理的一大难点。在这种情况下,建设能够覆盖微信数据源的微信舆情监测系统十分必要,此类系统可针对新的微信媒介传播环境,进一步深入研究微信舆情的热点研判方法以及新媒体带来的影响,对微信舆情研究进行丰富和完善。
虽然目前已经有很多单位针对网络微信舆情监控提出了一些不同的解决方案。但是,需要本领域技术人员解决的技术问题是如何提高判断网络微信舆情信息的效率和精确度。因为截至目前,尚未有较为高效、准确的针对微信媒体数据的网络舆情监测系统。
发明内容
本发明就是针对上述背景技术中的不足之处,而提出的一种微信媒体的舆情监测系统,其具有较高的准确率。本发明的目的是通过如下技术措施来实现的。
本发明提出一种微信舆情监测系统,该系统包括:数据获取单元1、噪声过滤去除单元2、初级处理单元3、特征串分析单元4、文本情感倾向性分析单元5、综合分析单元6、以及图表生成单元7,其中
数据获取单元1用于对微信的页面数据进行自动爬取,获取微信数据;
噪声过滤去除单元2用于对微信数据中的信息进行过滤,清除所述微信数据中的噪声;
初级处理单元3用于对所述微信数据依次进行各种初级处理;
特征串分析单元4用于对初级处理单元3处理后的微信数据中的特征串进行分析筛选;
文本情感倾向性分析单元5用于对所述微信数据执行文本情感倾向性分析;
综合分析单元6并行地执行多种分布式舆情热点发现算法,获得微信数据中的舆情热点;
图表生成单元7用于生成各种微信舆情分析报表和/或分析图。
可选地,所述噪声过滤去除单元2执行以下步骤:
步骤2-1,对于每项微信数据,按照标题进行语义分析,检测出网络中与该微信数据相似的所有微信数据,得到该微信数据的相似组;如果未发现与该微信数据相似的微信数据,则该微信数据的相似组为其本身;
步骤2-2,对于每项微信数据,将网络中所有位置出现的该微信数据的相似组中所有微信数据的总数量除以发布该微信数据的相似组中所有微信数据的网络地址的总数量,得到该微信数据的空间重复度值S1;
步骤2-3,对于每项微信数据,计算网络中出现的该微信数据的相似组中所有微信数据的总数量,得到该微信数据的时间重复度值S2;
步骤2-4,根据每项微信数据的空间重复度值S1和时间重复度值S2计算该微信数据的综合重复度值S,并进行阈值判断,如果所述综合重复度值S超过阈值,则过滤掉该微信数据及其相似组;
其中,所述综合重复度值S通过以下公式计算:
S=(log2(S1+50))1/2+(log2(S2+20))1/2+((lgS1)*(lgS2))1/4。
可选地,所述初级处理单元3对所述微信数据依次进行的各种初级处理包括:分词处理、过滤停用词、命名实体识别、语法解析、词性标注、情感识别、特征词提取、以及建立索引。
可选地,所述特征串分析单元4执行以下步骤:
步骤4-1,对特征串进行去重,包括:记录微信的文本中出现的重复性特征串以及其出现的次数,过滤掉出现频率低于重复阈值的重复性特征串和长度低于重复阈值的重复性特征串;
步骤4-2,对特征串进行分组,包括:计算每个特征串与其他特征串之间的相似度值,将相似度值高于相似度阈值的特征串分入相同的组;如果一个特征串与所有其他特征串之间的相似度值都为0,则将该特征串过滤掉;具体地,可以选择以下两个步骤之一来计算所述两个特征串X、Y的相似度值Sims(X,Y),然后进行特征串分组:
步骤4-2-a:
首先,假设同时出现特征串X、Y的句子的数量为sum(XY);仅出现特征串X,不出现特征串Y的句子的数量为sum(X);仅出现特征串Y,不出现特征串X的句子的数量为sum(Y);此时,特征串X、Y的相似度值Sims(X,Y)计算公式如下:
Sims(X,Y)=log2(sum(XY))/log2(sum(X))+log2(sum(XY))/log2(sum(Y));
其次,如果Sims(X,Y)≤阈值TD1,则将特征串Y分入特征串X所在的组;
步骤4-2-b:
首先,假设两个特征串X、Y中包括字符的个数分别为m和n,令k取m、n中的较小值,分别以Xi、Yi代表特征串X、Y中前i个字符组成的子串,其中,i=1,2,…,k;定义|Xi-Yi|表示子串Xi、Yi的最长公共字符串中包含的字符数量,则特征串X、Y的相似度值Sims(X,Y)计算公式如下:
Sims(X,Y)=(|X1-Y1|3+|X2-Y2|3+…+|Xk-Yk|3)1/3;
其次,如果Sims(X,Y)≤阈值TD2,则将特征串Y分入特征串X所在的组;
步骤4-3,对特征串进行熵值过滤,包括:计算特征串的熵值,过滤掉熵值低于预设的下阈值的特征串以及熵值高于预设的上阈值的特征串。
可选地,所述文本情感倾向性分析单元5执行文本情感倾向性分析的步骤如下:
步骤5-1,人工选取若干常见的情感倾向性的中文和英文的形容词、名词和动词和作为初始化种子集;其中,所述初始化种子集中,形容词的数量可以是100,名词和动词的数量可以是200;
步骤5-2,将微信的文本中所有具有指代关系的代词还原为名词性的原始指代对象,以防止分析过程中对象的漏判或错判;
步骤5-3,以微信的句子为单位,利用词性标注POS和语义角色标注SRL分析微信中每个句子的句子成分,提取每个句子中的主观性词语;
步骤5-4,依次输入每个句子中的主观性词语,根据所述种子集对微信的句子中的主观性词语进行情感倾向性自动标注;对于无法自动标注的主观性词语,由人工判断其情感倾向性后,将该主观性词语补充入所述种子集。
可选地,所述综合分析单元6获得微信数据中的舆情热点的步骤如下:
首先,使用多个微信热点发现模块,通过并行的分布式计算方式来获取微信舆情热点,所述微信热点发现模块包括:
1)Single-Pass微信热点发现模块6.1,该模块采用基于MapReduce的singlepass算法;
2)KNN微信热点发现模块6.2,该模块采用基于MapReduce的KNN最近邻分类算法;
3)SVM微信热点发现模块6.3,该模块采用基于MapReduce的支持向量机SVM算法;
4)K-means微信热点发现模块6.4,该模块采用基于MapReduce的K平均聚类算法;以及
5)SOM微信热点发现模块6.5,该模块采用基于MapReduce的自组织映射SOM神经网络聚类算法;
其次,对上述各个微信热点发现模块所分别获取的所有微信舆情热点进行汇总,进行以下分类判断:
如果获取的微信舆情热点来源于上述三个以上热点发现模块,则将该微信舆情热点的类别标记为高级微信舆情热点;
如果获取的微信舆情热点来源于上述两个热点发现模块,则将该微信舆情热点的类别标记为中级微信舆情热点;
如果获取的微信舆情热点仅来源于上述一个热点发现模块,则将该微信舆情热点的类别标记为初级微信舆情热点;
最后,将所述高级微信舆情热点、中级微信舆情热点和初级微信舆情热点依次发送到所述图表生成单元7。
可选地,所述图表生成单元7可生成的微信舆情分析报表和/或分析图包括:微信舆情信息热度排行报表、微信舆情预警信息分布报表、微信舆情地理信息分布报表、微信舆情情感分析报表、微信舆情状态统计报表以及微信舆情趋势走向分析图。
现有技术中,网络舆情的主要数据来源一般是各种网站或论坛,而单独针对微信舆情数据的监测系统则比较少;即使是专门针对微信舆情数据的监测系统,也往往由于各种原因而准确率或效率较低。而本发明提出了一种专门针对微信网络数据源的舆情数据的监测系统。
与现有技术相比,本发明包括以下优点:
首先,本发明的微信舆情监测系统面向微信网络资源,所采集的微信数据经数据获取、噪声过滤去除、初级处理、特征串分析、文本情感倾向性分析、综合分析等数据处理步骤,有效提高了微信网络数据源的微信舆情数据过滤效率;
其次,通过分布式的云计算方式,能够对大规模采集数据进行挖掘、分析,并能够基于多种微信舆情监测算法模块来获取微信舆情热点,对所述微信舆情热点综合判断分类,从而实现对微信舆情热点话题的发现及追踪、对微信的社会网络分析,分析结果可视化呈现。有效提高了所述微信舆情监测系统判断的准确性,为网络微信舆情信息的后续处理提供了更为真实、准确的基础。
附图说明
下面结合附图对本发明的技术方案进行进一步的说明。在附图中,用相同的附图标记表示相同的功能模块。所述附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。
图1示出了根据本发明的实施例的微信舆情监测系统的功能结构图。
具体实施方式
通过下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。所述描述仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明请求保护一种微信舆情监测系统,该系统包括数据获取单元、噪声过滤去除单元、初级处理单元、特征串分析单元、文本情感倾向性分析单元、综合分析单元、以及图表生成单元。该系统通过分布式的云计算方式,使用多种微信舆情监测算法子模块来获取微信舆情热点,并对获取的微信舆情热点进行综合判断分类评估,从而实现对微信舆情热点话题较高效、准确的监测。
图1是根据本发明的实施例的微信舆情监测系统的功能结构图。
如图1所示,所述微信舆情监测系统包括7个模块,分别为:数据获取单元1、噪声过滤去除单元2、初级处理单元3、特征串分析单元4、文本情感倾向性分析单元5、综合分析单元6、以及图表生成单元7。其中:
数据获取单元1用于对微信的页面数据进行自动爬取,获取微信数据;
噪声过滤去除单元2用于对微信数据中的信息进行过滤,清除所述微信数据中的噪声;
初级处理单元3用于对所述微信数据依次进行各种初级处理;
特征串分析单元4用于对初级处理单元3处理后的微信数据中的特征串进行分析筛选;
文本情感倾向性分析单元5用于对所述微信数据执行文本情感倾向性分析;
综合分析单元6并行地执行多种分布式舆情热点发现算法,获得微信数据中的舆情热点;
图表生成单元7用于生成各种微信舆情分析报表和/或分析图。
具体地:
所述噪声过滤去除单元2执行以下步骤:
步骤2-1,对于每项微信数据,按照标题进行语义分析,检测出网络中与该微信数据相似的所有微信数据,得到该微信数据的相似组;如果未发现与该微信数据相似的微信数据,则该微信数据的相似组为其本身;
步骤2-2,对于每项微信数据,将网络中所有位置出现的该微信数据的相似组中所有微信数据的总数量除以发布该微信数据的相似组中所有微信数据的网络地址的总数量,得到该微信数据的空间重复度值S1;
步骤2-3,对于每项微信数据,计算网络中出现的该微信数据的相似组中所有微信数据的总数量,得到该微信数据的时间重复度值S2;
步骤2-4,根据每项微信数据的空间重复度值S1和时间重复度值S2计算该微信数据的综合重复度值S,并进行阈值判断,如果所述综合重复度值S超过阈值,则过滤掉该微信数据及其相似组;
其中,所述综合重复度值S通过以下公式计算:
S=(log2(S1+50))1/2+(log2(S2+20))1/2+((lgS1)*(lgS2))1/4。
具体地:
所述初级处理单元3对所述微信数据依次进行的各种初级处理包括:分词处理、过滤停用词、命名实体识别、语法解析、词性标注、情感识别、特征词提取、以及建立索引。
具体地:
所述特征串分析单元4执行以下步骤:
步骤4-1,对特征串进行去重,包括:记录微信的文本中出现的重复性特征串以及其出现的次数,过滤掉出现频率低于重复阈值的重复性特征串和长度低于重复阈值的重复性特征串;
步骤4-2,对特征串进行分组,包括:计算每个特征串与其他特征串之间的相似度值,将相似度值高于相似度阈值的特征串分入相同的组;如果一个特征串与所有其他特征串之间的相似度值都为0,则将该特征串过滤掉;具体地,可以选择以下两个步骤之一来计算所述两个特征串X、Y的相似度值Sims(X,Y),然后进行特征串分组:
步骤4-2-a:
首先,假设同时出现特征串X、Y的句子的数量为sum(XY);仅出现特征串X,不出现特征串Y的句子的数量为sum(X);仅出现特征串Y,不出现特征串X的句子的数量为sum(Y);此时,特征串X、Y的相似度值Sims(X,Y)计算公式如下:
Sims(X,Y)=log2(sum(XY))/log2(sum(X))+log2(sum(XY))/log2(sum(Y));
其次,如果Sims(X,Y)≤阈值TD1,则将特征串Y分入特征串X所在的组;
步骤4-2-b:
首先,假设两个特征串X、Y中包括字符的个数分别为m和n,令k取m、n中的较小值,分别以Xi、Yi代表特征串X、Y中前i个字符组成的子串,其中,i=1,2,…,k;定义|Xi-Yi|表示子串Xi、Yi的最长公共字符串中包含的字符数量,则特征串X、Y的相似度值Sims(X,Y)计算公式如下:
Sims(X,Y)=(|X1-Y1|3+|X2-Y2|3+…+|Xk-Yk|3)1/3;
其次,如果Sims(X,Y)≤阈值TD2,则将特征串Y分入特征串X所在的组;
步骤4-3,对特征串进行熵值过滤,包括:计算特征串的熵值,过滤掉熵值低于预设的下阈值的特征串以及熵值高于预设的上阈值的特征串。
具体地:
所述文本情感倾向性分析单元5执行文本情感倾向性分析的步骤如下:
步骤5-1,人工选取若干常见的情感倾向性的中文和英文的形容词、名词和动词和作为初始化种子集;其中,所述初始化种子集中,形容词的数量可以是100,名词和动词的数量可以是200;
步骤5-2,将微信的文本中所有具有指代关系的代词还原为名词性的原始指代对象,以防止分析过程中对象的漏判或错判;
步骤5-3,以微信的句子为单位,利用词性标注POS和语义角色标注SRL分析微信中每个句子的句子成分,提取每个句子中的主观性词语;
步骤5-4,依次输入每个句子中的主观性词语,根据所述种子集对微信的句子中的主观性词语进行情感倾向性自动标注;对于无法自动标注的主观性词语,由人工判断其情感倾向性后,将该主观性词语补充入所述种子集。
本发明采用分布式的云计算方式,能够对大规模采集微信数据进行挖掘、分析;并能够基于多种舆情监测算法模块来获取微信舆情热点,对所述微信舆情热点综合判断分类,从而实现对微信舆情热点话题的发现及追踪、对微信的社会网络分析,分析结果可视化呈现,为党政机关、大型企业等单位和组织及时发现微信敏感信息、掌握微信舆情热点、把握微信舆情趋势、应对微信舆情危机提供自动化、系统化和科学化的信息支持。有效提高了所述微信舆情监测系统判断的准确性,为网络微信舆情信息的后续处理提供了更为真实、准确的基础。
具体地:
通过分布式存储层存储采集的微信数据以及分析结果,所述分布式存储层基于HDFS实现;
而在分布式计算层,采用MapReduce并行计算方法实现并行化计算;
通过HDFS文件存储和传输优化、MapReduce并行计算优化,实现了海量的微信舆情监测的优化,并实现了稳定、高效的大数据存储优化,使得海量的微信舆情数据查询处理优化,具有良好的可扩展性、可靠性、安全性。该系统基于云平台,具有良好的响应速度,支持海量微信数据分析与挖掘服务。
所述综合分析单元6获得微信数据中的舆情热点的步骤如下:
首先,使用多个微信热点发现模块,通过并行的分布式计算方式来获取微信舆情热点,所述微信热点发现模块包括:
1)Single-Pass微信热点发现模块6.1,该模块采用基于MapReduce的singlepass算法;
2)KNN微信热点发现模块6.2,该模块采用基于MapReduce的KNN最近邻分类算法;
3)SVM微信热点发现模块6.3,该模块采用基于MapReduce的支持向量机SVM算法;
4)K-means微信热点发现模块6.4,该模块采用基于MapReduce的K平均聚类算法;以及
5)SOM微信热点发现模块6.5,该模块采用基于MapReduce的自组织映射SOM神经网络聚类算法;
其次,对上述各个微信热点发现模块所分别获取的所有微信舆情热点进行汇总,进行以下分类判断:
如果获取的微信舆情热点来源于上述三个以上热点发现模块,则将该微信舆情热点的类别标记为高级微信舆情热点;
如果获取的微信舆情热点来源于上述两个热点发现模块,则将该微信舆情热点的类别标记为中级微信舆情热点;
如果获取的微信舆情热点仅来源于上述一个热点发现模块,则将该微信舆情热点的类别标记为初级微信舆情热点;
最后,将所述高级微信舆情热点、中级微信舆情热点和初级微信舆情热点依次发送到所述图表生成单元7。
其中,上述热点发现模块6.1~6.5所采用的算法都采用一般意义上的本领域的通用算法。因此本发明的改进之处并非在于上述几种算法本身。因为在现有的微信舆情监测系统中,往往只是使用了其中的一种微信舆情热点发现算法,而尚未发现将上述多种微信舆情热点发现算法同时使用,并对集中算法的结果进行等级分类的系统。并且,虽然本发明的微信舆情监测系统使用了多种舆情热点发现算法,但由于本发明的系统采用了基于云计算的分布式架构,因此并不会带来难以承受的开销,并由于多种方式的组合,大大提高了微信舆情监测系统的准确性,取得了较好的技术效果。
具体地:
所述图表生成单元7可生成的微信舆情分析报表和/或分析图包括:微信舆情信息热度排行报表、微信舆情预警信息分布报表、微信舆情地理信息分布报表、微信舆情情感分析报表、微信舆情状态统计报表以及微信舆情趋势走向分析图。
本说明书中所描述的系统及其组成模块的实施例仅仅是示意性的,可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
综上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。