一种多特征融合的微博中社会安全事件检测方法与流程

文档序号:16855822发布日期:2019-02-12 23:16阅读:242来源:国知局
一种多特征融合的微博中社会安全事件检测方法与流程

本发明涉及社会安全事件侦测技术领域,特别是一种多特征融合的微博中社会安全事件检测方法。



背景技术:

目前国内外对微博中社会安全事件的检测已经开展了不少的研究工作,也取得了很多研究成果,但是现有的方法或是脱离事件的主题内容,只分析数值趋势变化;或是只考虑文本内容的语义统计信息,缺乏相应的数值统计信息,同时也忽略了深层次的语义含义。

基于上述问题,如何提高识别微博谣言的准确度成为本领域亟需解决的问题。



技术实现要素:

本发明的目的是要解决现有技术中存在的不足,提供一种多特征融合的微博中社会安全事件检测方法。

为达到上述目的,本发明是按照以下技术方案实施的:

一种多特征融合的微博中社会安全事件检测方法,包括以下步骤:

步骤一、获取微博文本数据后对获取到的微博文本进行预处理,清除其中的异常数据和噪声数据,实现数据格式的标准化,并构建相应的微博数据资源库;

步骤二、提取微博文本中的社会安全事件特征词,其中社会安全事件特征词包括:表征事件基本要素的实体词、表征事件信息主题的特征词、与事件话题标签相关的特征词、体现社会安全事件突发性的特征词、过滤广告性的特征词,将以上各项特征词的取值进行综合,计算每个特征词的等分,具体的得分计算规则为:

其中,score(wi)表示特征词wi的最终得分,featurej(wi)表示特征词wi除了第一个特征以外其他四个特征的得分,max(featurej)表示该特征的最大得分,min(featurej)表示该特征的最小得分,if(wi)∈entity表示该特征词属于第一个特征,即该词属于实体词;

步骤三、基于语境的词语语义相关度计算方法计算社会安全事件特征词的相关度;

步骤四、构建社会安全事件侦测模型:利用社会安全事件特征词选取方法抽取每一单位时间窗口内所有微博文本的特征词,结合特征词相关度计算算法,计算每个特征词相互之间的相关度,构建特征词相关度矩阵,通过相关度矩阵采用凝聚式层次聚类的算法对特征词进行聚类,实现每个时间窗口内的社会安全事件的侦测。

进一步,所述步骤一中,微博文本数据的获取步骤为:

sstep1:基于新浪api从微博名人榜获取种子用户及其对应的粉丝用户和关注用户,加入到种子列表;

step2:将种子列表转换为种子url,并判断种子用户列表是否为空,若为空则进入step4,否则进入step3;

step3:遍历种子列表,采用网络爬虫的方法,爬取种子用户的相关微博信息、微博评论信息和用户个人信息,并将微博评论用户加入到种子列表中,具体步骤为:获取种子列表中待爬取url,并进行url解析与信息获取,具体包括:获取用户信息url并进入相应页面从微博数据资源库中爬取用户粉丝用户和关注用户以及爬取用户的其他相关信息;获取用户微博url并进入相应页面从微博数据资源库中爬取微博转发点赞、评论用户、爬取微博评论文本以及爬取微博其他相关信息;同时将爬取的用户粉丝用户和关注用户、爬取的微博转发点赞、评论用户加入种子列表中。

进一步,所述步骤一中微博文本预处理具体包括:

(1)繁体字转换

通过对《通用规范汉字表》中的简体字和繁体字进行整理,收集构建《繁体字和简体字对照表》,对微博文本中的繁体字转换为相应的简体字;

(2)分词及停用词去除

通过收集和整理,构建一个面向微博文本分词的用户词典和停用词表,用户词典中包括了网络用语、新词、人名、地名、机构名、常用俚语和微博常用词,在用户词典和停用词表的基础上,构建汉语分词系统实现对微博文本的分词处理与停用词去除;

(3)@符号和url替换

将微博中的@+用户名整体替换为<name>的形式,另外,将微博文本中引用的ulr替换为<url>的形式;

(4)微博内容过滤

