本地事件检测方法、装置、设备和存储介质转让专利

申请号 : CN202111381988.7

文献号 : CN113821739B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋轩李永康范子沛尹渡冯德帆邓锦亮王宏俊

申请人 : 南方科技大学

摘要 :

本发明公开了一种本地事件检测方法、装置、设备和存储介质,方法包括:实时获取预设地区的推文数据;通过预设的两级分类器,对各推文数据进行两级分类,得到各推文数据的一级标签和二级标签,并根据一级标签和二级标签,获取属于同一事件类别的推文数据;分别获取属于同一事件类别的各推文数据的位置信息;根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇;分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件。本发明可保证本地事件检测的实时性和准确性。

权利要求 :

1.一种本地事件检测方法,其特征在于,包括:实时获取预设地区的推文数据,所述预设地区的推文数据包括签到信息为预设地区的兴趣点的推文数据以及包含预设地区对应的关键字的推文数据;

通过预设的两级分类器,对各推文数据进行两级分类,得到各推文数据的一级标签和二级标签,所述一级标签用于表示推文数据是否存在潜在事件,所述二级标签用于表示当存在潜在事件时推文数据所属的事件类别,并根据各推文数据的一级标签和二级标签,获取属于同一事件类别的推文数据;

分别获取属于同一事件类别的各推文数据的位置信息;

根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇;

分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件,所述事件摘要包括对应的推文簇中预设第一数量的推文数据的文本和预设第二数量的关键词;

所述根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇,包括:分别根据各推文数据的文本,生成各推文数据的文本向量编码;

根据推文数据的发布时间,依序获取属于同一事件类别的推文数据中的一推文数据,作为当前推文数据;

判断当前推文数据是否为第一个推文数据;

若是,则建立推文簇,将当前推文数据加入所述推文簇,并根据当前推文数据的发布时间、位置信息和文本向量编码,设置所述推文簇的时间、地址和文本向量编码;

若否,则判断是否存在一推文簇,当前推文数据与所述一推文簇的距离小于或等于预设的第一距离阈值,当前推文数据的发布时间与所述一推文簇的时间的时间差小于预设的第一时间阈值,且当前推文数据的文本向量编码与所述一推文簇的文本向量编码之间的距离小于预设的第二距离阈值;

若存在,则将当前推文数据加入所述一推文簇,并根据所述一推文簇中各推文数据的发布时间、位置信息和文本向量编码,更新所述一推文簇的时间、地址和文本向量编码;

若不存在,则建立新的推文簇,将当前推文数据加入所述新的推文簇,并根据当前推文数据的发布时间、位置信息和文本向量编码,设置所述新的推文簇的时间、地址和文本向量编码。

2.根据权利要求1所述的本地事件检测方法,其特征在于,所述通过预设的两级分类器,对各推文数据进行两级分类,得到各推文数据的一级标签和二级标签之前,所述方法还包括:

构建BERT文本分类器;

获取样本数据,并对所述样本数据进行标签标注,得到训练数据,所述标签包括一级标签和二级标签,所述一级标签的值为表示不存在潜在事件的第一值或表示存在潜在事件的第二值,所述二级标签的值为预设的事件类别;

根据所述训练数据对所述BERT文本分类器进行训练,得到两级分类器,所述两级分类器包括一级分类器和二级分类器,所述一级分类器用于将推文数据分类为存在潜在事件的推文数据以及不存在潜在事件的推文数据,所述二级分类器用于确定存在潜在事件的推文数据所属的事件类别。

3.根据权利要求1所述的本地事件检测方法,其特征在于,所述分别获取属于同一事件类别的各推文数据的位置信息,包括:若一推文数据包含签到信息,则获取签到信息中的兴趣点的位置信息,作为所述一推文数据的位置信息;

若一推文数据不包含签到信息,则通过预设的命名体识别模型,识别所述一推文数据的潜在地址,并通过地图,获取所述潜在地址的位置信息,作为所述一推文数据的位置信息。

4.根据权利要求1所述的本地事件检测方法,其特征在于,所述根据所述一推文簇中各推文数据的发布时间、位置信息和文本向量编码,更新所述一推文簇的时间、地址和文本向量编码,包括:

根据所述一推文簇中各推文数据的发布时间,获取最新发布时间,并根据所述最新发布时间,更新所述一推文簇的时间;

根据所述一推文簇中各推文数据的位置信息,计算中心点,并根据所述中心点的位置信息,更新所述一推文簇的地址;

计算所述一推文簇中各推文数据的文本向量编码的平均值,并根据所述平均值,更新所述一推文簇的文本向量编码。

5.根据权利要求1所述的本地事件检测方法,其特征在于,所述根据所述一推文簇中各推文数据的发布时间、位置信息和文本向量编码,更新所述一推文簇的时间、地址和文本向量编码之后,所述方法还包括:

分别计算所述一推文簇的文本向量编码与属于同一事件类别的其他推文簇的文本向量编码的距离;

若所述一推文簇的文本向量编码与属于同一事件类别的另一推文簇的文本向量编码的距离小于预设的第三距离阈值,则将所述一推文簇与所述另一推文簇进行合并,并根据合并后的推文簇中各推文数据的发布时间、位置信息和文本向量编码,更新合并后的推文簇的时间、地址和文本向量编码。

6.根据权利要求1、4‑5任一项所述的本地事件检测方法,其特征在于,所述根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇之后,所述方法还包括:若一推文簇的时间与当前时间的时间差超过预设的第二时间阈值,则将所述一推文簇设为历史簇。

7.根据权利要求1所述的本地事件检测方法,其特征在于,所述分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件,包括:分别根据各推文簇中推文数据的总数量、评论总数、转发总数、总字数及其所属事件类别对应的分数,计算各推文簇的影响因子;

分别生成各推文簇的事件摘要,所述事件摘要包括对应的推文簇中预设第一数量的推文数据的文本和预设第二数量的关键词;

接收客户端发送的第一请求,所述第一请求包括事件类别;

获取属于所述第一请求中的事件类别,且影响因子最高的N个推文簇,并将所述N个推文簇的事件摘要返回所述客户端,N为预设的自然数。

8.根据权利要求7所述的本地事件检测方法,其特征在于,所述分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件,还包括:接收客户端发送的第二请求,所述第二请求包括关键词;

匹配得到事件摘要中包含所述第二请求中的关键词的推文簇,并将匹配得到的推文簇的事件摘要返回所述客户端。

9.一种本地事件检测装置,其特征在于,包括:第一获取模块,用于实时获取预设地区的推文数据,所述预设地区的推文数据包括签到信息为预设地区的兴趣点的推文数据以及包含预设地区对应的关键字的推文数据;

