CN103198146A - 面向网络流式数据的事件实时过滤方法和系统 - Google Patents
面向网络流式数据的事件实时过滤方法和系统 Download PDFInfo
- Publication number
- CN103198146A CN103198146A CN2013101368961A CN201310136896A CN103198146A CN 103198146 A CN103198146 A CN 103198146A CN 2013101368961 A CN2013101368961 A CN 2013101368961A CN 201310136896 A CN201310136896 A CN 201310136896A CN 103198146 A CN103198146 A CN 103198146A
- Authority
- CN
- China
- Prior art keywords
- document
- trie tree
- event
- rule
- overall
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种面向网络流式数据的事件实时过滤方法,该方法响应于加载事件规则的请求来加载事件规则,并根据所加载的事件规则对网络流式数据进行过滤。该方法采用事件触发方式去更换过滤文本所使用的事件规则,可以适应各种业务类型。而且采用多通道方式进行文档过滤,使得不同的文本数据可以共享事件规则。既可以适应不同的文本数据,又可以提高系统的处理效率。
Description
技术领域
本发明涉及信息检索和过滤,尤其涉及从网络流式数据中实时过滤事件的方法。
背景技术
目前互联网产生的用户信息数量巨大,论坛、博客、新闻以及社会媒体等信息内容无处不在,尤其像微博这样的信息,更新速度快,实时性强,这些信息源源不断的产生形成一种流式数据。国际知名微博Twitter的工程副总裁迈克尔·雅培(Michael Abbott)于2011年9月28日接受采访时透露,最近Twitter每天平均产生2.3亿条消息。国内新浪2012年2月29日的统计数据显示新浪微博注册用户突破3亿大关,用户每日发博量超过1亿条。社会媒体迅速、即时,给人们的生活带来便利的同时,也因其产生的速度远远地超越了人们的利用效率,使得人们从中难以及时地获取有效的信息。
这种流式数据也可以被称为网络流式数据,是指按照时间顺序无限增加的数据观测值向量所组成的数据序列,也可以将流式数据看成历史数据和不断增加的更新数据的并集。网络流式数据中事件的主题内容包括了现实社会中政治、经济、军事、金融、生活、娱乐等方方面面。因此,对于大量流式数据的实时处理跟踪或过滤出其中的事件成为研究的热点。
例如,2008年的美国总统大选,上演了一场史无前例地利用社会媒体YouTube和Facebook进行筹集资金,向选民传递候选者的信息和说词的案例。麻省理工的研究者随后通过挖掘博客的流式数据,来展示参选人的支持度与其赢得的选票数目具有吻合的走势(可参见参考文献1,P.Gloor,J.Krauss,S.Nann,K.Fischbach,and D.Schoder,“Web Science2.0:Identifying Trends through SemanticSocial Network Analysis”,Computational Science and Engineering International Conference,第4卷,第215-222页,2009年8月)。A.Tumasjan等人对Twitter上的流式数据进行研究,以德国联邦选举事件为案例,发现Twitter上的内容可以作为一个政治观点的有效指示器,合理地反映了当前离线的政治情感(可参见参考文献2,A.Tumasjan,T.O.Sprenger,P.G.Sandner,I.M.Welpe.Predicting Elections with Twitter:What140Characters Reveal about Political Sentiment.In Fourth International AAAI Conference on Weblogs andSocial Media,2010)。参考文献3(T.Sakaki,M.Okazaki,and Y.Matsuo.EarthquakeShakes Twitter Users:Real-time Event Detection by Social Sensors.Proceedings of WWW2010:the International World Wide Web Conference,pp.851-860,2010)利用Twitter流式数据的时效性,来监测特定的事件——地震,并利用时空信息发现震心。参考文献4(Asur,S.and Huberman,B.,"Predicting the Future With Social Media,"Arxivpreprint arXiv:1003.5699,2010.)通过对Twitter信息中的某部电影的相关讨论或事件进行挖掘建立模型来预测票房。
但是,目前的这类对互联网中的大量的文本流式数据进行事件实时过滤的系统大多功能都比较专一,通用性差,对业务变更适应性差。例如,现有的过滤系统针对特定领域中的特定文本数据而设计,而各个领域的文本格式不同,过滤所使用的规则也不同(实际上过滤系统就是使用某种规则去筛选出所需的文本),因此这些过滤系统的复用性差,对业务变更适应性差。对于不同领域的文本数据,需要分别开发不同的过滤系统,难以满足用户多样的需求,而且还浪费人力和资源等等。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种通用的事件实时过滤方法,从互联网中的大量的文本流式数据中实时监控和过滤事件。
本发明的目的是通过以下技术方案实现的:
一方面,本发明提供了一种面向网络流式数据的事件实时过滤方法,包括:步骤1)响应于加载事件规则的请求来加载事件规则,所述事件规则包括过滤规则列表和信息源范围;步骤2)根据所加载的事件规则对网络流式数据进行过滤。
上述方法中,所述步骤1)可包括:步骤11)响应于加载事件规则的请求读取相应的事件规则;步骤12)根据从所述事件规则中提取的所有关键词构建trie树;
所述步骤2)可包括:步骤2-1)基于所构建的trie树对网络流式数据进行过滤,获取包含所述关键词的文档;步骤2-2)基于所述过滤规则列表从包含所述关键词的文档中提取出符合全部过滤规则的文档;步骤2-3)从所述符合全部过滤规则的文档中提取符合所述信息源范围的文档。
上述方法中,所述步骤2)还可包括:
步骤2-4)对经步骤2-3)得到的符合所述信息源范围的文档进行打分的步骤,每个文档的分值weight以如下方式计算:
其中e是自然常数,n是该文档中包含的关键词的总数,i代表是该文档中包含的第i个关键词的序号,xi是该第i个关键词在该文档中的命中次数,wi是该第i个关键词的权重。
上述方法中,所述步骤1)可包括:
(1)接收加载事件规则的请求;
(2)判断目前是否存在正在被用于建Trie树的事件规则;
(3)如果存在,则备份事件规则,如果之前有已经备份的事件规则,则覆盖;如果不存在直接建立并保存临时Trie树;
(4)判断全局Trie树是否存在并且被使用;如果不存在或者没有被使用则使用该新建的临时Trie树来更新全局Trie树;否则等待全局Trie树使用完毕之后再更新全局Trie树;
(5)判断是否有备份的事件规则,如果有,则返回(2)继续执行,如果没有,则结束。
上述方法中,所述步骤2)可包括:
步骤b1,读取一组文档并将其封装成文本序列;
步骤b2:判断Trie树是否建立完毕,如果全局Trie树已经建好则进行下一步,否则等待一秒;
步骤b3:利用全局Trie树对所组织的文本序列进行关键词匹配;
步骤b4:基于该所加载的事件规则中的过滤规则对步骤b3扫描全局trie树得到的匹配结果进行解析,以得到符合过滤规则列表中所有过滤规则的文档;
步骤b5:过滤掉不在事件规则要求的信息源范围之中的文档;
步骤b6:输出并保存过滤结果,并返回步骤b1。
另一方面,本发明提供了一种面向网络流式数据的事件实时过滤系统,包括:事件规则加载装置,用于响应于加载事件规则的请求来加载事件规则,所述事件规则包括过滤规则列表和信息源范围;
过滤装置,用于根据所加载的事件规则对网络流式数据进行过滤。
上述系统中,所述事件规则加载装置可以被配置为执行:
(1)接收加载事件规则的请求;
(2)判断目前是否存在正在被用于建Trie树的事件规则;
(3)如果存在,则备份事件规则,如果之前有已经备份的事件规则,则覆盖;如果不存在直接建立并保存临时Trie树;
(4)判断全局Trie树是否存在并且被使用;如果不存在或者没有被使用则使用该新建的临时Trie树来更新全局Trie树;否则等待全局Trie树使用完毕之后再更新全局Trie树;
(5)判断是否有备份的事件规则,如果有,则返回(2)继续执行,如果没有,则结束。
上述系统中,所述过滤装置可以被配置为执行:
步骤b1,读取一组文档并将其封装成文本序列;
步骤b2:判断Trie树是否建立完毕,如果全局Trie树已经建好则进行下一步,否则等待一秒;
步骤b3:利用全局Trie树对所组织的文本序列进行关键词匹配;
步骤b4:基于该所加载的事件规则中的过滤规则对步骤b3扫描全局trie树得到的匹配结果进行解析,以得到符合过滤规则列表中所有过滤规则的文档;
步骤b5:过滤掉不在事件规则要求的信息源范围之中的文档;
步骤b6:输出并保存过滤结果,并返回步骤b1。
上述系统中,所述过滤装置可通过不同的线程去分别过滤来自不同通道的文档数据,所有通道共享该全局trie树,每个通道的文档数据为相同种类的数据或不同种类的数据。
与现有技术相比,本发明的优点在于:
提供了针对网络流式数据较为通用的文本过滤框架模型,可以根据不同规则对不同种类文本的实时过滤,在保证系统正常运行的情况下对处理算法进行热切换,也就是说,即使输入和输出接口内容的变动,依然可保证系统的正常运行,这极大的提高了过滤系统的灵活性和可用性,使该过滤系统对于不同的业务具有较强的适应性。
而且该系统采用了批量多模式匹配的处理算法,使得处理效率大大提升;对于不同的通道可以共享全局trie树,通过阻塞方式进行高效、安全的匹配,而且极大的节约了内存;另外系统可以部署在分布式的集群上,可以对整个系统进行横向的扩展,增强了其并行的处理能力。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为根据本发明实施例的规则文法示意图;
图2为根据本发明实施例的面向网络流式数据的事件实时过滤系统的结构示意图;
图3为根据本发明实施例的事件实时过滤系统的操作流程示意图;
图4为根据本发明实施例的加载事件规则的流程示意图;
图5为根据本发明实施例的基于所加载的事件规则对文档进行过滤的流程示意图;
图6为根据本发明实施例的文档过滤过程的状态转移示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的一个实施例中,提供了一种面向网络流式数据的事件实时过滤方法。如上文所提到的网络流式数据按照时间顺序无限增加的数据序列,包括按时间顺序产生的一系列的流式的结构化文档例如微博、网页等等。为叙述方便,也可以将要过滤的网络流式数据称为“文档”。该方法包括:步骤1)响应于加载事件规则的请求来加载事件规则,所述事件规则包括过滤规则列表和信息源范围;步骤2)根据所加载的事件规则对网络流式数据进行过滤。
更具体地,在步骤1)响应于加载事件规则的请求来加载事件规则。例如,可以实时监听来自用户或其他客户端程序的加载事件规则的请求,当收到加载事件规则的请求时,加载相应的事件规则。加载事件规则主要包含以下步骤:
步骤11:读取相应事件规则;
其中,每条事件规则可包括过滤规则列表、信息源范围和/或词集变量;每条事件规则可采用如图1所示例的规则文法:
(1)规则以行为单位,即一条规则(rule)末尾以换行符’\n’结束;
(2)子规则与子规则的命中集合使用“或”运算;
(3)若规则存在多条子规则,那么一旦存在对域title或域body的限定,那么所有的子规则都应该加上域限定,而不能采用省略用法text;其中,域title表示标题域,body表示正文域,text表示全文域,包括标题和正文域;
(4)一条规则包含一条或多条因素(factor),因素(factor)之间通过规则运算符连接,它们是:“”、“|”、“-”分别表示集合的“与”、“或”、“否”运算,因素(factor)的运算符决定它本身对应命中集合和其他命中集合的运算关系;
(5)一个因素(factor)由“域”和词条(term)组成:域term;也可以不对域进行限制直接由词条(term)组成:term;
(6)一个词条(term)可以包含如下若干单元,规则(rule):(rule)、变量(var):{var}、字符串:“string”、数字:num、词:word;
(7)上述词条(term)中每个单元都可以使用“”、“|”、“-”符号连接,意义和集合运算相同;
(8)上述规则(rule)为上文所介绍规则,在term中引用时需要用括号引用起来;
(9)上述变量(var)定义方式为:var=(N个词以逻辑运算符连接),var是一些词(word)以上述逻辑符号连接起来的表达式,在term中引用方式为{var};
(10)上述字符串(“string”)定义方式为:“N个字符”,引号中的词被看作是一个整体,该方式多用来定义英文短语;
(11)上述数字(num)定义方式为:数字;
(12)上述词(word)定义方式为:一个词;
下面所给出的是根据上述规则文法定义的一个事件规则的示例:
wordset: //词集变量
262=(住房|建房)
rulelist: //过滤规则列表
text({262})-text(公积金|买房);
text(公租房)text(回龙观|昌平区);
boardid: //信息源范围
媒体;网站;
其中,wordset:中声明了词集变量,262就是个变量,{262}直接替换为“住房|建房”;boardid代表了信息源范围,代表找出信息源为媒体或者网站的文档;rulelist中包含了两条规则,以分号隔开。所示例的两条过滤规则等价于:text(住房|建房)-text(公积金|买房);text(公租房)text(回龙观昌平);所示例的事件规则的具体含义是:在流式文本数据中找到两个集合(一条规则代表一个文档集合),一个是text域中包含“住房”或“建房”的文本中去掉包含“公积金”或“买房”的文本。另一个是text域中包含“回龙观”且含有“昌平”的文本再加上包含“公租房”的文本。上述事件规则中的词“住房”、“建房”、“公积金”、“买房”、“回龙观”、“昌平”、“公租房”也可以理解为是进行过滤或查询的关键词。从该示例可以看出所述过滤规则列表中的每个规则主要包括用于进行过滤关键词以及集合运算符。
应指出,上述所示例的规则文法和事件规则仅是举例说明而非对本发明进行任何限制。本领域技术人员可以根据实际环境或系统需求定义各种规则文法,并根据所定义的规则文法来定义相应的事件规则。
步骤12)根据从所述事件规则中提取的所有关键词构建trie树;
按照上述的规则文法,可以从所读取的事件规则中提取出所有的词(也可以称为关键词)。然后,根据所提取的所有关键词建立trie树,以便对文档进行的匹配。
在步骤2),根据所加载的事件规则对网络流式数据进行过滤。主要可包括以下步骤:
步骤2-1)基于所构建的trie树对网络流式数据进行过滤,得到包含所提取的关键词的文档;
步骤2-2)基于所述过滤规则列表从包含所提取的关键词的文档中提取出符合全部过滤规则的文档;
步骤2-3)从所述符合全部过滤规则的文档中提取符合所述信息源范围的文档。
下面以一个示例来对该方法进行说明。假设在步骤1所读取的事件规则的主要内容为:事件ID:r1918(每个事件都会有唯一的一个ID,每次加载一个事件规则就意味着发生一次事件,并且可利用这个事件规则对文本进行过滤),词集变量:地名=(阿根廷|阿拉伯);过滤规则列表:title(阿根廷|埃及)body(阿拉伯)title(阿胶|{地名});text(阿根廷阿拉伯人)-body(啊)。信息源范围:100,101,102。其中,为编程或实现方便,信息源可以编号来表示,指的是文档的出处、来源。例如这里的编号在数据库中为信息源设置的编号,例如100代表网页;101代表博客;102代表论坛。该事件规则有两条过滤规则,具体含义就是找出所有文档中包含“阿胶”或者“阿根廷”或者“埃及”或者“阿拉伯”的文档;以及找出同时包括“阿根廷”和“阿拉伯人”并且不包括“啊”的文档。
对于上述事件规则提取关键词集合为{啊,阿根廷,阿拉伯,埃及,阿胶,阿拉伯人}。基于该词集可构建trie树,例如,构建了双数组trie树,双数组trie树为trie树在内存中的一种具体实现方式。所构建的双数组Trie树结构可以用下面的表1来表示。双数组trie树实际上由两个整数数组构成,一个是base[],另一个是check[]。设数组下标为i,如果base,check均为0,表示该位置为空。如果base为负值,表示该状态为词语。Check表示该状态的前一状态。trie树主要用于存储关键词,以及对文档进行高效的多模式匹配。
表1
接着,在步骤2)基于所构建的trie树对网络流式数据进行过滤,从而获取包含所提取的这些关键词的文档。然后基于所述过滤规则列表从包含所提取的关键词的文档中提取出符合全部过滤规则的文档。例如,根据规则的运算法则对包含所提取的这些关键词的文档进行集合运算,筛选掉一些否规则中命中的文档和交运算所删除的文档。比如:“title(阿根廷|埃及)”代表了在文档标题中出现了“埃及”或者“阿根廷”;“text(阿根廷阿拉伯人)”则代表在文档中同时出现“阿根廷”和“阿拉伯”;“title(阿胶|{地名})”代表了在文档的标题中存在“阿胶”或者变量“地名”中的词,也就是“阿根廷”或“阿拉伯”;“-body(啊)”代表需要在结果中删除在正文出现“啊”的文档。最后,从所述符合全部过滤规则的文档中提取符合所述信息源范围的文档,不在该事件规则要求的信息源范围之中的文档将被过滤掉。
在又一个实施例中,该方法还包括步骤3)对经步骤2)过滤出的文档进行打分的步骤,以对所获得的各个文档的重要程度进行区别。例如可以通过如下公式来计算经过滤后获取的每个文档的分值weight:
其中e是自然常数,n是该文档中包含的关键词的总数,i代表是该文档中包含的第i个关键词的序号,xi是该第i个关键词在该文档中的命中次数,wi是该第i个关键词的权重(该权重可以通过配置文件设置或由用户指定),weight为该文档最终的打分。
应指出,对上述实施例中的步骤1)和步骤2)的执行次序没有特定的限制,例如步骤1)和步骤2)可以是并发执行的。步骤1)只要接收到加载事件规则的请求就可以加载相应的事件规则,而不必等待步骤2)以当前的事件规则进行过滤的过程完成后再加载。例如,步骤1)和步骤2)可以共享一颗全局trie树,在步骤1)可以基于所加载的事件规则构建的trie树存放在一个临时trie树中,在步骤2)当基于当前的全局trie树进行文档过滤完成后,以该临时trie树动态更新该全局trie树,然后继续进行过滤。
在本发明的又一个实施例中,还提供了一种面向网络流式数据的事件实时过滤系统。图2给出了根据本发明实施例的面向网络流式数据的事件实时过滤系统架构示意图。如图2所示,该系统包括事件规则加载装置和过滤装置。其中,事件规则加载装置用于响应于加载事件规则的请求来加载事件规则;过滤装置用于根据所加载的事件规则对网络流式数据进行过滤。当用户或客户端程序由于应用环境、文档数据类型或业务需求的不同,而需要更新过滤条件或方式时,可以向事件规则加载装置发送加载事件规则的请求。事件规则加载装置通过轮询监测程序来监听加载事件规则的请求,当接收到该请求时触发事件规则加载接口来读取相应的事件规则,并根据从该事件规则中提取的所有关键词构建trie树。过滤装置可基于所构建的trie树从网络流式数据过滤出包含所提取的关键词的文档,接着从经该trie树匹配的结果中提取出符合该事件规则的过滤规则的文档并从中排除不符合信息源范围的文档。
下面将结合附图对该系统的整体工作流程以及各装置的具体执行过程进行更详细的介绍。
图3为根据本发明实施例的面向网络流式数据的事件实时过滤系统的执行流程示意图。如图3所示,该系统主要包括两个并发的处理过程:事件规则加载过程和文档过滤过程。事件规则加载过程响应于加载事件规则请求,基于业务需求加载不同的事件规则。文档过滤过程指的是根据所加载的事件规则对文档进行事件实时过滤。另外,该系统还可以启动心跳服务功能,文档过滤过程会不断发送脉冲信号,事件规则加载过程可以根据这个信号判断文档过滤过程(或执行文档过滤的节点)是否正常运行,如果发生故障而被意外停止,可以及时记录日志并且将过滤过程或过滤节点重启,以保证整个系统在分布式的环境下正常运行。
图4给出了根据本发明一个实施例的加载事件规则的流程图。该系统可以基于业务需求加载不同的事件规则。如图4所示,系统启动事件侦听服务,当收到来自用户的加载事件规则请求时,该系统就会产生一个线程来加载相应的事件规则,主要执行以下步骤:
(1)接收加载事件规则的请求;
(2)判断目前是否存在正在被用于建临时Trie树的事件规则;
(3)如果存在,则备份事件规则;若备份事件规则时已经存在事件规则备份,则直接覆盖当前备份,仅保留当前最新事件规则;如果不存在直接创建并保存临时Trie树;
(4)判断全局Trie树是否存在并且被过滤文档的线程加锁;如果不存在或者没有过滤文档的线程加锁则使用该新建的临时Trie树来更新全局Trie树;否则等待全局Trie树锁被释放之后再更新全局Trie树;
(5)判断是否有备份的事件规则。如果有,则继续步骤2,如果没有,该过程结束。
上述步骤(3)中创建并保存临时Trie树的过程如下:
(3.1)创建Trie树;
(3.2)对当前临时Trie树指针加锁;
(3.3)当前临时Trie树指针释放Trie树,指向并绑定新创建的Trie树,更新指针绑定的时间戳;
(3.4)释放当前临时Trie树指针的锁,本过程结束;
上述步骤(4)中更新全局Trie树过程如下:
(4.1)判断全局Trie树(当前过滤文档的线程所使用的Trie树)时间戳是否比临时Trie树的时间戳更早;
(4.2)如果全局Trie树时间戳更早,则对临时Trie树指针加锁;否则本过程结束;
(4.3)释放全局Trie树,全局Trie树指针指向临时Trie树并绑定,
更新全局Trie树指针绑定时间戳;
(4.4)释放当前临时Trie树指针的锁,本过程结束;
图5给出了根据本发明实施例的根据所加载的事件规则对网络流式数据进行过滤的流程示意图。该过滤过程主要包括以下步骤:
步骤b1:读取文档并将其封装成文本序列。
例如,可以根据系统的配置信息,读取一批文档,并将这些文档组装成一个文本序列。可以将成批的文档按照域的顺序以特殊字符(‘\n’)隔开,然后记录每个文档以及域的偏移量,从而将这些成批的文档进行封装一个文本序列。该文本序列是一个包含了该批文档的一个结构,包括了文本信息和每个文档的偏移量以及每个文档信息源范围信息。
步骤b2:判断Trie树是否建立完毕,如果全局Trie树已经建好则进
行下一步,否则等待一秒;
步骤b3:利用全局Trie树对所组织的文本序列进行关键词匹配。例如,获取组装好的文本序列,以全局trie树指针所指的trie树对该文本序列进行匹配,得出匹配结果。所述匹配结果包括命中词以及该词命中的位置和次数信息,进而该命中词所在的文档号以及在该文档中所处的位置信息。
步骤b4:规则解析;
根据规则文法,基于该所加载的事件规则中的过滤规则对上述扫描trie树得到的匹配结果进行解析,也就是根据规则的运算法对步骤b3得到的命中结果进行集合运算,从而得到符合过滤规则列表中所有过滤规则的文档。
步骤b5,信息源范围过滤。对上述经规则解析得到的结果进行信息源范围的过滤,以便过滤掉不在事件规则要求的信息源范围之中的文档。
步骤b6,采用上文提到的方法对文档进行打分。
步骤b7:输出并保存过滤结果。例如可以将输出结果按照文档和分数对应的方式输出到数据库或者文件。然后返回步骤b1。
在上文,主要是对该过滤系统的两个基本处理过程:事件规则加载和文档过滤过程进行了介绍。通过这两个过程实现对于不同种类文本信息的实时过滤,使得过滤系统对于不同的业务具有较强的适应性。为了提高系统的性能和处理效率,还可以从以下方面对上述的过滤系统进行改进。
在本发明的一个实施例中,采用了对trie树批量多模式匹配的方法来过滤文档,文档过滤过程采用一个全局双数组trie树,该过程通过不同的线程去分别处理不同通道的文档数据,该过程的所有通道共享该全局双数组trie树,每个通道的文档数据可以是相同种类的数据,也可以是不同种类的数据。更具体地,该过程包括:
步骤(I)为不同的通道开启相应的线程,每个线程的处理过程与上述的文档过滤过程基本类似。每个线程的文档处理过程包括:
I1:读取文档并组装文档;
I2:获取组装好的文档,将其扫描全局trie树,得出匹配结果。该扫描过程需要加锁,在所有文档处理线程中,只有一个线程进行该步骤。由于该全局trie树处于内存中,其扫描时间极短(毫秒级)所以基本不会对其他线程进行阻塞,从而可以实现多线程对trie树的共享;
I3:进行规则解析、信息源过滤、文档打分以及输出结果。
步骤II)等待所有线程结束。
图6给出了该实施例中文档过滤过程的状态转移图。其中,多个通道以阻塞的方式来读取文档,如果有其他通道在读取文档,则阻塞,当该通道读取文档时,加锁;当获取文档后,检查全局trie树是否正在建立,根据全局trie树的状态(是否已经建立完毕)判断是否进行文档匹配。另一个通道也读取了文档准备进行匹配,发现trie树被加了锁,那么说明某个通道正在匹配,此时则会阻塞。若锁被释放,那么会唤醒正在等待的通道对组装好的文档结构进行匹配。
在本发明的又一个实施例中,可以将该系统部署在分布式的集群上,从而提高并行的处理能力。主节点安装有轮询监测程序,用于接收加载事件规则的请求,并对实时过滤节点分发事件规则,同时接收来自过滤节点的心跳,以检测每个过滤节点的运行状态,对于死去的节点,该轮询监测程序负责重启实施过滤节点,这样既可以提高系统的容错性,又便于系统的横向扩展,适应不同规模的数据处理。过滤节点在收到由主节点传输的事件规则时调用事件规则加载装置来加载该事件规则。另一方面,过滤节点从消息缓存队列中以阻塞的方式读取文档,该消息缓存队列主要负责将文档存放在内存之中,通过阻塞的方式为多个实时过滤节点提供流式数据。
该系统可以通过多个实时过滤节点对这些数据进行分布式过滤。如上文所述流式数据可分为不同的种类(通道),每个节点的执行的文档过滤过程都有一个全局的双数组trie树,每个过程通过不同的线程去分别处理不同通道的文档数据。
在上述的实施例中,采用事件触发方式去更换过滤文本所使用的事件规则,这样可以适应各种业务类型。而且采用多通道方式进行文档过滤,每个通道代表了不同类型的文本数据,使得不同的文本数据可以共享事件规则。既可以适应不同的文本数据,又可以提高系统的处理效率。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。
Claims (10)
1.一种面向网络流式数据的事件实时过滤方法,所述方法包括:
步骤1)响应于加载事件规则的请求来加载事件规则,所述事件规则包括过滤规则列表和信息源范围;
步骤2)根据所加载的事件规则对网络流式数据进行过滤。
2.根据权利要求1所述的方法,所述步骤1)包括:
步骤11)响应于加载事件规则的请求读取相应的事件规则;
步骤12)根据从所述事件规则中提取的所有关键词构建trie树。
3.根据权利要求2所述的方法,所述步骤2)包括:
步骤2-1)基于所构建的trie树对网络流式数据进行过滤,获取包含所述关键词的文档;
步骤2-2)基于所述过滤规则列表从包含所述关键词的文档中提取出符合全部过滤规则的文档;
步骤2-3)从所述符合全部过滤规则的文档中提取符合所述信息源范围的文档。
5.根据权利要求1所述的方法,所述步骤1)包括:
(1)接收加载事件规则的请求;
(2)判断目前是否存在正在被用于建Trie树的事件规则;
(3)如果存在,则备份事件规则,如果之前有已经备份的事件规则,则覆盖;如果不存在直接建立并保存临时Trie树;
(4)判断全局Trie树是否存在并且被使用;如果不存在或者没有被使用则使用该新建的临时Trie树来更新全局Trie树;否则等待全局Trie 树使用完毕之后再更新全局Trie树;
(5)判断是否有备份的事件规则,如果有,则返回(2)继续执行,如果没有,则结束。
6.根据权利要求5所述的方法,所述步骤2)包括:
步骤b1,读取一组文档并将其封装成文本序列;
步骤b2:判断Trie树是否建立完毕,如果全局Trie树已经建好则进行下一步,否则等待一秒;
步骤b3:利用全局Trie树对所组织的文本序列进行关键词匹配;
步骤b4:基于该所加载的事件规则中的过滤规则对步骤b3扫描全局trie树得到的匹配结果进行解析,以得到符合过滤规则列表中所有过滤规则的文档;
步骤b5:过滤掉不在事件规则要求的信息源范围之中的文档;
步骤b6:输出并保存过滤结果,并返回步骤b1。
7.一种面向网络流式数据的事件实时过滤系统,所述系统包括:
事件规则加载装置,用于响应于加载事件规则的请求来加载事件规则,所述事件规则包括过滤规则列表和信息源范围;
过滤装置,用于根据所加载的事件规则对网络流式数据进行过滤。
8.根据权利要求7所述的系统,所述事件规则加载装置被配置为执行:
(1)接收加载事件规则的请求;
(2)判断目前是否存在正在被用于建Trie树的事件规则;
(3)如果存在,则备份事件规则,如果之前有已经备份的事件规则,则覆盖;如果不存在直接建立并保存临时Trie树;
(4)判断全局Trie树是否存在并且被使用;如果不存在或者没有被使用则使用该新建的临时Trie树来更新全局Trie树;否则等待全局Trie树使用完毕之后再更新全局Trie树;
(5)判断是否有备份的事件规则,如果有,则返回(2)继续执行,如果没有,则结束。
9.根据权利要求8所述的系统,所述过滤装置被配置为执行:
步骤b1,读取一组文档并将其封装成文本序列;
步骤b2:判断Trie树是否建立完毕,如果全局Trie树已经建好则进行下一步,否则等待一秒;
步骤b3:利用全局Trie树对所组织的文本序列进行关键词匹配;
步骤b4:基于该所加载的事件规则中的过滤规则对步骤b3扫描全局trie树得到的匹配结果进行解析,以得到符合过滤规则列表中所有过滤规则的文档;
步骤b5:过滤掉不在事件规则要求的信息源范围之中的文档;
步骤b6:输出并保存过滤结果,并返回步骤b1。
10.根据权利要求8所述的系统,所述过滤装置通过不同的线程去分别过滤来自不同通道的文档数据,所有通道共享该全局trie树,每个通道的文档数据为相同种类的数据或不同种类的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310136896.1A CN103198146B (zh) | 2013-04-19 | 2013-04-19 | 面向网络流式数据的事件实时过滤方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310136896.1A CN103198146B (zh) | 2013-04-19 | 2013-04-19 | 面向网络流式数据的事件实时过滤方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103198146A true CN103198146A (zh) | 2013-07-10 |
CN103198146B CN103198146B (zh) | 2015-05-27 |
Family
ID=48720703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310136896.1A Active CN103198146B (zh) | 2013-04-19 | 2013-04-19 | 面向网络流式数据的事件实时过滤方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103198146B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885387A (zh) * | 2019-01-30 | 2019-06-14 | 弗徕威智能机器人科技(上海)有限公司 | 一种适用于机器人的事件恢复机制 |
CN110032494A (zh) * | 2019-03-21 | 2019-07-19 | 杭州电子科技大学 | 一种基于关联关系的双粒度噪声日志过滤方法 |
CN110069635A (zh) * | 2019-04-30 | 2019-07-30 | 秒针信息技术有限公司 | 一种热度词的确定方法及装置 |
CN110083626A (zh) * | 2019-03-29 | 2019-08-02 | 北京奇安信科技有限公司 | 流式事件序列匹配方法及装置 |
CN110175288A (zh) * | 2019-05-23 | 2019-08-27 | 中国搜索信息科技股份有限公司 | 一种面向青少年群体的文字和图像数据的过滤方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101071420A (zh) * | 2007-06-22 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 一种切分索引分词的方法及系统 |
CN101553782A (zh) * | 2006-10-03 | 2009-10-07 | 三星电子株式会社 | 用于管理可扩展标记语言文档管理服务器历史的系统和方法 |
CN101916263A (zh) * | 2010-07-27 | 2010-12-15 | 武汉大学 | 基于加权编辑距离的模糊关键字查询方法及系统 |
CN102811163A (zh) * | 2011-06-03 | 2012-12-05 | 弗卢克公司 | 用于流式传输网络流数据分析的方法和装置 |
-
2013
- 2013-04-19 CN CN201310136896.1A patent/CN103198146B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101553782A (zh) * | 2006-10-03 | 2009-10-07 | 三星电子株式会社 | 用于管理可扩展标记语言文档管理服务器历史的系统和方法 |
CN101071420A (zh) * | 2007-06-22 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 一种切分索引分词的方法及系统 |
CN101916263A (zh) * | 2010-07-27 | 2010-12-15 | 武汉大学 | 基于加权编辑距离的模糊关键字查询方法及系统 |
CN102811163A (zh) * | 2011-06-03 | 2012-12-05 | 弗卢克公司 | 用于流式传输网络流数据分析的方法和装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885387A (zh) * | 2019-01-30 | 2019-06-14 | 弗徕威智能机器人科技(上海)有限公司 | 一种适用于机器人的事件恢复机制 |
CN109885387B (zh) * | 2019-01-30 | 2023-09-29 | 弗徕威智能机器人科技(上海)有限公司 | 一种适用于机器人的事件恢复机制 |
CN110032494A (zh) * | 2019-03-21 | 2019-07-19 | 杭州电子科技大学 | 一种基于关联关系的双粒度噪声日志过滤方法 |
CN110032494B (zh) * | 2019-03-21 | 2020-05-26 | 杭州电子科技大学 | 一种基于关联关系的双粒度噪声日志过滤方法 |
CN110083626A (zh) * | 2019-03-29 | 2019-08-02 | 北京奇安信科技有限公司 | 流式事件序列匹配方法及装置 |
CN110069635A (zh) * | 2019-04-30 | 2019-07-30 | 秒针信息技术有限公司 | 一种热度词的确定方法及装置 |
CN110175288A (zh) * | 2019-05-23 | 2019-08-27 | 中国搜索信息科技股份有限公司 | 一种面向青少年群体的文字和图像数据的过滤方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103198146B (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tong et al. | Weibo communication and government legitimacy in China: A computer-assisted analysis of Weibo messages on two ‘mass incidents’ | |
Bozarth et al. | Toward a better performance evaluation framework for fake news classification | |
Mitzenmacher et al. | Scalable large near-clique detection in large-scale networks via sampling | |
Fan et al. | Incremental detection of inconsistencies in distributed data | |
CN103198146B (zh) | 面向网络流式数据的事件实时过滤方法和系统 | |
Rakha et al. | Studying the needed effort for identifying duplicate issues | |
CN103854063B (zh) | 一种基于互联网开放信息的事件发生风险预测并预警方法 | |
AU2005217413A1 (en) | Intelligent search and retrieval system and method | |
CN104966172A (zh) | 一种用于企业经营数据分析的大数据可视化分析处理系统 | |
CN103440288A (zh) | 一种大数据存储方法及装置 | |
CN106484709A (zh) | 一种日志数据的审计方法和审计装置 | |
CN111314158B (zh) | 大数据平台监控方法、装置及设备、介质 | |
WO2015084757A1 (en) | Systems and methods for processing data stored in a database | |
Dusart et al. | Capitalizing on a TREC track to build a tweet summarization dataset | |
Zhao et al. | Mid-ontology learning from linked data | |
CN115204889A (zh) | 文本处理方法、装置、计算机设备及存储介质 | |
CN113468160A (zh) | 数据治理方法及装置、电子设备 | |
US11776078B2 (en) | Systems and methods for generating strategic competitive intelligence data relevant for an entity | |
Raad et al. | Constructing and cleaning identity graphs in the LOD cloud | |
KR102025813B1 (ko) | 사건 흐름 정보를 제공하기 위한 연대순 정보 기반 큐레이션 장치 및 그것의 제어방법 | |
CN116467291A (zh) | 一种知识图谱存储与搜索方法及系统 | |
CN106682107B (zh) | 数据库表关联关系确定方法及装置 | |
CN115953041A (zh) | 一种营商政策系统的构建方案及系统 | |
EP4002152A1 (en) | Data tagging and synchronisation system | |
CN107729518A (zh) | 一种关系型数据库的全文检索方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20130710 Assignee: Branch DNT data Polytron Technologies Inc Assignor: Institute of Computing Technology, Chinese Academy of Sciences Contract record no.: 2018110000033 Denomination of invention: Real-time event filtering method and real-time event filtering system oriented to network stream data Granted publication date: 20150527 License type: Common License Record date: 20180807 |