对经过以上处理之后,将包含词数少于5个的微博文本直接剔除,还包括全部是重复符号的、重复字母的、重复汉字的重复微博,同时剔除广告性质和推广性质的垃圾微博的微博。

进一步,所述步骤二中表征事件基本要素的实体词、表征事件信息主题的特征词、与事件话题标签相关的特征词、体现社会安全事件突发性的特征词、过滤广告性的特征词的提取具体为:

(1)表征事件基本要素的实体词的提取:事件的基本要素中包括时间、地点、人物、机构、日期、数量命名实体词语,这些词语表征了事件的基本特征;

(2)表征事件信息主题的特征词的提取:如果在一条微博文本中,某个词的出现频率即tf值较高,但在其他微博文本中出现频率即idf值较低,则认为此词能够很好地表征这篇微博文本的主题,因此,采用tf-idf模型来衡量每一个词与事件主题的相关程度,具体的tf-idf计算公式如下:

tfidf(wij)=tf(wij)*idf(wij)

其中,|wij|表示词语wi在微博j内出现的频次,表示微博j中所有词数之和,|d|表示当前时间窗内所有微博数目,表示当前时间窗内出现词wi的微博数目,tfidf(wij)则表示词wi在微博j中的tf-idf值,为每条微博选取tf-idf排名前三的词语作为特征词,并设定相应的过滤规则对其过滤;

(3)与事件话题标签相关的特征词的提取:在微博中,具有一定影响力的话题或事件都会被创建成为一定的话题标签,通过使用两个“#”符号将话题标签包含起来进行标记,通过计算每个词语的话题标签价值度hashtagvalue来衡量该词语与某个社会安全事件话题标签的相关程度,其计算公式如下:

其中,hv(wi)表示词语wi的话题标签价值度,m表示所有微博的集合,h表示m中所有话题标签的集合,表示在h中存在一个话题标签h包含词语wi,表示在h中不存在话题标签h包含词语wi,|h|表示h中包含的话题标签的总数目,|h|表示包含词语wi的话题标签的数目,|m|表示m中包含的微博的总数目,表示在m中存在一条微博m包话题标签h,并且m中包含有词语wi,表示上述微博m的数目;

话题标签价值度的计算将词语分为了两类,一类是出现在话题标签中的词语,该类词语的话题标签价值度采用包含该词语的话题标签的数目与总的话题标签的数目的比值来衡量;另一类是未出现在话题标签中的词语,该类词语的话题标签价值度采用包含该词语的微博且微博中包含有话题标签的微博数目与总的微博数目的比例来衡量;通过对预处理后微博中的词语进行话题标签价值度分析,利用二八原则,选取上述两类词语话题标签价值度分别排名前20%的词语作为与事件话题标签相关的特征词;

(4)体现社会安全事件突发性的特征词的提取:利用词频增量来对某个时间窗内表征事件突发性的特征词进行提取,词频增量一般通过词语在相邻时间窗的词频变化情况来进行衡量,在相邻时间窗的基础上,引入了相对时间窗,将两者合称为参照时间窗,通过当前时间窗与参照时间窗词语频次的变化来对词频增长率进行计算,计算公式如下:

其中,ft(wij)表示词语wi在当前时间窗j的词频增长率,f(wij)表示词wi在时间窗j内微博中出现的次数,f(wi(j-1))表示词wi在前一个时间窗j-1内微博中出现的次数,f(wij)表示词wi在相对时间窗内微博中出现的次数,对于相对时间窗的选取策略,需根据事件的发展周期和时间片大小来确定,若时间片以天为时间单位,相对时间窗选取可以选取为j-2的时间窗,若时间片以小时为时间单位,则相对时间窗选取为前一天的第j个时间窗,α1和α2分别是调节系数,表示相邻时间窗和相对时间窗的影响力,通过对预处理后的微博按时间片进行划分,分别对每个时间片微博中词语进行突发性分析,同样利用二八原则,选取突发性排名前20%的词语作为能够体现社会安全事件突发性的特征词;