分类模块,用于通过预设的两级分类器,对各推文数据进行两级分类,得到各推文数据的一级标签和二级标签,所述一级标签用于表示推文数据是否存在潜在事件,所述二级标签用于表示当存在潜在事件时推文数据所属的事件类别,并根据各推文数据的一级标签和二级标签,获取属于同一事件类别的推文数据;

第二获取模块,用于分别获取属于同一事件类别的各推文数据的位置信息;

聚类模块,用于根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇;

生成模块,用于分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件,所述事件摘要包括对应的推文簇中预设第一数量的推文数据的文本和预设第二数量的关键词;

所述聚类模块包括:

第一生成单元,用于分别根据各推文数据的文本,生成各推文数据的文本向量编码;

第三获取单元,用于根据推文数据的发布时间,依序获取属于同一事件类别的推文数据中的一推文数据,作为当前推文数据;

第一判断单元,用于判断当前推文数据是否为第一个推文数据;

第一建立单元,用于若是,则建立推文簇,将当前推文数据加入所述推文簇,并根据当前推文数据的发布时间、位置信息和文本向量编码,设置所述推文簇的时间、地址和文本向量编码;

第二判断单元,用于若否,则判断是否存在一推文簇,当前推文数据与所述一推文簇的距离小于或等于预设的第一距离阈值,当前推文数据的发布时间与所述一推文簇的时间的时间差小于预设的第一时间阈值,且当前推文数据的文本向量编码与所述一推文簇的文本向量编码之间的距离小于预设的第二距离阈值;

更新单元,用于若存在,则将当前推文数据加入所述一推文簇,并根据所述一推文簇中各推文数据的发布时间、位置信息和文本向量编码,更新所述一推文簇的时间、地址和文本向量编码;

第二建立单元,用于若不存在,则建立新的推文簇,将当前推文数据加入所述新的推文簇,并根据当前推文数据的发布时间、位置信息和文本向量编码,设置所述新的推文簇的时间、地址和文本向量编码。

10.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1‑8中任一所述的本地事件检测方法。

11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1‑8任一项所述的本地事件检测方法的步骤。

说明书 :

本地事件检测方法、装置、设备和存储介质

技术领域

[0001] 本发明涉及数据挖掘技术领域,尤其涉及一种本地事件检测方法、装置、设备和存储介质。

背景技术

[0002] 实时检测城市中的本地事件对于城市的管理非常重要,有利于城市管理者感知与政策的实施。对于市民,大多数人被困在日常工作中而很少有渠道了解居住地身边发生的
事件,通过本地事件检测可以给他们更多关于本地的信息,使市民朋友们也可以有更多的
参与感,真正感受到了自己被关注,提升了居民的生活幸福感。但是以往的新闻媒体由于资
源有限,往往只关注城市中的一些高优先级事件(如特大事故、重大比赛等),并且这些报道
往往存在时间上的显著延迟(如在今天的报纸读到昨天发生的事件),所以本地事件的实时
检测一直以来都是一个待解决的难题。
[0003] 随着时代的进步,手机、电脑等网络终端逐渐走进每个人的生活中,而在线社交媒体的发展使人们可以实时在线分享自己的生活。微博、推特、Instagram就是其中的代表性
软件,这些软件的特点在于用户可以实时分享图片文本视频,并且可以加上定位信息,而用
户可以选择公开使任意一位用户都可以查看所发的内容。截止到2020年末,微博月活跃用
户为5.23亿,推特的月活超过3.3亿,而Instagram每月活跃用户超过10亿,这些海量的用户
每天都会在社交平台上更新大量的信息,而这些大量的信息中存在很多用户所分享的自己
参与的本地事件的内容,比如参加一场运动会,某道路上发生了一场交通事故等等。这些城
市中的本地事件不仅地理位置相近,并且语义上时相同或者相关联。与大规模的新闻不同,
单个城市事件的相关推文数量往往很少,可能只有十几、二十几条,如何能实时地从海量的
社交媒体推文信息流中挖掘探查到城市中发生的事件同样是一个难题。
[0004] 目前,已有人提出了微博突发事件的检测方法,包括:首先获取微博文本数据集,然后基于微博文本关注度及微博文本对应的发布者的影响力,对微博文本数据集进行噪声
过滤;通过预设时长建立多个时间窗,将微博文本数据集中的微博文本划分至相应的时间
窗中;对每个时间窗内的微博文本进行预处理;基于预设特征属性提取每个时间窗的突发
特征词集,再分别计算目标时间窗内的突发特征词之间的相似度,生成目标时间窗的突发
事件。
[0005] 还有人提出了基于BERT‑BTM网络的微博突发事件检测方法,包括:对微博数据集进行处理(分词、去除停用词)后获取原始数据集,再将该原始数据集使用预训练BERT模型
进行向量编码,即每个微博文本都用固定长度的一组向量表示。然后根据狄利克雷先验参
数α和融合了所述BERT词向量集的先验参数βi构建BERT‑BTM模型,通过BERT‑BTM模型对所
述原始数据集进行处理,获得突发事件词集。最后根据突发事件词集和该突发事件词集中
的词与词之间的共现关系构建BERT‑BTM网络,通过对BERT‑BTM网络的划分完成突发事件检
测。
[0006] 但上述方法主要集中在突发事件检测上,这种突发事件往往会成为新闻热点,受到极大关注。这类新闻往往能快速获得数以亿计的关注,同时会有大量的相关推文进行报
道评论等,所以在社交媒体信息流中检测出相关事件相对简单。但是这类事件对于城市管
理者实时了解城市状态、居民了解居住地附近所发生的活动并没有什么帮助。
[0007] 而本地事件检测聚焦在某个城市中所发生的事件,这类事件与市民的生活息息相关,及时快速地了解周边事件对于提升居民的生活幸福获得感非常重要,同时可以快速地
让城市管理者了解城市现状,及时针对相关问题以及潜在的风险准备处置方案。
[0008] 并且,上述的突发事件检测方法并不能实时检测事件,其工作基础是现有的一段时间内的微博数据集,相当于必须存在一个时间窗。模型必须在这个时间窗结束后才可以
起作用。这类基于时间窗的数据集与在线社交媒体实时信息流的实时流入特征相差较大,
强行迁移会导致模型的效果变差,甚至无法运行。
[0009] 另外,目前还有人提出了一种在线的基于带地理位置标签微博数据的本地事件检测方法。这种方法先将微博的空间信息、时间信息与文本信息共同编码映射到同一低维向
量空间,再将这条微博中的三部分信息拼接形成一个向量以表示整个微博;在得到微博的
向量表示后,使用贝叶斯混合聚类模型对不断到达的微博信息流进行聚类,每一个聚类簇
都是一个潜在的本地事件,然后构建一个逻辑回归分类器来对这些已经聚类完成的聚类簇
进行分类,判断其是否为一个真实的本地事件。
[0010] 然而,这种方式需要对所有带地理标签的微博进行编码转换和在线聚类,需要大量的计算资源,计算复杂度高,耗时时间长,不利于实时感知本地事件。

