信息提取方法、装置、设备及存储介质与流程

文档序号:22324338发布日期:2020-09-25 17:52阅读:71来源:国知局
信息提取方法、装置、设备及存储介质与流程

本发明实施例涉及数据处理技术领域,尤其涉及一种信息提取方法、装置、设备及存储介质。



背景技术:

计算机信息化系统中的数据分为结构化数据和非结构化数据。其中,非结构化数据格式非常多样,标准也是多样性的,很难直接理解和利用。将非结构化数据转化为结构化数据之后,就可以存入搜索引擎、关系型的数据库、非关系型的数据库等系统去做进一步分析,或者存入数据库供商业智能软件分析,也可以实时流式导入到其他系统,或者批处理导入到其他系统等。

将非结构化数据转为结构化数据首先需要将日志中的信息进行分类提取。通常日志信息以字段为数据单位,非结构化数据格式多样,字段的种类及格式也多种多样。目前,字段提取方法往往是针对某一种具体格式的日志采用编写正则表达式、键值对切分、固定分隔符切分等方式进行字段提取处理,例如采用awk提取命令,其命令语法为awk'{pattern+action}'{filenames},其中,“pattern”表示awk在数据中查找的内容,而“action”是在查找匹配内容时所执行的一系列命令,花括号“{}”不需要在程序中始终出现,它们用于根据特定的模式对一系列指令进行分组。然而,在日志数据处理过程中,字段提取规则的编写耗费了大量的人力,且随着日志格式的不断变化,字段提取规则不仅日渐复杂,还需不断进行更新维护。



技术实现要素:

本发明实施例提供一种信息提取方法、装置、设备及存储介质,以对现有技术中的字段提取方法进行优化,减少人力成本。

第一方面,本发明实施例还提供了一种信息提取方法,包括:

获取待字段提取日志;

确定与所述待字段提取日志匹配的目标日志格式;

针对所述待字段提取日志,根据与所述目标日志格式匹配的字段提取模板提取符合预设格式的字段名和字段值;其中,所述字段提取模板是通过日志聚类训练确定的。

第二方面,本发明实施例提供了一种信息提取装置,包括:

日志获取模块,设置为获取待字段提取日志;

日志格式确定模块,设置为确定与所述待字段提取日志匹配的目标日志格式;

字段提取模块,设置为针对所述待字段提取日志,根据与所述目标日志格式匹配的字段提取模板提取符合预设格式的字段名和字段值;其中,所述字段提取模板是通过日志聚类训练确定的。

第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任意实施例所述的信息提取方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的信息提取方法。

本发明实施例提供的技术方案,针对待字段提取日志,首先确定与该待字段提取日志匹配的目标日志格式,然后使用通过日志聚类训练确定的与该目标日志格式匹配的字段提取模板对该待字段提取日志进行字段提取,得到符合预设格式的字段名和字段值。上述技术方案,实现了将日志中的字段进行提取并转换为统一的预设格式,有利于将非结构化数据转化为结构化数据,便于查询统计,节省了计算空间和查询时间,而且无需人工针对每一种具体格式的日志进行解析规则编写,降低了人工成本。

附图说明

图1是本发明实施例一中的一种信息提取方法的流程图;

图2是本发明实施例二中的一种信息提取方法的流程图;

图3是本发明实施例三中的一种信息提取装置的结构示意图;

图4是本发明实施例四中的一种计算机设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

实施例一

图1是本发明实施例一提供的一种信息提取方法的流程图,可适用于对大量不同格式的日志进行字段提取的情况,该方法可以由本发明实施例提供的信息提取装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。

如图1所示,本实施例提供的信息提取方法,具体包括:

s110、获取待字段提取日志。

待字段提取日志,指的是需要进行字段提取的日志。

s120、确定与待字段提取日志匹配的目标日志格式。