(5)过滤广告性的特征词的提取:设广告性的特征词词语wi出现在n条微博中,发布这些微博的用户{a1,a2,…,ak}采用词wi分别发布了{c1,c2,…,ck}(σci=n)条消息,则词语wi的词语信息扩散熵en(wi)计算公式如下:

词语信息扩散熵en(wi)是广告性的特征词词语wi扩散程度的度量,其值越大,表示包含该词语的微博传播的用户越多,扩散范围越大,影响程度越大;反之,则包含该词语的微博传播的用户很少,扩散范围很小,影响力也有限,通过对选取的特征词进行词语信息扩散熵分析,同样利用二八原则,将广告性的特征词词语信息扩散熵排名最后的20%的词语从特征词中剔除。

进一步,所述步骤三是通过构建基于语境的词语语义相关度计算方法,具体的计算步骤如下:

step1:采用微博数据爬取方法和微博文本预处理方法对当前一段时间的微博文本进行获取和预处理,构建微博语料库;

step2:提取微博语料库中每条微博中的共现词语对,计算每个共现词语对的共现频次和互信息,互信息的计算公式如下:

其中,p(w1,w2)表示词语w1、w2在同一条微博中共同出现的频率,p(w1)、p(w2)表示词语w1、w2在微博语料中各自单独出现的频率,其计算公式如下:

其中,c(w1)、c(w2)、c(w1,w2)表示词w1、w2在微博语料中各自单独出现的频次和共现的频次,n为微博语料中词语的总数,通过词语之间的互信息mi(w1,w2)和共现频次c(w1,w2)的阈值αmi和αc实现对共现词语对的筛选;

step3:将抽取的共现词语对进行组合,构建词语共现关系图;

step4:抽取每个词语对在共现关系图中的路径的数量n和每条路径的长度li(1≤i≤n),仅考虑长度小于α(α>1)的路径,并且为不同长度(1,α)的路径分别赋予对应的权重βk(1≤k≤α),采用加权长度βkli对路径的长度进行衡量,则词语ei到ej之间的平均加权路径总长计算公式如下:

将公式式进行改进为如下公式:

其中,对于不同长度路径的权值βk的计算公式如下:

则对于词语ei和ej,其词语语义相关度的计算模型如下:

step5:获取实时的微博语料,对词语共现关系图进行更新。

进一步,所述步骤四中对每个时间窗口内的社会安全事件的侦测的具体算法如下:

输入:微博文本t,时间窗口大小t,特征性相关度矩阵r,类簇合并相关度阈值θ

输出:特征词聚类结果

过程:

step1:将微博文本t按照时间窗口大小t进行划分;

step2:提取每一时间窗口内微博文本的社会安全事件特征词集合;

step3:计算每一时间窗口内特征词集合的相关度矩阵;

step4:对最小时间窗口内的特征词进行凝聚式层次聚类:

step4.1:将每一个特征词当作一个类簇;

step4.2:将相关度最大的两个类簇合并成一个类簇,该类簇与其他类簇的相关度用该类簇的两个子类簇与其他类簇的平均值表示,更新相关度矩阵。

step4.3:重复step4.2,直到所有类簇之间的相关度小于θ;

step4.4:返回该时间窗口的聚类结果;

step5:将step4的聚类结果与下一个时间窗的特征词集合进行合并,更新对应的相关度矩阵,重复step4,直到最后一个时间窗口;

step6:返回最终的聚类结果,每一个类簇作为一个社会安全事件;

其中,对于类簇合并相关度阈值θ的选取,由于θ表明了各个类簇进行合并的条件,将θ设置为所构建的共现关系图中,词语之间只存在一条路径,且路径长度为α的所有词语对之间相关度的均值。

优选地,所述体现社会安全事件突发性的特征词的提取过程中α1和α2的取值分别为0.5。

与现有技术相比,本发明具有以下有益效果:

1、本发明在对微博文本进行表示时,充分考虑了社会安全事件的突发性和主题性特征,融合了事件的基本要素、事件的信息主题、事件的话题标签相关性、事件的突发性并能够很好的过滤广告性词语五个方面的特征,能够很好的对事件的特征进行表征。