发明内容

[0011] 本发明所要解决的技术问题是:提供一种本地事件检测方法、装置、设备和存储介质,可提高本地事件检测的效率,保证检测实时性和准确性。
[0012] 第一方面,本发明提供了一种本地事件检测方法,包括:
[0013] 实时获取预设地区的推文数据,所述预设地区的推文数据包括签到信息为预设地区的兴趣点的推文数据以及包含预设地区对应的关键字的推文数据;
[0014] 通过预设的两级分类器,对各推文数据进行两级分类,得到各推文数据的一级标签和二级标签,所述一级标签用于表示推文数据是否存在潜在事件,所述二级标签用于表
示当存在潜在事件时推文数据所属的事件类别,并根据各推文数据的一级标签和二级标
签,获取属于同一事件类别的推文数据;
[0015] 分别获取属于同一事件类别的各推文数据的位置信息;
[0016] 根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇;
[0017] 分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件,所述事件摘要包括对应的推文簇中预设第一数量的推文数据的文本和预设第二数量的关键词。
[0018] 第二方面,本发明还提供了一种本地事件检测装置,包括:
[0019] 第一获取模块,用于实时获取预设地区的推文数据,所述预设地区的推文数据包括签到信息为预设地区的兴趣点的推文数据以及包含预设地区对应的关键字的推文数据;
[0020] 分类模块,用于通过预设的两级分类器,对各推文数据进行两级分类,得到各推文数据的一级标签和二级标签,所述一级标签用于表示推文数据是否存在潜在事件,所述二
级标签用于表示当存在潜在事件时推文数据所属的事件类别,并根据各推文数据的一级标
签和二级标签,获取属于同一事件类别的推文数据;
[0021] 第二获取模块,用于分别获取属于同一事件类别的各推文数据的位置信息;
[0022] 聚类模块,用于根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇;
[0023] 生成模块,用于分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件,所述事件摘要包括对应的推文簇中预设第一数量的推文数据的文本和预设第二数量的关键
词。
[0024] 第三方面,本发明还提供了一种电子设备,所述电子设备包括:
[0025] 一个或多个处理器;
[0026] 存储装置,用于存储一个或多个程序;
[0027] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面提供的本地事件检测方法。
[0028] 第四方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面提供的本地事件检测方法。
[0029] 本发明的有益效果在于:先通过两级分类器将推文数据进行分类,可以很好地去除与事件无关的推文,避免大量无关的推文数据参与到后续的聚类过程,再对属于同一事
件类别的推文数据进行聚类,使得每条推文数据只需要与同一事件类别的推文簇进行相似
度判断,大幅减少了所需的计算资源,加快了处理速度,提高了本地事件检测的效率,保证
检测的实时性;通过根据文本、发布时间和位置信息进行聚类,可保证每一条加入推文簇的
推文数据都是与推文簇属于同一本地事件的,从而保证本地事件检测的准确性。

附图说明

[0030] 图1为本发明提供的一种本地事件检测方法的流程图;
[0031] 图2为本发明提供的一种本地事件检测装置的结构示意图;
[0032] 图3为本发明提供的一种电子设备的结构示意图;
[0033] 图4为本发明实施例一的一种本地事件检测方法的流程图;
[0034] 图5为本发明实施例一的命名体识别模型的结构示意图。

具体实施方式

