确定文本串公共子序列的方法和设备技术

技术编号:15260428 阅读:69 留言:0更新日期:2017-05-03 13:16
本发明专利技术提供了一种用于在多个文本串中确定最长公共子序列的方法,其中包括将多个文本串分别转换为词序列;对词序列进行分类;以及在每一类中进行最长公共子序列运算。在本发明专利技术的某些实施方式中,通过对文本串进行分类可以节省LCS运算所需的时间。

Method and apparatus for determining common substring of text string

The present invention provides a method for determining the longest common subsequence in a text string, including a plurality of text strings are converted into word sequence; classify word sequence; and in each category in the longest common sub sequence operation. In some embodiments of the present invention, the time required for LCS operations can be saved by classifying text strings.

【技术实现步骤摘要】

本专利技术涉及计算机应用领域,具体而言,涉及用于确定文本串公共子序列的方法和设备
技术介绍
当今,人们对网络安全日益重视,包括防火墙在内的多种安全设备被广泛应用。然而,仅部署安全设备还不足以保护网络的安全,相关人员还需要持续不断监控和分析安全设备产生的日志,这是因为日志中包含非常有价值的信息,比如利用这些日志可以检测出诸如网络入侵、病毒攻击、反常行为、异常流量等安全威胁,从而有针对性地配置和调整网络整体安全策略。一种对日志进行分析的方式是将日志的事件归为“信息”、“错误”和“警告”等几个大类。这种分析方法具有局限性,由于日志数量巨大并且内容繁杂,重要的事件信息很可能被淹没在“警告”类别中而未能被及时处理。因此,为了方便统计并及时发现问题、避免一类小事件被淹没在同类的其他事件中,需要对日志进行细分,以便能够及时从日志判断出事件类型并做相应处理。日志具有基于文本、因来源不同而可能格式各异的特点。例如,来自防火墙和网络服务器的日志格式就存在差异。此外,即使来源相同,日志仍然可以按照其含义进行细分。对日志进行细分的常规方法是计算最长公共子序列(LCS),即把两个日志文本归并在一起,抽出公共的序列部分,进而判断两者是否能够归为一类。然而,这种常规方法只支持两个文本,在存在多个日志文本的情况下,需要对任何两个文本进行计算,导致计算量非常大。
技术实现思路
根据本专利技术的一方面,提供了一种用于在多个文本串中确定最长公共子序列的方法,包括:将多个文本串分别转换为词序列;将词序列分别转换为相应的词集合;计算每个词集合的最小哈希值;根据最小哈希值,对词序列进行分类;以及在每一类中进行最长公共子序列运算。在这里和下文中,“词序列”是指词的序列;相应的,“词集合”是指词的集合。换言之,序列和集合的构成元素都是词。两者的区别在于,序列中的元素可以重复且必须有顺序,而在集合中不考虑元素顺序且元素无重复。根据本专利技术的另一方面,提供了一种用于在多个文本串中确定最长公共子序列的设备,包括:第一转换装置,用于将多个文本串分别转换为词序列;第二转换装置,用于将词序列分别转换为相应的词集合;第一运算装置,用于计算每个词集合的最小哈希值;分类装置,用于根据最小哈希值对词序列进行分类;以及第二运算装置,用于在每一类中进行最长公共子序列运算。本专利技术的实施方式可以包括下列一个或多个特征。将最小哈希距离小于第一阈值的两个词序列划分为同一类。最长公共子序列运算包括:在该类中选择一个词序列作为第一词序列,分别计算该第一词序列与该类中的其他词序列的最长公共子序列,直至所得到的最长公共子序列长度大于第二阈值。最长公共子序列运算包括:如果所得到的最长公共子序列长度均不大于第二阈值,则从该类中删除该第一词序列,继续最长公共子序列运算。将长度大于第二阈值的最长公共子序列确定为文本串模板。文本串模板依次与该类中的其他词序列计算最长公共序列,在该计算过程中,将长度大于第二阈值的最长公共子序列确定为新的文本串模板并继续该计算过程。输出最终的文本串模板,删除该类中能与所述最终的文本串模板匹配的词序列。继续进行最长公共子序列运算,直至该类为空。本专利技术的某些实施方式可能具有下列一个或多个有益效果:与常规LCS算法相比,支持多文本,并且通过最小哈希算法快速判断文本之间是否差异过大,从而有效节省了LCS运算所需的时间。本专利技术的其他方面、特征和有益效果将在具体实施方式、附图及权利要求中得到进一步明确。附图说明下面结合附图对本专利技术做进一步说明。图1是根据本专利技术的用于在多个文本串中确定最长公共子序列的方法的流程图;图2和图3是根据一种实施方式的进行最长公共子序列运算并确定文本串模板的流程图;以及图4根据本专利技术的用于在多个文本串中确定最长公共子序列的设备的框图。具体实施方式参看图1步骤S100,将文本串分别转换为相应的词序列。下面示例性地借助文本串A和B对步骤S100做进一步说明。假设,文本串A为:“Thequickbrownfoxjumpsoverthelazydog”;文本串B为:“Thelazybrowndogjumpsoverthequickfox”。文本串A经过分词操作得到词序列A:{the,quick,brown,fox,jumps,over,the,lazy,dog本文档来自技高网...
确定文本串公共子序列的方法和设备

【技术保护点】
用于在多个文本串中确定最长公共子序列的方法,包括:将所述多个文本串分别转换为词序列;将所述词序列分别转换为相应的词集合;计算每个词集合的最小哈希值;根据最小哈希值,对所述词序列进行分类;和在每一类中进行最长公共子序列运算。

【技术特征摘要】
1.用于在多个文本串中确定最长公共子序列的方法,包括:将所述多个文本串分别转换为词序列;将所述词序列分别转换为相应的词集合;计算每个词集合的最小哈希值;根据最小哈希值,对所述词序列进行分类;和在每一类中进行最长公共子序列运算。2.权利要求1所述的方法,其中,将最小哈希距离小于第一阈值的两个词序列划分为同一类。3.权利要求2所述的方法,其中,所述最长公共子序列运算包括:在该类中选择一个词序列作为第一词序列,分别计算该第一词序列与该类中的其他词序列的最长公共子序列,直至所得到的最长公共子序列长度大于第二阈值。4.权利要求3所述的方法,其中,所述最长公共子序列运算包括:如果所得到的最长公共子序列长度均不大于第二阈值,则从该类中删除该第一词序列,继续所述最长公共子序列运算。5.权利要求3或4所述的方法,其中,将长度大于第二阈...

【专利技术属性】
技术研发人员:万晓川
申请(专利权)人:北京瀚思安信科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1