2、本发明在对特征词进行相关度计算时,充分考虑了事件侦测过程中的领域性需求,利用大规模语料建立词语共现关系图实现特征词的相关度计算,且领域性语料不需进行标注和其它额外处理,能够很好的进行领域性扩充。

3、本发明在对事件进行识别的过程中,采用层次聚类和增量聚类相结合,充分考虑了事件随时间不断变化的过程,同时,采用特征词进行聚类,有效减小了特征维度,提升了模型的运行效率。

附图说明

图1为本发明的微博文本数据的获取流程图。

具体实施方式

下面结合具体实施例对本发明作进一步描述,在此发明的示意性实施例以及说明用来解释本发明,但并不作为对本发明的限定。

本实施例的一种多特征融合的微博中社会安全事件检测方法,是以新浪微博为检测对象,具体步骤如下:

步骤一、获取微博文本数据后对获取到的微博文本进行预处理,清除其中的异常数据和噪声数据,实现数据格式的标准化,并构建相应的微博数据资源库;其中如图1所示,微博文本数据的获取步骤为:

step1:基于新浪api从微博名人榜获取种子用户及其对应的粉丝用户和关注用户,加入到种子列表;

step2:将种子列表转换为种子url,并判断种子用户列表是否为空,若为空则进入step4,否则进入step3;

step3:遍历种子列表,采用网络爬虫的方法,爬取种子用户的相关微博信息、微博评论信息和用户个人信息,并将微博评论用户加入到种子列表中,具体步骤为:获取种子列表中待爬取url,并进行url解析与信息获取,具体包括:获取用户信息url并进入相应页面从微博数据资源库中爬取用户粉丝用户和关注用户以及爬取用户的其他相关信息;获取用户微博url并进入相应页面从微博数据资源库中爬取微博转发点赞、评论用户、爬取微博评论文本以及爬取微博其他相关信息;同时将爬取的用户粉丝用户和关注用户、爬取的微博转发点赞、评论用户加入种子列表中。

step4:结束。

然后,就可以对获取的微博文本就行预处理,预处理工作主要包括以下几个方面:

(1)繁体字转换

在微博平台中,存在很多的海外和港台用户,他们很多都使用繁体字发表微博,如果不统一转换为简体字,后期无论是分词处理还是进行情感分析计算都会受到很大的影响。本实施例通过对《通用规范汉字表》中的简体字和繁体字进行整理,收集构建了《繁体字和简体字对照表》,对微博文本中的繁体字进行转换。

(2)分词及停用词去除

为了提升分词的效果,通过收集和整理,构建了一个面向微博文本分词的用户词典和停用词表,用户词典中包括了大量的网络用语、新词、人名、地名、机构名、常用俚语和微博常用词,在用户词典和停用词表的基础上,构建汉语分词系统实现对微博文本的分词处理与停用词去除。

(3)@符号和url替换

微博中存在很多用户之间的互动行为,主要通过@+用户名的形式实现,会对后面微博特征词的提取造成干扰,因此采用特征匹配的方式,将@+用户名整体替换为<name>的形式。另外,虽然微博文本已经取消了140字的限制,但人们由于使用的习惯,一般微博文本都还是比较短小,常引用一些ulr对文内内容进行补充,这些url同样会对后面的分析造成干扰,因此拟采用正则匹配的方法将其替换为<url>的形式。

(4)微博内容过滤

对经过以上处理之后,将包含词数少于5个的微博文本直接剔除,还包括全部是重复符号的、重复字母的、重复汉字的等重复微博。同时,微博作为一种流行的社交媒体,其中充斥了大量的广告性质和推广性质的垃圾微博,这些微博严重影响了事件的检测和情感分析,因此需要对其进行过滤。本实施例通过收集构建了一个广告词过滤词表,通过匹配的方法实现对广告性质和推广性质的垃圾微博的微博的过滤。

步骤二、提取微博文本中的社会安全事件特征词

在提取社会安全事件特征词时要充分考虑微博文本的特点,结合社会安全事件用词的突发性和主题性,提取能够充分反映事件信息的词语,同时还不能引入其他干扰信息,因此,本实施例从以下几个方面考虑特征词的选取:

(1)能够表征事件基本要素的实体词。事件的基本要素中(5w1h,即where、when、who、what、why、how)包括了时间、地点、人物、机构、日期、数量等命名实体词语,这些词语表征了事件的基本特征,能够对事件起到很好的区分作用,因此,本实施例构建实体词抽取策略实现对这些特征词的抽取。

(2)能够表征事件信息主题的特征词。如果在一条微博文本中,某个词的出现频率(tf值)较高,但在其他微博文本中出现频率(idf值)较低,则认为此词能够很好地表征这篇微博文本的主题,因此,本实施例采用tf-idf模型来衡量每一个词与事件主题的相关程度,具体的tf-idf计算如式(1)-式(3)所示。

tfidf(wij)=tf(wij)*idf(wij)(3)

其中,|wij|表示词语wi在微博j内出现的频次,表示微博j中所有词数之和,|d|表示当前时间窗内所有微博数目,表示当前时间窗内出现词wi的微博数目,tfidf(wij)则表示词wi在微博j中的tf-idf值,为每条微博选取tf-idf排名前三的词语作为特征词,并设定相应的过滤规则对其过滤。

(3)与事件话题标签相关的特征词。在微博中,具有一定影响力的话题或事件都会被创建成为一定的话题标签,通过使用两个“#”符号将话题标签包含起来进行标记。话题标签能够很好的帮助平台聚合和归纳庞大冗余的信息,也可以让用户快速了解当前社会聚焦的热点话题。通常情况下,与事件关联程度越高的词语,越容易出现在与其相关的话题标签中。为了充分利用微博话题标签的这个特点,本实施例通过计算每个词语的话题标签价值度(hashtagvalue)来衡量该词语与某个社会安全事件话题标签的相关程度,其计算方式如式(4)所示。

其中,hv(wi)表示词语wi的话题标签价值度,m表示所有微博的集合,h表示m中所有话题标签的集合,表示在h中存在一个话题标签h包含词语wi,表示在h中不存在话题标签h包含词语wi,|h|表示h中包含的话题标签的总数目,|h|表示包含词语wi的话题标签的数目,|m|表示m中包含的微博的总数目,表示在m中存在一条微博m包话题标签h,并且m中包含有词语wi,表示上述微博m的数目。

总的来说,话题标签价值度的计算将词语分为了两类,一类是出现在话题标签中的词语,该类词语的话题标签价值度采用包含该词语的话题标签的数目与总的话题标签的数目的比值来衡量;另一类是未出现在话题标签中的词语,该类词语的话题标签价值度采用包含该词语的微博且微博中包含有话题标签的微博数目与总的微博数目的比例来衡量。这样可以有效的解决未包含在话题标签中词语的话题标签价值度的计算问题,能够获取更全面的与事件话题标签相关的特征词。通过对预处理后微博中的词语进行话题标签价值度分析,利用二八原则,选取上述两类词语话题标签价值度分别排名前20%的词语作为与事件话题标签相关的特征词。

(4)能够体现社会安全事件突发性的特征词。能够描述事件突发性的特征词往往会在某个时间窗口内大量涌现,因此,可利用词频增量来对某个时间窗内表征事件突发性的特征词进行提取。词频增量一般通过词语在相邻时间窗的词频变化情况来进行衡量,但是,如果仅使用相邻时间窗对词频变化进行衡量可能会引入噪声,因为微博中存在一些周期性重复使用的词语,这些词语在某一时间窗内的词频增量会相对较高,例如“早安”、“晚安”这类词语在早晨和晚上会突然増加,然而这类词语对社会安全事件的描述基本不起作用。此外,社会安全事件一般具有特定的生命周期,并且其爆发期一般较短,因此,在事件扩散期内使用相邻事件窗进行突发性词语的提取,会导致有些对事件比较重要的词语难以抽取到。因此本实施例在相邻时间窗的基础上,引入了相对时间窗,将两者合称为参照时间窗,通过当前时间窗与参照时间窗词语频次的变化来对词频增长率进行计算,计算公式如式(5)所示。