[0035] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便
于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0036] 在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多
步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作
完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方
法、函数、规程、子例程、子计算机程序等等。
[0037] 此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步
骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况
下,可以将第一信息为第二信息,且类似地,可将第二信息称为第一信息。第一信息和第二
信息两者都是信息,但其不是同一信息。术语“第一”、“第二”等而不能理解为指示或暗示相
对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以
明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两
个,例如两个,三个等,除非另有明确具体的限定。
[0038] 如图1所示,一种本地事件检测方法,包括:
[0039] S101:实时获取预设地区的推文数据,所述预设地区的推文数据包括签到信息为预设地区的兴趣点的推文数据以及包含预设地区对应的关键字的推文数据;
[0040] S102:通过预设的两级分类器,对各推文数据进行两级分类,得到各推文数据的一级标签和二级标签,所述一级标签用于表示推文数据是否存在潜在事件,所述二级标签用
于表示当存在潜在事件时推文数据所属的事件类别,并根据各推文数据的一级标签和二级
标签,获取属于同一事件类别的推文数据;
[0041] S103:分别获取属于同一事件类别的各推文数据的位置信息;
[0042] S104:根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇;
[0043] S105:分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件,所述事件摘要包括对应的推文簇中预设第一数量的推文数据的文本和预设第二数量的关键词。
[0044] 上述方法中,采用两级分类器进行过滤并将每一个事件类别的推文数据单独分离出来,再进行聚类,大幅减少了实现所需的计算资源,加快了处理速度,提高了检测的效率。
聚类过程中使用三个要素来保证每一条加入推文簇的推文数据都是与推文簇属于同一本
地事件的,从而保证最后输出的每个推文簇所表示的事件的真实性。
[0045] 在一个可选的实施例中,所述通过预设的两级分类器,对各推文数据进行两级分类,得到各推文数据的一级标签和二级标签之前,所述方法还包括:
[0046] 构建BERT文本分类器;
[0047] 获取样本数据,并对所述样本数据进行标签标注,得到训练数据,所述标签包括一级标签和二级标签,所述一级标签的值为表示不存在潜在事件的第一值或表示存在潜在事
件的第二值,所述二级标签的值为预设的事件类别;
[0048] 根据所述训练数据对所述BERT文本分类器进行训练,得到两级分类器,所述两级分类器包括一级分类器和二级分类器,所述一级分类器用于将推文数据分类为存在潜在事
件的推文数据以及不存在潜在事件的推文数据,所述二级分类器用于确定存在潜在事件的
推文数据所属的事件类别。
[0049] 上述方法中,采用BERT预训练模型加数据集微调的方式训练两级分类器,可以很好地去除与事件无关的推文,减少了大量无用的推文参与到后续的聚类过程,并且对每个
事件类别中的推文数据分别进行聚类,再次降低了整体流程的复杂度,使得整个系统的运
行变得更加快速准确。
[0050] 在一个可选的实施例中,所述分别获取属于同一事件类别的各推文数据的位置信息,包括:
[0051] 若一推文数据包含签到信息,则获取签到信息中的兴趣点的位置信息,作为所述一推文数据的位置信息;
[0052] 若一推文数据不包含签到信息,则通过预设的命名体识别模型,识别所述一推文数据的潜在地址,并通过地图,获取所述潜在地址的位置信息,作为所述一推文数据的位置
信息。
[0053] 由于本地事件是在确定城市中发生的事件,所以需要非常精确的地址位置,通过签到信息中的兴趣点或通过命名体识别模型,可获取到准确的潜在地址。若未能识别到潜
在地址,则认为推文数据不存在任何有用的地址信息,抛弃该推文数据。
[0054] 在一个可选的实施例中,所述根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇,包括:
[0055] 分别根据各推文数据的文本,生成各推文数据的文本向量编码;
[0056] 根据推文数据的发布时间,依序获取属于同一事件类别的推文数据中的一推文数据,作为当前推文数据;
[0057] 判断当前推文数据是否为第一个推文数据;
[0058] 若是,则建立推文簇,将当前推文数据加入所述推文簇,并根据当前推文数据的发布时间、位置信息和文本向量编码,设置所述推文簇的时间、地址和文本向量编码;
[0059] 若否,则判断是否存在一推文簇,当前推文数据与所述一推文簇的距离小于或等于预设的第一距离阈值,当前推文数据的发布时间与所述一推文簇的时间的时间差小于预
设的第一时间阈值,且当前推文数据的文本向量编码与所述一推文簇的文本向量编码之间
的距离小于预设的第二距离阈值;
[0060] 若存在,则将当前推文数据加入所述一推文簇,并根据所述一推文簇中各推文数据的发布时间、位置信息和文本向量编码,更新所述一推文簇的时间、地址和文本向量编
码;
[0061] 若不存在,则建立新的推文簇,将当前推文数据加入所述新的推文簇,并根据当前推文数据的发布时间、位置信息和文本向量编码,设置所述新的推文簇的时间、地址和文本
向量编码。
[0062] 从上述描述可知,当推文数据与推文簇满足三个条件:推文数据的位置信息(与推文簇的地址之间的距离不超过预设的距离,推文数据的发表时间与推文簇的时间之间的时
间差小于预设的时间,推文数据的文本向量编码与推文簇的文本向量编码之间的距离小于
预设的距离,则认为该推文数据属于该推文簇,将该推文数据加入该推文簇中。
[0063] 在一个可选的实施例中,所述根据所述一推文簇中各推文数据的发布时间、位置信息和文本向量编码,更新所述一推文簇的时间、地址和文本向量编码,包括:
[0064] 根据所述一推文簇中各推文数据的发布时间,获取最新发布时间,并根据所述最新发布时间,更新所述一推文簇的时间;
[0065] 根据所述一推文簇中各推文数据的位置信息,计算中心点,并根据所述中心点的位置信息,更新所述一推文簇的地址;
[0066] 计算所述一推文簇中各推文数据的文本向量编码的平均值,并根据所述平均值,更新所述一推文簇的文本向量编码。
[0067] 从上述描述可知,推文簇的时间定义为簇中离当前时间最近的一条推文数据的发布时间,即簇中所有推文数据的最新发布时间;推文簇的地址定义为簇中所有推文数据的
位置信息在地图上的中心点,即经纬度的平均值;簇的文本向量编码定义为簇中所有推文
数据的文本向量编码的平均值。
[0068] 在一个可选的实施例中,所述根据所述一推文簇中各推文数据的发布时间、位置信息和文本向量编码,更新所述一推文簇的时间、地址和文本向量编码之后,所述方法还包
括:
[0069] 分别计算所述一推文簇的文本向量编码与属于同一事件类别的其他推文簇的文本向量编码的距离;
[0070] 若所述一推文簇的文本向量编码与属于同一事件类别的另一推文簇的文本向量编码的距离小于预设的第三距离阈值,则将所述一推文簇与所述另一推文簇进行合并,并
根据合并后的推文簇中各推文数据的发布时间、位置信息和文本向量编码,更新合并后的
推文簇的时间、地址和文本向量编码。
[0071] 由于从不同角度进行讨论,所以可能存在原本对应同一事件的推文簇分开的情况,随着越来越多的推文数据加入到推文簇中,可以逐渐看出两个推文簇讨论的是同一件
事,因此,需要合并这两个推文簇成为新的推文簇,同时更新合并后的推文簇的时间、地址
与文本向量编码。
[0072] 在一个可选的实施例中,所述根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇之后,所述方法还
包括:
[0073] 若一推文簇的时间与当前时间的时间差超过预设的第二时间阈值,则将所述一推文簇设为历史簇。
[0074] 由于本地事件具有时效性,因此,当推文簇在一定时间内没有的新的推文数据加入,则认为该推文簇的生命周期结束,该推文簇会自动消亡变为历史簇,不再参与后续的聚
类判断。
[0075] 在一个可选的实施例中,所述分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件,包括:
[0076] 分别根据各推文簇中推文数据的总数量、评论总数、转发总数、总字数及其所属事件类别对应的分数,计算各推文簇的影响因子;
[0077] 分别生成各推文簇的事件摘要,所述事件摘要包括对应的推文簇中预设第一数量的推文数据的文本和预设第二数量的关键词;
[0078] 接收客户端发送的第一请求,所述第一请求包括事件类别;
[0079] 获取属于所述第一请求中的事件类别,且影响因子最高的N个推文簇,并将所述N个推文簇的事件摘要返回所述客户端,N为预设的自然数。
[0080] 由上述描述可知,用户可自定义所要查看的一个或多个事件类别,系统返回用户所要查看的事件类别中影响因子最高的N个推文簇的事件摘要,便于用户快速查看较为重
要的事件。
[0081] 在一个可选的实施例中,所述分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件,还包括:
[0082] 接收客户端发送的第二请求,所述第二请求包括关键词;
[0083] 匹配得到事件摘要中包含所述第二请求中的关键词的推文簇,并将匹配得到的推文簇的事件摘要返回所述客户端。
[0084] 由上述描述可知,用户还可自定义关键词来查询相关的本地事件。
[0085] 如图2所示,本发明还提供了一种本地事件检测装置,包括:
[0086] 第一获取模块201,用于实时获取预设地区的推文数据,所述预设地区的推文数据包括签到信息为预设地区的兴趣点的推文数据以及包含预设地区对应的关键字的推文数
据;
[0087] 分类模块202,用于通过预设的两级分类器,对各推文数据进行两级分类,得到各推文数据的一级标签和二级标签,所述一级标签用于表示推文数据是否存在潜在事件,所
述二级标签用于表示当存在潜在事件时推文数据所属的事件类别,并根据各推文数据的一
级标签和二级标签,获取属于同一事件类别的推文数据;
[0088] 第二获取模块203,用于分别获取属于同一事件类别的各推文数据的位置信息;
[0089] 聚类模块204,用于根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇;
[0090] 生成模块205,用于分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件,所述事件摘要包括对应的推文簇中预设第一数量的推文数据的文本和预设第二数量的
关键词。
[0091] 如图3所示,本发明还提供了一种电子设备,所述电子设备包括:
[0092] 一个或多个处理器301;
[0093] 存储装置302,用于存储一个或多个程序;
[0094] 当所述一个或多个程序被所述一个或多个处理器301执行,使得所述一个或多个处理器301实现如上所述的本地事件检测方法。
[0095] 本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的本地事件检测方法。
[0096] 实施例一
[0097] 请参照图4‑5,本发明的实施例一为:一种本地事件检测方法,该方法基于在线社交媒体实时信息流,可用于解决城市管理者实时监控查看城市事件以及城市居民实时关注
城市发展的问题。
[0098] 本实施例以通过微博平台检测深圳市的本地事件为例进行说明,如图4所示,本实施例的方法包括如下步骤:
[0099] S401:实时获取预设地区的推文数据,并对所述推文数据进行数据清洗;其中,所述预设地区的推文数据包括签到信息为预设地区的兴趣点的推文数据以及包含预设地区
对应的关键字的推文数据。
[0100] 具体地,通过在线社交媒体的开放平台中的API来实时获取平台上的公开推文信息流。根据API的种类不同,有多种获取公开推文的方式。
[0101] a)、通过检测整个深圳市的兴趣点(POI,约2万个不同的点),一旦有用户在发微博时带上了地理位置信息,即在兴趣点上面进行签到,即可使用对应的API获取到相应微博。
[0102] b)、通过设定一些触发词,如深圳+噪音,可以使用对应在线社交媒体的开放平台中的API中的搜索API来搜索含某关键词的推文。
[0103] 通过上述两种方式可以实时获取整个深圳市的微博推文。
[0104] 针对获取到的推文数据,可以使用正则化表达式做初步的文本清洗,如清除其中的URL链接,清除表情符号等。
[0105] S402:构建并训练两级分类器。
[0106] 具体地,首先,构建BERT文本分类器。
[0107] 在步骤S401所获取的大量推文数据中,包含大量无用的推文(如垃圾广告,用户胡言乱语等),因此,需要训练学习一个分类器来把这些推文数据快速分类成有潜在事件和无
潜在事件两类。本实施例中,采用BERT(Bidirectional Encoder Representations from 
Transformer)文本分类器,BERT是一种预训练模型,基于Transformer的双向编码器表征,
使用对中文已经预训练好的BERT模型可以很好的进行下游任务。
[0108] 然后,获取样本数据,并对所述样本数据进行标签标注,得到训练数据。
[0109] 在训练分类器之前,需要获取样本数据并标注,得到训练数据。其中,标注的标签包括一级标签和二级标签,本实施例中,一级标签的值为0或1,当一级标签为0时,表示不存
在潜在事件,当一级标签为1时,表示存在潜在事件。二级标签为多分类标签,包括预设的多
种事件类别,如火灾事件、溺水事件、噪音投诉事件、演唱会举办事件等;对一级标签为1的
推文数据再精确分类到各个事件类别中。对于不存在潜在事件的推文数据,其二级标签可
为空。
[0110] 最后,根据所述训练数据对所述BERT文本分类器进行训练,得到两级分类器,所述两级分类器包括一级分类器和二级分类器,所述一级分类器用于将推文数据分类为存在潜
在事件的推文数据以及不存在潜在事件的推文数据,所述二级分类器用于确定存在潜在事
件的推文数据所属的事件类别。
[0111] 根据上述训练数据,使用BERT预训练模型再在训练数据上微调的训练方式训练出来两个不同的分类器,第一个分类器用于判断推文数据是否存在潜在的本地事件,第二个
分类器再把第一个分类器中分类为存在潜在本地事件的推文数据分类到其所属的事件类
别中去。使用两级分类器可以将推文数据分类到具体的事件类别中,提升分类的精度,并且
便于后续对相同事件类别的推文数据进行聚类,减少后续聚类的复杂度。
[0112] 也就是说,第一个分类器是二分类,第二个分类器是多分类。
[0113] 进一步地,在训练过程中,使用交叉熵(Cross Entropy,CE)作为损失函数。
[0114] S403:通过训练好的两级分类器,对各推文数据进行两级分类,得到各推文数据的一级标签和二级标签,并根据各推文数据的一级标签和二级标签,获取属于同一事件类别
的推文数据。
[0115] 其中,一级标签用于表示推文数据是否存在潜在事件,二级标签用于表示当存在潜在事件时推文数据所属的事件类别。因此,可先根据各推文数据的一级标签,获取存在潜
在事件的推文数据,然后根据所述存在潜在事件的推文数据的二级标签,获取属于同一事
件类别的推文数据。
[0116] 训练好两级分类器后,将随时间流流入的推文数据输入到该两级分类器,得到推文数据的两级标签,如果推文数据的一级标签为0,则表示该推文数据不存在潜在的本地事
件,抛弃该推文数据;如果推文数据的一级标签为1,则表示该推文数据存在潜在的本地事
件,通过其二级标签确定该推文数据所属的事件类别。
[0117] 得到每个事件类别的推文数据后,后续分别在每个事件类别中进行聚类。
[0118] S404:分别获取各事件类别的推文数据的位置信息。
[0119] 具体地,若一推文数据包含签到信息,则获取签到信息中的兴趣点的位置信息,作为所述一推文数据的位置信息;若一推文数据不包含签到信息,则通过预设的命名体识别
模型,识别所述一推文数据的潜在地址,并通过地图,获取所述潜在地址的位置信息,作为
所述一推文数据的位置信息;若无潜在地址,则抛弃所述一推文数据。
[0120] 在对每个事件类别的推文数据进行聚类之前,需要记录每个推文数据的位置信息。因为本地事件是在确定城市中发生的事件,所以需要非常精确的地址位置,如街道门牌
号等。本实施例中,从推文数据中提取地址的方法包括下述两种方式:
[0121] a)、若用户在发推文时自带签到,由于签到信息是基于兴趣点(POI)的,所以可以视为用户在发推文时位于该兴趣点。而这些兴趣点都是有明确的经纬度信息,因此可以将
用户定位所处的兴趣点的经纬度作为该条微博的地址。
[0122] b)、若用户在发推文时没有带签到信息,则使用基于BERT预训练模型训练好的地址抽取命名体识别模型抽取文本中潜在的地址,并使用高德地理编码API将地址转化为经
纬度。如果命名体识别模型没能抽取出该推文文本中潜在的地址,则认为该推文文本不存
在任何有用的地址信息,抛弃该推文。
[0123] 其中,命名实体识别(Named Entity Recognition,NER)模型是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等,以及时间、数量、货币、比例数
值等文字。目前在NER上表现较好的模型都是基于深度学习或者是统计学习的方法的。
[0124] 用于命名体识别的每个训练样本由一句话及其对应的标注组成,标注集采用BIOES(B表示实体开头,E表示实体结尾,I表示在实体内部,O表示非实体),句子之间用一个
空行隔开。例如:
[0125] 美国的华莱士到访中国
[0126] B‑LOC E‑LOC O B‑PER I‑PER E‑PER O O B‑LOC E‑LOC
[0127] 由于本实施例只需要识别出地址信息,因此只需要集中关于地点的标注。
[0128] 由于检测本地事件需要精确的地址,多数用户所发的推文文本中的地址描述和新闻报道中的地址数据分布往往存在较大差异。社交媒体上会有很多的省略、简写等情况。所
以最优的选择是标注推文数据进行训练。
[0129] 此处的标注时将用于训练的推文数据中的每个词语都标上O、B‑LOC I‑LOC E‑LOC或B‑LOC I‑LOC E‑LOC,这三个标注记号分别表示这个地址段的开始、中间和结尾。
[0130] 本实施例中,在BERT模型输出后加上两层全连接层,使用交叉熵损失函数来进行训练,模型结构图如图5所示。
[0131] S405:根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的推文数据进行聚类,得到属于同一事件类别的推文簇。
[0132] 首先,分别根据各推文数据的文本,生成各推文数据的文本向量编码。
[0133] 通过上述地址获取操作后,所有保留下来的推文数据都有了位置信息(经纬度)。此时,每条推文数据可以使用三要素(文本、发布时间和位置信息)来描述。其中,将推文数
据的文本转换成向量形式,生成文本向量编码,即使用一组一维向量来表示一条推文文本
的语义信息。
[0134] 然后根据推文数据的文本向量编码、发布时间和位置信息,分别对各事件类别中的推文数据进行聚类,得到属于同一事件类别的推文簇。本实施例中,对于推文簇有如下要
求:推文簇的时间在距离当前时间24小时内,推文簇中的所有推文的定位距离范围在2公里
以内。
[0135] 因此,本步骤具体包括如下步骤:
[0136] S4051:根据推文数据的发布时间,依序获取属于同一事件类别的推文数据中的一推文数据,作为当前推文数据;
[0137] S4052:判断当前推文数据是否为第一个推文数据,若是,则执行步骤S4053,若否,则执行步骤S4054。
[0138] S4053:建立推文簇,将当前推文数据加入所述推文簇,并根据当前推文数据的发布时间、位置信息和文本向量编码,设置所述推文簇的时间、地址和文本向量编码。
[0139] 此时建立的是第一个推文簇,即第一条推文数据自动成为第一个推文簇。
[0140] 推文簇的时间定义为簇中离当前时间最近的一条推文数据的发布时间,即簇中所有推文数据的最新发布时间;推文簇的地址定义为簇中所有推文数据的位置信息在地图上
的中心点,即经纬度的平均值;簇的文本向量编码定义为簇中所有推文数据的文本向量编
码的平均值。
[0141] 由于此时推文簇中只有一个推文数据,因此,将所述推文簇的时间设为当前推文数据的发布时间,将所述推文簇的地址设为当前推文数据的位置信息,将所述推文簇的文
本向量编码设为当前推文数据的文本向量编码。后续有其他推文数据加入该推文簇后,再
更新推文簇的时间、地址和文本向量编码。
[0142] 然后继续获取属于同一事件类别的下一推文数据,即执行步骤S4051。
[0143] S4054:判断是否存在一推文簇,当前推文数据与所述一推文簇的距离小于或等于预设的第一距离阈值,当前推文数据的发布时间与所述一推文簇的时间的时间差小于预设
的第一时间阈值,且当前推文数据的文本向量编码与所述一推文簇的文本向量编码之间的
距离小于预设的第二距离阈值,若是,则执行步骤S4055,若否,则执行步骤S4056。
[0144] 优选地,本实施例中,第一距离阈值为2km,第一时间阈值为24h。
[0145] 也就是说,如果同时满足以下三个条件:
[0146] 1、推文数据的位置信息(经纬度)与推文簇的地址之间的距离不超过2km;
[0147] 2、推文数据的发表时间与推文簇的时间之间的时间差小于24小时;
[0148] 3、推文数据的文本向量编码与推文簇的文本向量编码之间的距离小于第二距离阈值;本实施例中,由于文本向量编码的长度为512,在高维距离上,欧式距离的作用不大,
因此采用余弦相似度计算文本向量编码之间的距离;
[0149] 则认为该推文数据属于该推文簇,将该推文数据加入该推文簇中。
[0150] 如果当前推文数据与任何一个已有的推文簇均不能同时满足上述三个条件,则认为当前推文数据不属于任何一个已有的推文簇,将为当前推文数据新建一个推文簇。
[0151] S4055:将当前推文数据加入所述一推文簇,并根据所述一推文簇中各推文数据的发布时间、位置信息和文本向量编码,更新所述一推文簇的时间、地址和文本向量编码。
[0152] 具体地,根据所述一推文簇中各推文数据的发布时间,获取最新发布时间,并根据所述最新发布时间,更新所述一推文簇的时间;
[0153] 根据所述一推文簇中各推文数据的位置信息,计算中心点,并根据所述中心点的位置信息,更新所述一推文簇的地址;
[0154] 计算所述一推文簇中各推文数据的文本向量编码的平均值,并根据所述平均值,更新所述一推文簇的文本向量编码。
[0155] 然后继续获取属于同一事件类别的下一推文数据,即执行步骤S4051。
[0156] S4056:建立新的推文簇,将当前推文数据加入所述新的推文簇,并根据当前推文数据的发布时间、位置信息和文本向量编码,设置所述新的推文簇的时间、地址和文本向量
编码。该步骤可参照步骤S4053。
[0157] 然后继续获取属于同一事件类别的下一推文数据,即执行步骤S4051。
[0158] 进一步地,由于本地事件具有时效性,因此,若一推文簇的时间与当前时间的时间差超过预设的第二时间阈值,则将所述一推文簇设为历史簇。本实施例中,第二时间阈值为
24h。
[0159] 也就是说,当推文簇在24小时内没有的新的推文数据加入,则认为该推文簇的生命周期结束,该推文簇会自动消亡变为历史簇,不再参与后续的聚类判断。但是如果用户想
查看历史本地事件,还是可以进行检索与查看。
[0160] 同时,由步骤S4055可知,新的推文数据加入推文簇时,该推文簇的文本向量编码会更新,此时,还会计算其与属于同一事件类别的其他推文簇的文本向量编码之间的距离,
如果距离小于预设的阈值,则认为两个推文簇讨论的是同一个事件。由于从不同角度进行
讨论,所以使得最开始两个推文簇是分开的,随着越来越多的帖子加入其中,可逐渐显现出
两个推文簇讨论的是同一件事,需要合并这两个推文簇成为新的推文簇,同时更新新的推
文簇的时间、地址与文本向量编码。
[0161] 具体地,在步骤S4055之后,还包括:分别计算所述一推文簇的文本向量编码与属于同一事件类别的其他推文簇的文本向量编码的距离;若所述一推文簇的文本向量编码与
属于同一事件类别的另一推文簇的文本向量编码的距离小于预设的第三距离阈值,则将所
述一推文簇与所述另一推文簇进行合并,并根据合并后的推文簇中各推文数据的发布时
间、位置信息和文本向量编码,更新合并后的推文簇的时间、地址和文本向量编码。
[0162] S406:分别根据各推文簇中推文数据的总数量、评论总数、转发总数、总字数及其所属事件类别对应的分数,计算各推文簇的影响因子。
[0163] 即为每个簇计算影响因子,以判断推文簇的重要性。具体地,根据下述公式进行计算:
[0164] Score=a1×Nall+a2×Ncomments+a3×Nforward+a4×Nwords+a5×Nclass
[0165] 其中,Nall表示推文簇中的推文数据的总数量,Ncomments表示推文簇中的所有推文数据的评论总数,Nforward表示推文簇中的所有推文数据的转发总数,Nwords表示推文
簇中的所有推文数据的文本的总字数,Nclass表示推文簇所属事件类别对应的分数,该分
数为预设的,根据事件类别的重要性而定,例如,恶性车祸、持刀伤人等类别的事件固定分
数会高;a1、a2、a3、a4、a5分别为预设的权重系数,可以根据不同需求而定。
[0166] S407:分别生成各推文簇的事件摘要,所述事件摘要包括对应的推文簇中预设第一数量的推文数据的文本和预设第二数量的关键词。
[0167] 每个推文簇都表示一个本地事件,对于一个本地事件,本实施例中,使用5条推文数据和10个关键词来共同表示。当推文簇中的推文数据的数量少于5条时,则将所有推文数
据都加入到推文簇的事件摘要中。当推文簇中的推文数据的数量多于5条时,则使用
Textrank算法,在推文簇内所有推文数据的文本组成的文本集合中抽取中最关键的5句话,
加入到推文簇的事件摘要中。使用TextRank算法在所有推文簇内所有推文数据的文本组成
文本集合中抽取10个词作为该推文簇所代表事件的关键词。
[0168] TextRank将文本中的语法单元视作图中的节点,如果两个语法单元存在一定语法关系(例如共现),则这两个语法单元在图中就会有一条边相互连接,通过一定的迭代次数,
最终不同的节点会有不同的权重,权重高的语法单元可以作为关键词。同理,这里的语法单
元可以视为单个的句子,那么TextRank算法抽取出来的就是关键句,组合关键句后可以形
成文本摘要。同时TextRank算法可以脱离语料库的背景,仅对单篇文档进行分析,这有利于
实时对推文簇进行处理。
[0169] 步骤S406和S407可不分先后执行。
[0170] S408:根据用户需求返回相关的推文簇的事件摘要,即返回相关的本地事件。
[0171] 具体地,接收客户端发送的第一请求,所述第一请求包括事件类别;获取属于所述第一请求中的事件类别,且影响因子最高的N个推文簇,并将所述N个推文簇的事件摘要返
回所述客户端。或者,接收客户端发送的第二请求,所述第二请求包括关键词;匹配得到事
件摘要中包含所述第二请求中的关键词的推文簇,并将匹配得到的推文簇的事件摘要返回
所述客户端。
[0172] 在实际使用中,如果用户要在某时刻查看此时的城市中所有事件类别中的本地事件排行榜前N名,则在所有的推文簇中筛选出影响因子最高的N个推文簇,返回这N个推文簇
的事件摘要。
[0173] 如果用户只想看某一事件类别的前N个事件,则根据推文簇的影响因子,对属于该事件类别的推文簇从大到小进行排序,返回排名靠前的N个推文簇的事件摘要。
[0174] 用户同时也可以自定义查看的事件类别或者关键词来返回所需事件。如果用户是自定义事件类别查询,则在所定义的几个事件类别中进行推文簇间的影响因子排序,返回
排名靠前的N个推文簇的事件摘要。如果用户是自定义关键词查询,则用自定义的关键词在
所有推文簇的事件摘要中进行匹配,若推文簇的事件摘要中包含该自定义的关键词,则返
回该推文簇的事件摘要。
[0175] 本实施例中,采用BERT预训练模型加数据集微调的方式训练两级分类器,可以很好地去除与事件无关的推文,减少了大量无用的推文参与到后续的聚类过程,并且对每个
事件类别中的推文数据分别再进行聚类,再次降低了整体流程的复杂度,使得整个系统的
运行变得更加快速准确。
[0176] 本实施例可实现基于在线社交媒体推文实时数据的本地事件检测,城市管理者或者市民可以实时获取并查看最近的本地事件,并可根据自己的兴趣或者目的查看仅关于某
一类别或某几类别的事件,也可以自定义关键词进行事件的检索与查看。
[0177] 实施例二
[0178] 请参照图2,本发明的实施例二为:一种本地事件检测装置,可执行本发明实施例一所提供的本地事件检测方法,具备执行方法相应的功能模块和有益效果。该装置可以由
软件/或硬件实现,具体包括:
[0179] 第一获取模块201,用于实时获取预设地区的推文数据,所述预设地区的推文数据包括签到信息为预设地区的兴趣点的推文数据以及包含预设地区对应的关键字的推文数
据;
[0180] 分类模块202,用于通过预设的两级分类器,对各推文数据进行两级分类,得到各推文数据的一级标签和二级标签,所述一级标签用于表示推文数据是否存在潜在事件,所
述二级标签用于表示当存在潜在事件时推文数据所属的事件类别,并根据各推文数据的一
级标签和二级标签,获取属于同一事件类别的推文数据;
[0181] 第二获取模块203,用于分别获取属于同一事件类别的各推文数据的位置信息;
[0182] 聚类模块204,用于根据推文数据的文本、发布时间和位置信息,对属于同一事件类别的各推文数据进行聚类,得到属于同一事件类别的推文簇;
[0183] 生成模块205,用于分别生成各推文簇的事件摘要,作为各推文簇对应的本地事件,所述事件摘要包括对应的推文簇中预设第一数量的推文数据的文本和预设第二数量的
关键词。
[0184] 在一个可选的实施方式中,所述本地事件检测装置还包括:
[0185] 构建模块,用于构建BERT文本分类器;
[0186] 标注模块,用于获取样本数据,并对所述样本数据进行标签标注,得到训练数据,所述标签包括一级标签和二级标签,所述一级标签的值为表示不存在潜在事件的第一值或
表示存在潜在事件的第二值,所述二级标签的值为预设的事件类别;
[0187] 训练模块,用于根据所述训练数据对所述BERT文本分类器进行训练,得到两级分类器,所述两级分类器包括一级分类器和二级分类器,所述一级分类器用于将推文数据分
类为存在潜在事件的推文数据以及不存在潜在事件的推文数据,所述二级分类器用于确定
存在潜在事件的推文数据所属的事件类别。
[0188] 在一个可选的实施方式中,所述第二获取模块包括:
[0189] 第一获取单元,用于若一推文数据包含签到信息,则获取签到信息中的兴趣点的位置信息,作为所述一推文数据的位置信息;
[0190] 第二获取单元,用于若一推文数据不包含签到信息,则通过预设的命名体识别模型,识别所述一推文数据的潜在地址,并通过地图,获取所述潜在地址的位置信息,作为所
述一推文数据的位置信息。
[0191] 在一个可选的实施方式中,所述聚类模块包括:
[0192] 第一生成单元,用于分别根据各推文数据的文本,生成各推文数据的文本向量编码;
[0193] 第三获取单元,用于根据推文数据的发布时间,依序获取属于同一事件类别的推文数据中的一推文数据,作为当前推文数据;
[0194] 第一判断单元,用于判断当前推文数据是否为第一个推文数据;
[0195] 第一建立单元,用于若是,则建立推文簇,将当前推文数据加入所述推文簇,并根据当前推文数据的发布时间、位置信息和文本向量编码,设置所述推文簇的时间、地址和文
本向量编码;
[0196] 第二判断单元,用于若否,则判断是否存在一推文簇,当前推文数据与所述一推文簇的距离小于或等于预设的第一距离阈值,当前推文数据的发布时间与所述一推文簇的时
间的时间差小于预设的第一时间阈值,且当前推文数据的文本向量编码与所述一推文簇的
文本向量编码之间的距离小于预设的第二距离阈值;
[0197] 更新单元,用于若存在,则将当前推文数据加入所述一推文簇,并根据所述一推文簇中各推文数据的发布时间、位置信息和文本向量编码,更新所述一推文簇的时间、地址和
文本向量编码;
[0198] 第二建立单元,用于若不存在,则建立新的推文簇,将当前推文数据加入所述新的推文簇,并根据当前推文数据的发布时间、位置信息和文本向量编码,设置所述新的推文簇
的时间、地址和文本向量编码。
[0199] 在一个可选的实施方式中,所述更新单元包括:
[0200] 第一更新子单元,用于根据所述一推文簇中各推文数据的发布时间,获取最新发布时间,并根据所述最新发布时间,更新所述一推文簇的时间;
[0201] 第二更新子单元,用于根据所述一推文簇中各推文数据的位置信息,计算中心点,并根据所述中心点的位置信息,更新所述一推文簇的地址;
[0202] 第三更新子单元,用于计算所述一推文簇中各推文数据的文本向量编码的平均值,并根据所述平均值,更新所述一推文簇的文本向量编码。
[0203] 在一个可选的实施方式中,所述聚类模块还包括:
[0204] 计算单元,用于分别计算所述一推文簇的文本向量编码与属于同一事件类别的其他推文簇的文本向量编码的距离;
[0205] 合并单元,用于若所述一推文簇的文本向量编码与属于同一事件类别的另一推文簇的文本向量编码的距离小于预设的第三距离阈值,则将所述一推文簇与所述另一推文簇
进行合并,并根据合并后的推文簇中各推文数据的发布时间、位置信息和文本向量编码,更
新合并后的推文簇的时间、地址和文本向量编码。
[0206] 在一个可选的实施方式中,还包括:
[0207] 消亡模块,用于若一推文簇的时间与当前时间的时间差超过预设的第二时间阈值,则将所述一推文簇设为历史簇。
[0208] 在一个可选的实施方式中,所述生成模块包括:
[0209] 第二计算单元,用于分别根据各推文簇中推文数据的总数量、评论总数、转发总数、总字数及其所属事件类别对应的分数,计算各推文簇的影响因子;
[0210] 第二生成单元,用于分别生成各推文簇的事件摘要,所述事件摘要包括对应的推文簇中预设第一数量的推文数据的文本和预设第二数量的关键词;
[0211] 第一接收单元,用于接收客户端发送的第一请求,所述第一请求包括事件类别;
[0212] 第一返回单元,用于获取属于所述第一请求中的事件类别,且影响因子最高的N个推文簇,并将所述N个推文簇的事件摘要返回所述客户端,N为预设的自然数。
[0213] 在一个可选的实施方式中,所述生成模块还包括:
[0214] 第二接收单元,用于接收客户端发送的第二请求,所述第二请求包括关键词;
[0215] 第二返回单元,用于匹配得到事件摘要中包含所述第二请求中的关键词的推文簇,并将匹配得到的推文簇的事件摘要返回所述客户端。
[0216] 实施例三
[0217] 请参照图3,本发明的实施例三为:一种电子设备,所述电子设备包括:
[0218] 一个或多个处理器301;
[0219] 存储装置302,用于存储一个或多个程序;
[0220] 当所述一个或多个程序被所述一个或多个处理器301执行,使得所述一个或多个处理器301实现如上所述的本地事件检测方法实施例中的各个过程,且能达到相同的技术
效果,为避免重复,这里不再赘述。
[0221] 实施例四
[0222] 本发明的实施例四提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的本地事件检测方法实施例中的各个过程,且
能达到相同的技术效果,为避免重复,这里不再赘述。
[0223] 综上所述,本发明提供的一种本地事件检测方法、装置、设备和存储介质,先通过两级分类器将推文数据进行分类,再对属于同一事件类别的推文数据进行聚类,可以把无
意义的推文筛选扔掉,且每条推文数据只需要与同一事件类别的推文簇计算相似度,判断
是否属于某个本地事件的推文簇,从而大大降低了计算次数,大幅减少了所需的计算资源,
加快了处理速度,提高了实时性感知的可靠性。并且,聚类过程中,根据时间、文本和位置信
息三个要素进行聚类,可保证每一条加入推文簇的推文数据都是与推文簇属于同一本地事
件的,从而保证最后输出的每个推文簇所表示的事件都可以与现实世界对应。本发明可实
现基于在线社交媒体推文实时数据的本地事件检测,城市管理者或者市民可以实时获取并
查看最近的本地事件。
[0224] 通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更
佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的
部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质
中,如计算机的软盘、只读存储器(Read‑Only  Memory,ROM)、随机存取存储器
(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计
算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方
法。
[0225] 值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单
元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0226] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括
在本发明的专利保护范围内。