日志格式,指的是日志的编码格式,具体可以是日志中记载的日期、时间、使用者及动作等相关信息的描述形式以及间隔形式等,例如,日志中将什么符号作为不同字段间的分隔标志,比如使用逗号或分号等作为不同字段间的分隔标志。可选的,日志格式中还包括日志的起止符号,也即通过什么符号来标识日志的起止,例如可以通过花括号或双引号等符号来标识。目标日志格式,指的是任意一种日志格式,在本实施例中,目标日志格式是所述待字段提取日志所属的一种日志格式。

可选的,将待字段提取日志与预先保存的多个日志格式去匹配,与待字段提取日志的编码格式匹配成功的一种日志格式即为与待字段提取日志匹配的目标日志格式。

s130、针对待字段提取日志,根据与目标日志格式匹配的字段提取模板提取符合预设格式的字段名和字段值。

在确定目标日志格式之后,获取与目标日志格式匹配的字段提取模板。其中,字段提取模板是通过日志聚类训练确定的。其中,字段提取模板是与日志格式一一对应的。

以目标日志格式为例进行解释说明,获取与目标日志格式对应的多个日志样本,也即获取同属于与目标日志格式对应的日志聚类中的多个日志样本,使用这些日志样本对机器学习模型进行训练,得到与目标日志格式匹配的字段提取模板。可选的,字段提取模板为与目标日志格式对应的正则表达式、键值对切分规则、固定分隔符中的至少一个。

同时,根据字段提取模板还对应于一种预设格式,具体可以是字段名和字段值的存储格式。在针对待字段提取日志完成字段提取之后,以预设的格式对这些字段进行存储,以便于进行字段查询。

本发明实施例提供的技术方案,针对待字段提取日志,首先确定与该待字段提取日志匹配的目标日志格式,然后使用通过日志聚类训练确定的与该目标日志格式匹配的字段提取模板对该待字段提取日志进行字段提取,得到符合预设格式的字段名和字段值。上述技术方案,实现了将日志中的字段进行提取并转换为统一的预设格式,有利于将非结构化数据转化为结构化数据,便于查询统计,节省了计算空间和查询时间,而且无需人工针对每一种具体格式的日志进行解析规则编写,降低了人工成本。

作为一种可选的实施方式,字段提取模板包括:参数标注位信息和至少一个正则表达片段。

可选的,正则表达片段用于对待字段提取日志进行解析,匹配字段信息。其中,一种日志格式可以对应与一个或多个正则表达片段,多个正则表达片段结合起来可以替代一个需要人工编写的包含复杂选择的正则表达式。

参数标注位信息用于确定待字段提取日志中符合预设格式的字段的参数信息,参数标注位信息中可以包括标注参数的命名以及参数位等。

其中,与目标日志格式对应的正则表达片段和参数标注位信息为根据与目标日志格式的大量日志样本对机器学习模型进行训练后得到的。

作为一种可选的实施方式,本实施例提供的信息提取方法,在确定与待字段提取日志匹配的目标日志格式之前,还包括:

采用日志聚类算法对日志样本集合进行聚类处理,确定至少一个日志格式,并得到与每个日志格式对应的模板日志文本;其中,模板日志文本中包括时间戳、固定文本和可变参数文本;分别针对与每个日志格式对应的各个日志样本,进行预设的参数标注,确定与每个日志格式对应的参数标注位信息;确定与每个模板日志文本分别对应的至少一个正则表达片段,所述正则表达片段由一个可变参数文本以及所述可变参数文本前后位置的固定文本构成。

获取大量的日志样本,采用日志聚类算法对这些日志样本进行聚类处理,得到至少两个日志聚类,每一种日志聚类对应于一个日志格式。

日志聚类算法,指的是适用于对日志进行聚类处理的算法,例如可以是k-means聚类算法,字典树算法,dbscan(density-basedspatialclusteringofapplicationswithnoise)算法等等。不同聚类算法的优势不同,可以结合实际应用情况选取适合的聚类算法,本实施例对日志聚类算法的类型不作具体限定。