其中,ft(wij)表示词语wi在当前时间窗j的词频增长率,f(wij)表示词wi在时间窗j内微博中出现的次数,f(wi(j-1))表示词wi在前一个时间窗j-1内微博中出现的次数,f(wij)表示词wi在相对时间窗内微博中出现的次数,对于相对时间窗的选取策略,需根据事件的发展周期和时间片大小来确定,比如:若时间片以天为时间单位,相对时间窗选取可以选取为j-2的时间窗,若时间片以小时为时间单位,则相对时间窗可以选取为前一天的第j个时间窗,α1和α2分别是调节系数,表示相邻时间窗和相对时间窗的影响力,本实施例中其取值分别为0.5。通过对预处理后的微博按时间片进行划分,分别对每个时间片微博中词语进行突发性分析,同样利用二八原则,选取突发性排名前20%的词语作为能够体现社会安全事件突发性的特征词。

(5)能够很好过滤广告性的特征词。大量营销类、广告类账号为了推广其产品,会采用病毒式的营销策略,在同一时间段内推送大量含有相应特征词的微博消息,意图使检索结果中尽可能多地呈现自己的广告消息。这些广告消息会对社会安全事件的分析造成了极大的干扰,需要将其剔除。为此,本实施例提出了一种基于词语扩散熵的特征词选取模型,该模型考虑了微博用户在使用某一词语时,对该词语的扩散程度,一般而言,广告营销类的微博大多是由同一个用户或同几个用户大量发布的,并且一般的其他用户也不会进行过多的转载,其扩散程度有限;而社会安全事件相关的微博,由于其内容较为敏感,且一般为社会的热点问题,容易引起大量用户的关注,与其相关的微博的发布和转发用户范围很广,其扩散的程度相对较大。设广告性的特征词词语wi出现在n条微博中,发布这些微博的用户{a1,a2,…,ak}采用词wi分别发布了{c1,c2,…,ck}(∑ci=n)条消息,则词语wi的词语信息扩散熵en(wi)计算方式如式(6)所示。

词语信息扩散熵en(wi)是广告性的特征词词语wi扩散程度的度量,其值越大,表示包含该词语的微博传播的用户越多,扩散范围越大,影响程度越大;反之,则包含该词语的微博传播的用户很少,扩散范围很小,影响力也有限。通过对选取的特征词进行词语信息扩散熵分析,同样利用二八原则,将广告性的特征词词语信息扩散熵排名最后的20%的词语从特征词中剔除。

根据以上特征词选取规则,对微博文本进行特征词提取,并将以上各项的取值进行综合,计算每个特征词的等分,具体的得分计算规则如公式(7)所示。

其中,score(wi)表示特征词wi的最终得分,featurej(wi)表示特征词wi除了第一个特征以外其他四个特征的得分,max(featurej)表示该特征的最大得分,min(featurej)表示该特征的最小得分,if(wi)∈entity表示该特征词属于第一个特征,即该词属于实体词。

步骤三、基于语境的词语语义相关度计算方法计算社会安全事件特征词的相关度

本实施例拟构建基于特征词聚类的社会安全事件侦测算法,该算法的核心是对特征词之间的相关度的进行度量,这里的相关度不同于一般的词语相似度,普通的词语相似度只是衡量词语之间的语义关系,并没有考虑词语之间的主题关联性,例如在“北京红黄蓝幼儿园涉嫌虐童”事件的相关微博中,其特征词包括“虐童”和“老虎团”,从语义层面上来讲,这两个词没有任何的相似性,但是在该事件中,两者具有很强的关联性。为此,本实施例构建基于语境的词语语义相关度计算方法。具体的计算步骤如下:

step1:采用微博数据爬取方法和微博文本预处理方法对当前一段时间的微博文本进行获取和预处理,构建微博语料库;

step2:提取微博语料库中每条微博中的共现词语对,计算每个共现词语对的共现频次和互信息,互信息的计算方法如式(8)所示。

其中,p(w1,w2)表示词语w1、w2在同一条微博中共同出现的频率,p(w1)、p(w2)表示词语w1、w2在微博语料中各自单独出现的频率,其计算如式(9)、(10)所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1