在一示例中,在采用日志聚类算法对日志样本集合进行聚类处理,确定至少一个日志格式之后,还包括:根据所述至少一个日志格式构建日志格式树。对应的,可以将确定与待字段提取日志匹配的目标日志格式,具体为:遍历日志格式树,确定与待字段提取日志匹配的目标日志格式。

日志格式树,指的是以树的形式存储各个日志格式,例如以二叉搜索树的形式存储各个日志格式,以便于搜索与待字段提取日志匹配的目标日志格式。

遍历日志格式树,即为以某种方式逐个访问日志格式树上的每个节点,以日志格式树为二叉搜索树为例,遍历方式可以是前序遍历或者中序遍历或者后续遍历,本实施例对此不作具体限定。

在访问日志格式树上的一个节点时,获取与这个节点对应的日志格式,将其与待字段提取日志进行匹配,如果匹配成功,这个日志格式即为与待字段提取日志匹配的目标日志格式,此时无需继续遍历,如果匹配不成功,则继续遍历日志格式树。

在得到各个日志聚类之后,基于训练后的机器学习模型确定与每个日志聚类对应的模板日志文本,也即与每个日志格式对应的模板日志文本。其中,模板日志文本中包含已经被识别出来的时间、固定文本和可变参数部分,在模板日志文本中固定文本和可变参数位置交替出现。在一示例中,固定文本可以由符号单独构成,也可以有文本与符号共同构成。

在得到各个模板日志文本之后,基于训练后的机器学习模型确定与每个模板日志文本对应的一个或多个正则表达片段,其中,正则表达片段由一个可变参数文本以及可变参数文本前后位置的固定文本构成。

以正则表达片段"type":"****"为例,****为可变参数文本,"type":"为可变参数文本前面的固定文本,"为可变参数文本后面的固定文本。

在对日志样本集合进行聚类处理之后,基于训练后的机器学习模型分别针对与每个日志格式对应的各个日志样本,进行预设的参数标注,确定与每个日志格式对应的参数标注位信息。

可选的,对日志样本进行一些必要参数的标注,例如通过geo解析(用于解析出日志中ip地址的地理位置)、useragent解析(用于分析http日志中useragent的用户操作系统和浏览器信息)等解析规则对标注的参数进行解析,以此确定与目标格式对应的参数标注位信息,并对标注的参数进行命名。

在得到与各个日志格式对应的参数标注位信息后将其进行存储,以便对待字段提取日志进行字段提取,并得到符合统一的预设格式的字段名和字段值。

在上述技术方案的基础上,在采用日志聚类算法对日志样本集合进行聚类处理之前,还包括:确定日志样本集合的每个日志样本中符合预设数据种类的目标参数;使用与每个预设数据种类分别对应的预设替代字符对匹配的目标参数进行替换。

预设数据种类,指的是会大量出现在不同日志格式中的信息,例如ip地址,用户id,协议等。

可选的,在日志聚类训练的预处理阶段,引入一些预设数据种类以及与每个预设数据种类分别对应的预设替代字符,例如,与ip地址对应的预设替代字符为aa,与用户id对应的预设替代字符为bb,等等。在每个日志样本中查找与这些预设数据种类对应的目标参数,并使用与每个预设数据种类分别对应的预设替代字符对匹配的目标参数进行替换,例如使用字符“aa”将日志样本中的ip地址进行替换,使用字符“bb”将日志样本中的用户id进行替换。

预设替代字符,作为一类可供锚定的特殊字符,使生成的正则表达片段根据泛化,而且,正则执行效率会因为含有特殊字符而提高效率。

进一步的,在针对待字段提取日志完成字段提取之后,根据预设解析规则确定字段(field)与字段值(value)的分隔符,字段之间的分隔符,得到各个字段与字段值组合。然后,根据与目标日志格式对应的参数标注位信息,提取关键字段,以统一的预设格式对字段与字段值的组合进行存储。

其中,预设格式可以是便于查询或者存储的格式,例如可以是field_name:field_value格式,本实施例对此不作具体限定。

实施例二

图2是本发明实施例二提供的一种信息提取方法的流程图。本实施例在上述技术方案的基础上进行具体化,其中,可以将确定与所述待字段提取日志匹配的目标日志格式,具体为:

在确定不存在与待字段提取日志对应的自定义解析规则时,确定与待字段提取日志匹配的目标日志格式。

进一步的,在确定存在与待字段提取日志对应的自定义解析规则时,根据自定义解析规则对待字段提取日志进行字段提取。

如图2所示,本实施例提供的信息提取方法,具体包括:

s210、获取待字段提取日志。

s220、判断是否存在与待字段提取日志对应的自定义解析规则,若是,则执行s230,若否,则执行s240。

自定义解析规则,指的是由用户手动配置的解析规则。

可选的,根据待字段提取日志头部带有的产生这条日志的应用程序信息(例如可以是应用程序名称appname),查找是否存在用户配置的自定义解析规则。

s230、根据自定义解析规则对待字段提取日志进行字段提取,执行s260。

如果存在与待字段提取日志对应的自定义解析规则,则使用该自定义解析规则进行字段提取处理。其中,用户可能配置了多条自定义解析规则,则依次使用这些自定义解析规则进行处理。

s240、遍历日志格式树,确定与待字段提取日志匹配的目标日志格式。

如果不存在自定义解析规则,或者用户配置的自定义解析规则无法与待字段提取日志匹配,则使用日志格式树,确定与待字段提取日志匹配的目标日志格式。

s250、根据与目标日志格式对应的至少一个正则表达片段,对待字段提取日志进行字段提取。

s260、根据预设解析规则确定字段与字段值的分隔符,字段之间的分隔符,得到各个字段与字段值组合。

s270、根据与目标日志格式对应的参数标注位信息,提取关键字段,并以预设格式对字段与字段值的组合进行存储。

其中,预设格式可以是field_name:field_value格式。

进一步的,可以为以预设格式存储的字段与字段值的组合建立索引提供搜索服务,也可以将以预设格式存储的字段与字段值的组合存入数据库提供查询服务。

本实施例提供的技术方案,在获取待字段提取日志之前,需要采用日志聚类算法得到日志格式树,以及与各个日志格式分别对应的参数标注位信息以及至少一个正则表达片段,具体的操作如下:

首先,确定日志样本集合的每个日志样本中符合预设数据种类的目标参数,使用与每个预设数据种类分别对应的预设替代字符对匹配的目标参数进行替换;其次,采用日志聚类算法对日志样本集合进行聚类处理,确定至少一个日志格式,构建日志格式树,并得到与每个日志格式对应的模板日志文本,模板日志文本中包括时间戳、固定文本和可变参数文本;再次,分别针对与每个日志格式对应的各个日志样本,进行预设的参数标注,确定与每个日志格式对应的参数标注位信息,同时确定与每个模板日志文本分别对应的至少一个正则表达片段,正则表达片段由一个可变参数文本以及所述可变参数文本前后位置的固定文本构成。

本实施例未尽详细解释之处请参见前述实施例,在此不再赘述。

在上述技术方案中,将日志中的字段提取并转为统一格式,有利于将非结构化数据转化为结构化数据,便于查询统计,节省了计算空间和查询时间。同时,转化后将可以实时导入或批处理导入其他系统,也可以存入搜索引擎、关系型数据库、非关系型数据库等系统。

实施例三

图3是本发明实施例三提供的一种信息提取装置的结构示意图,可适用于对大量不同格式的日志进行字段提取的情况,该装置可采用软件和/或硬件的方式实现,并一般可集成在计算机设备中。

如图3所示,该信息提取装置具体包括:日志获取模块310、日志格式确定模块320和字段提取模块330。其中,

日志获取模块310,设置为获取待字段提取日志;

日志格式确定模块320,设置为确定与所述待字段提取日志匹配的目标日志格式;

字段提取模块330,设置为针对所述待字段提取日志,根据与所述目标日志格式匹配的字段提取模板提取符合预设格式的字段名和字段值;其中,所述字段提取模板是通过日志聚类训练确定的。

本发明实施例提供的技术方案,针对待字段提取日志,首先确定与该待字段提取日志匹配的目标日志格式,然后使用通过日志聚类训练确定的与该目标日志格式匹配的字段提取模板对该待字段提取日志进行字段提取,得到符合预设格式的字段名和字段值。上述技术方案,实现了将日志中的字段进行提取并转换为统一的预设格式,有利于将非结构化数据转化为结构化数据,便于查询统计,节省了计算空间和查询时间,而且无需人工针对每一种具体格式的日志进行解析规则编写,降低了人工成本。

可选的,所述字段提取模板包括:参数标注位信息和至少一个正则表达片段;其中,所述正则表达片段用于对所述待字段提取日志进行解析,所述参数标注位信息用于确定所述待字段提取日志中符合预设格式的字段的参数信息。

在一种可选的实施方式中,上述装置还包括:日志聚合模块、参数标注模块和正则表达片段生成模块。其中,

日志聚合模块,设置为在确定与所述待字段提取日志匹配的目标日志格式之前,采用日志聚类算法对日志样本集合进行聚类处理,确定至少一个日志格式,并得到与每个日志格式对应的模板日志文本;其中,所述模板日志文本中包括时间戳、固定文本和可变参数文本;

参数标注模块,设置为分别针对与每个日志格式对应的各个日志样本,进行预设的参数标注,确定与每个日志格式对应的参数标注位信息;

正则表达片段生成模块,设置为确定与每个所述模板日志文本分别对应的至少一个正则表达片段,所述正则表达片段由一个可变参数文本以及所述可变参数文本前后位置的固定文本构成。

在另一种可选的实施方式中,上述装置还包括:参数替换模块,设置为在采用日志聚类算法对日志样本集合进行聚类处理之前,确定所述日志样本集合的每个日志样本中符合预设数据种类的目标参数;使用与每个所述预设数据种类分别对应的预设替代字符对匹配的目标参数进行替换。

在又一种可选的实施方式中,上述装置还包括:日志格式树构建模块,设置为在采用日志聚类算法对日志样本集合进行聚类处理,确定至少一个日志格式之后,根据所述至少一个日志格式构建日志格式树;

对应的,日志格式确定模块320,具体设置为遍历所述日志格式树,确定与所述待字段提取日志匹配的目标日志格式。

作为一种可选的实施方式,日志格式确定模块320,具体设置为在确定不存在与所述待字段提取日志对应的自定义解析规则时,确定与所述待字段提取日志匹配的目标日志格式。

进一步的,上述装置还包括:自定义解析规则执行模块,设置为在确定存在与所述待字段提取日志对应的自定义解析规则时,根据所述自定义解析规则对所述待字段提取日志进行字段提取。

上述信息提取装置可执行本发明任意实施例所提供的信息提取方法,具备执行的信息提取方法相应的功能模块和有益效果。

实施例四

图4是本发明实施例四提供的一种计算机设备的结构示意图。如图4所示,该计算机设备包括处理器410、存储器420、输入装置430和输出装置440;计算机设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;计算机设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的信息提取方法对应的程序指令/模块(例如,图3所示的信息提取装置中的日志获取模块310、日志格式确定模块320和字段提取模块330)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述信息提取方法。

存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置430可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。

实施例五

本发明实施例五还提供一种存储有计算机程序的计算机可读存储介质,计算机程序在由计算机处理器执行时用于执行一种信息提取方法,包括:

获取待字段提取日志;

确定与所述待字段提取日志匹配的目标日志格式;

针对所述待字段提取日志,根据与所述目标日志格式匹配的字段提取模板提取符合预设格式的字段名和字段值;其中,所述字段提取模板是通过日志聚类训练确定的。

当然,本发明实施例所提供的存储有计算机程序的计算机可读存储介质,其计算机程序不限于如上的方法操作,还可以执行本发明任意实施例所提供的信息提取方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

值得注意的是,上述信息提取装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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