CN113657121B - 一种日志变量语义标注方法 - Google Patents
一种日志变量语义标注方法 Download PDFInfo
- Publication number
- CN113657121B CN113657121B CN202111032003.XA CN202111032003A CN113657121B CN 113657121 B CN113657121 B CN 113657121B CN 202111032003 A CN202111032003 A CN 202111032003A CN 113657121 B CN113657121 B CN 113657121B
- Authority
- CN
- China
- Prior art keywords
- log
- variable
- similarity
- variables
- ratio
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种日志变量语义标注方法,首先基于日志解析算法对日志进行解析,得到日志集的日志模式;再根据日志模式中变量所在位置,分别判断变量所在位置的附近单词的词性,得到已知语义的日志变量列表与未知语义的日志变量列表;然后根据日志模式中的变量取值集合,从变量值的重叠性、变量值的分布特性、变量值的多样性相似性、变量值的统计特性相似性、变量位置相似性、邻居变量相似性6个维度刻画日志变量之间的相似性;最后基于推断算法,判断相似性刻画后的两个日志变量是否匹配,进而将未知语义的日志变量也识别为已知语义的日志变量,完成对日志变量的语义标注。本发明能够有效提高日志变量标注结果的准确率。
Description
技术领域
本发明涉及日志自动解析技术领域,具体为一种日志变量语义标注方法。
背景技术
随着互联网应用的飞速发展与广泛普及,日志消息呈爆炸式增长。目前,有较多研究针对日志消息进行分析,以挖掘其中潜在的价值信息。但日志消息大多为无结构或者半结构化的文本数据,在进行分析前,需要从日志消息中提取结构化的字段,该过程称为日志解析;提取出字段后,为了帮助分析人员了解字段的含义以及便于使用日志分析平台对日志消息进行结构化分析,还需要为结构化字段赋予合适的语义,该过程称为日志变量标注。
日志变量标注实际解决的问题是,日志解析完成后,如何为日志变量赋予合理的语义。目前,与日志变量标注直接相关的研究较少。已有的一种方法中,基于两个步骤为未知变量赋予合理的语义:步骤(1),直接从解析得到的日志模式中寻找符合变量语义的单词;步骤(2),在步骤(1)的基础上,基于实体解析的思想,将变量看成实体、变量的取值看成实体的属性,将不同实体之间的属性做精确匹配,如果匹配度大于一半,则认为两个变量具有相似的语义。该方法中实体相似性的刻画存在较大缺陷,仅仅考虑了变量值的相似性,此外采用精确匹配来度量变量值之间的相似性在日志中并不合适。
发明内容
针对上述问题,本发明的目的在于提供一种能够有效提高日志变量标注结果的准确率的日志变量语义标注方法。技术方案如下:
一种日志变量语义标注方法,包括以下步骤:
步骤1:基于日志解析算法对日志进行解析,发现日志消息中的常量和变量,得到日志集的日志模式。
步骤2:根据日志模式中变量所在位置,分别判断变量所在位置的附近单词的词性,发现能够用来表示日志变量语义的单词,完成词性标注,得到已知语义的日志变量列表与未知语义的日志变量列表;
步骤3:根据日志模式中的变量取值集合,从变量值的重叠性、变量值的分布特性、变量值的多样性相似性、变量值的统计特性相似性、变量位置相似性、邻居变量相似性6个维度刻画日志变量之间的相似性;
步骤4:基于推断算法,判断相似性刻画后的两个日志变量是否匹配,进而将未知语义的日志变量也识别为已知语义的日志变量,完成对日志变量的语义标注。
进一步的,所述步骤2中判断变量所在位置的附近单词的词性具体为:
若所述变量位于日志模式中的最后一个位置,则顺序往前找,找到的第一个不含特殊符号的单词,记为候选语义单词;若候选语义单词是名词,则将其作为该变量的语义单词,否则认为日志模式中没有直接表示该变量语义的单词;
若所述变量位于日志模式的中间位置,则优先判断前驱单词,若在前驱单词中找到候选语义单词,并且是名词,则将候选语义单词作为日志变量的语义单词;否则判断直接后继单词是否满足条件,若前驱单词和直接后继单词中,都没有满足条件的单词,则认为日志模式中没有直接表示该日志变量的语义单词;
若所述变量位于日志模式的第一个位置,则判定为日志模式中没有直接表示该变量语义的单词。
更进一步的,所述步骤3中,从变量值的重叠性刻画日志变量之间的相似性具体为:
通过比较已知日志变量和未知日志变量的取值重叠性,来判断两个日志变量的语义是否相似,定义日志变量的取值重叠性计算公式为:
其中,fuzzy(X,Y)为日志变量Ci和Cj的取值集合的模糊匹配值;X表示日志变量Ci的取值集合,Y表示日志变量Cj的取值集合;|X|和|Y|分别表示日志变量Ci和Cj的取值个数;
对两个日志变量的取值集合X、Y,构造加权图G=(V,E),其中V表示图中的顶点,E是图中连接顶点的带权边;加权图中的顶点分别由两个日志变量取值集合中的元素xi、yj充当,通过计算(xi,yj)的编辑距离相似性得到每条边的权重;设置编辑距离相似性阈值,加权图中只保留权重大于该阈值的边;编辑距离相似性的计算如公式所示:
其中,ED(xi,yj)表示(xi,yj)的编辑距离,|xi|表示字符串xi的长度;
定义图G的最大权重匹配M,M为一组边的集合,需要满足以下两个条件:
(1)M中的任意两条边没有公共顶点;
(2)在图G的所有子集中,M中边的权重和加起来最大;
模糊匹配fuzzy(X,Y)则为M中所有边的权重和。
更进一步的,所述步骤3中,从变量值的分布特性刻画日志变量之间的相似性具体为:
将日志变量的取值分为4种类型,分别是纯英文字母token、纯数字token、含有数字的token、以及其他token,统计日志变量中4种token类型的比例,分别记为x_ratio,y_ratio,z_ratio,w_ratio,两个日志变量Ci和Cj分布特性相似性计算如下公式所示:
其中,函数dist表示计算两个向量的欧式距离,使用4种类型的比例进行计算:
dist(Ci,Cj)=((x_ratioi-x_ratioj)2+(y_ratioi-y_ratioj)2+(z_ratioi-z_ratioj)2+(w_ratioi-w_ratioj)2)1/2
其中,x_ratioi和x_ratioj分别为日志变量Ci和Cj中纯英文字母token的比例;y_ratioi和y_ratioj分别为日志变量Ci和Cj中纯数字token的比例;z_ratioi和z_ratioj分别为日志变量Ci和Cj中含有数字的token的比例;w_ratioi和w_ratioj分别为日志变量Ci和Cj中其他token的比例。
更进一步的,所述步骤3中,从变量值的多样性相似性刻画日志变量之间的相似性具体为:
采用熵进行刻画,基于熵的相似性计算如公式所示:
其中,函数h表示日志变量Ci或Cj熵值的计算方法;日志变量Ci的熵值为:
h(Ci)=-(x_ratioi·log2x_ratioi+y_ratioi·log2y_ratioi+z_ratioi·log2z_ratioi+w_ratioi·log2w_ratioi)
若两个日志变量的熵值接近,则认为它们变量取值类型的多样性接近,则两个日志变量的语义相似。
更进一步的,所述步骤3中,从变量值的统计特性相似性刻画日志变量之间的相似性具体为:
若日志变量的取值全为数值型,则计算变量值的均值、方差统计特性,对数值型变量进行区分;统计特性包括Avg与Var,分别代表日志变量的平均值与方差;
其中,Num(Ci)为日志变量Ci的所有取值个数;Vk(Ci)为日志变量Ci中的第k个取值;
统计特性之间的相似性计算如下公式所示:
所述步骤3中,从变量位置相似性刻画日志变量之间的相似性具体为:
所述变量位置是指一个日志模式中变量在所有变量列表中的相对位置,变量位置的相似性计算公式如下:
其中,C′i和C′j分别代表日志变量Ci和Cj在所属日志模式中的变量位置,s1和s2分别代表日志变量Ci和Cj所属日志模式含有的变量个数。
更进一步的,所述步骤3中,从邻居变量相似性刻画日志变量之间的相似性具体为:
对于某个日志变量而言,将该日志变量所属日志模式的其他变量定义为该变量的邻居变量;假设日志模式pa(Ca1,Ca2,…,Cam),日志模式pb(Cb1,Cb2,…,Cbm),其中,Cai、Cbj分别代表日志模式pa和日志模式pb中的日志变量;计算日志变量Cai和日志变量Cbj的邻居变量相似性公式如下:
N(Cai,Cbj)=max(SED(Ca1,Cb1),SED(Ca1,Cb2),…,SED(Ca1,Cb(j-1)),SED(Ca2,Cb1),SED(Ca2,Cb2),…,SED(Ca2,Cb(j-1)),…SED(Ca(i-1),Cb1),SED(Ca(i-1),Cb2),…,SED(Ca(i-1),Cb(j-1)),SED(Ca(i+1),Cb(j+1)),SED(Ca(i+1),Cb(j+2)),…,SED(Ca(i+1),Cbn),…
SED(Cam,Cb(j+1)),SED(Cam,Cb(j+2)),…,SED(Cam,Cbn))
其中,SED(Cam,Cbn)表示日志变量Cam和日志变量Cbn的编辑距离相似性。
所述步骤4中的推断算法是对所有属性的相似度进行加权求和,计算出总的相似度得分,然后设置相似度阈值,根据总的相似度得分位于哪个相似度区间,来判断是否相似;如公式所示:
其中,Ci和Cj为待比较的日志变量,st为相似度阈值;
将相似性维度分为两类,一类为基于内容的相似性维度,一类为基于结构的相似性维度;所述变量值的重叠性、变量值的分布特性、变量值的多样性相似性、变量值的统计特性相似性在刻画相似性时均从变量的取值考虑,属于基于内容的相似性刻画;所述变量位置相似性和邻居变量相似性考虑的是变量在所属日志模式中的分布情况,属于基于结构的相似性刻画;在判断两个日志变量是否相似时,首先应该判断日志变量之间的内容相似性是否达到要求,在内容相似性满足条件的前提下,再计算日志变量之间的结构相似性;
利用已知日志变量来推断未知日志变量的语义的具体过程为:对于输入的某个未知日志变量Cx,遍历已知日志变量集{C1,C2,…,Cn},依次计算其内容相似性;从内容相似性的计算结果中,选出相似性最大的k个日志变量,并得到其子日志变量集{Cv1,Cv2,…,Cvk};再使用未知日志变量Cx,遍历子日志变量集{Cv1,Cv2,…,Cvk},依次计算其结构相似性;从结构相似性的计算结果中,选出相似性最大的1个日志变量,该日志变量的语义即为未知日志变量的语义。
本发明的有益效果是:
(1)本发明对日志模式中的单词进行词性标注,在日志变量的附近寻找可以用来表示该日志变量语义的单词,识别出一部分日志变量的语义。
(2)本发明提出了日志变量之间的相似性刻画方法,分别从6个维度对日志变量进行相似性刻画。
(3)本发明提出了基于相似性刻画的语义推断算法,通过该算法判定两个日志变量是否相似,完成对日志变量的语义标注。
附图说明
图1是本发明的日志变量语义标注方法架构图。
图2是本发明的两个标注环节准确率对比图。
图3是本发明的标注结果准确率与其它方法的对比图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细说明。本发明整体上分为两个环节,其架构如图1所示,第一,对日志模式中的单词进行词性标注,发现可以用来表示日志变量语义的单词;第二,提出了日志变量之间的相似性刻画方法和语义推断算法,从内容相似性和结构相似性等两个维度对日志变量进行相似性刻画,通过对第一个环节中已被标注的日志变量和剩下的未被标注的日志变量之间做相似性刻画,推断出未被标注的日志变量的语义。
词性标注是日志变量语义标注的第一个环节。对于部分日志变量来说,日志模式中的某个单词可以用来概括该变量,将该单词称为语义单词。词性标注就是在日志模式中发现语义单词的过程。语义推断是日志变量语义标注的第二个环节。经过词性标注后,可能有部分日志变量从日志模式中无法直接获取到语义信息,将这部分日志变量称为未知日志变量,而发现语义单词的那部分变量称为已知日志变量。语义推断的目的是利用已知日志变量,推断出未知日志变量的语义,主要方法是从不同维度对日志变量之间进行相似性刻画,两个相似的日志变量往往具备相同的语义。
一种日志变量的语义标注方法,该方法分为词性标注环节以及语义推断环节。技术方案如下:
一种日志变量语义标注方法,包括以下步骤:
步骤1:基于日志解析算法对日志进行解析,得到日志集的日志模式。
所述日志解析为:发现日志消息中的常量和变量,得到该日志消息所属的日志模式,一个日志模式代表该日志集中的一种日志消息类型。通常,一个日志模式可以匹配多条日志消息,属于同一个日志模式的所有日志消息的变量值构成了该日志模式关于该变量的所有取值集合。由于日志消息中可能有多个变量,故日志模式中可能有多个变量取值集合。
步骤2:识别日志模式中变量所在位置的附近单词的性质,分别判断变量所在位置的附近单词的词性,发现能够用来表示日志变量语义的单词,完成词性标注,得到已知语义的日志变量列表与未知语义的日志变量列表。
如果该变量位于日志模式中的最后一个位置,则顺序往前找,找到的第一个不含特殊符号的单词,记为候选语义单词,然后若候选语义单词是名词,则将其作为该变量的语义单词,否则认为日志模式中没有直接表示该变量语义的单词。
如果该变量位于日志模式的中间位置,则优先判断前驱单词,如果在前驱单词中找到了候选语义单词,并且是名词,则将候选语义单词作为日志变量的语义单词,否则判断直接后继单词是否满足条件,如果前驱单词和直接后继单词中,都没有满足条件的单词,则认为日志模式中没有直接表示该日志变量的语义单词。
如果的变量位于日志模式的第一个位置,则判定为日志模式中没有直接表示该变量语义的单词。
步骤3:利用已知日志变量,推断出未知日志变量的语义;
将每个日志变量看成一个实体,该变量的所有取值看成实体的属性,将日志变量标注问题转换成一个实体识别问题。
从变量值的重叠性、变量值的分布特性、变量值的多样性相似性、变量值的统计特征相似性、变量位置相似性、邻居变量相似性6个维度刻画日志变量之间的相似性。
1)变量值的重叠性,是指通过比较已知日志变量和未知日志变量的取值重叠性来判断两个日志变量的语义是否相似。定义了日志变量的取值重叠性计算见公式,其中fuzzy(X,Y)为日志变量Ci和Cj的取值集合的模糊匹配值,X表示日志变量Ci的取值集合。
对两个日志变量的取值集合X、Y,构造加权图G=(V,E),其中V表示图中的顶点,E是图中连接顶点的带权边。图中的顶点分别由两个日志变量取值集合中的元素xi、yj充当,通过计算(xi,yj)的编辑距离相似性得到每条边的权重。设置编辑距离相似性阈值,图中只保留权重大于该阈值的边。编辑距离相似性的计算如公式所示,其中ED(xi,yj)表示(xi,yj)的编辑距离,|xi|表示字符串xi的长度。
定义图G的最大权重匹配M,M为一组边的集合,需要满足以下两个条件:
(1)M中的任意两条边没有公共顶点。
(2)在图G的所有子集中,M中边的权重和加起来最大。
模糊匹配fuzzy(X,Y)则为M中所有边的权重和。
2)变量取值的分布特性,此处将日志变量的取值分为4种类型,分别是纯英文字母token、纯数字token、含有数字的token、以及其他token,统计日志变量中4种token类型的比例,分别记为x_ratio,y_ratio,z_ratio,w_ratio,两个日志变量Ci和Cj分布特性相似性计算如下。
函数dist表示计算两个向量的欧式距离,使用4种类型的比例进行计算。
dist(Ci,Cj)=((x_ratioi-x_ratioj)2+(y_ratioi-y_ratioj)2+(z_ratioi-z_ratiOj)2+(w_ratioi-w_ratioj)2)1/2
此特征实际上是从参数值的组成形式上刻画日志变量之间的相似性。日志变量之间的取值相似性刻画应该尽可能全面,以涵盖所有可能的情况。
3)变量值的多样性相似性,采用熵进行刻画。基于熵的相似性计算如公式所示:
函数h表示日志变量Ci或Cj的熵的计算方法。日志变量Ci的熵值为:
h(Ci)=-(x_ratioi·log2x_ratioi+y_ratioi·log2y_ratioi+z_ratioi·log2z_ratioi+w_ratioi·log2w_ratioi)
熵值越大,代表日志变量的取值类型越丰富,且每种取值类型出现的概率越接近;熵值越小,代表日志变量的取值类型越单一,且每种取值类型出现的概率相差越悬殊。如果两个日志变量的熵值较为接近,则认为它们变量取值类型的多样性较为接近,则两个日志变量的语义较为相似。
4)变量值的统计特性相似性,如果日志变量的取值全为数值型,则计算变量值的均值、方差等统计特征,对数值型变量进行区分。统计特性包括Avg与Var,分别代表日志变量的平均值与方差。
其中,Num(Ci)为日志变量Ci的所有取值个数;Vk(Ci)为日志变量Ci中的第k个取值;
统计特性之间的相似性计算如下公式所示:
5)变量位置的相似性,是指一个日志模式中变量在所有变量列表中的相对位置。变量位置的相似性计算公式如下:
其中C′i和C′j分别代表日志变量Ci和Cj在所属日志模式中的变量位置,s1和s2分别代表日志变量Ci和Cj所属日志模式含有的变量个数。
6)邻居变量相似性,是指对于某个日志变量而言,将该日志变量所属日志模式的其他变量定义为该变量的邻居变量。假设日志模式pa(Ca1,Ca2,…,Cam),日志模式pb(Cb1,Cb2,…,Cbm),其中,Cai、Cbj分别代表日志模式pa、日志模式pb中的日志变量。计算日志变量Cai和日志变量Cbj的邻居变量相似性公式如下:
N(Cai,Cbj)=max(SED(Ca1,Cb1),SED(Ca1,Cb2),…,SED(Ca1,Cb(j-1)),SED(Ca2,Cb1),SED(Ca2,Cb2),…,SED(Ca2,Cb(j-1)),…SED(Ca(i-1),Cb1),SED(Ca(i-1),Cb2),…,SED(Ca(i-1),Cb(j-1)),SED(Ca(i+1),Cb(j+1)),SED(Ca(i+1),Cb(j+2)),…,SED(Ca(i+1),Cbn),…
SED(Cam,Cb(j+1)),SED(Cam,Cb(j+2)),…,SED(Cam,Cbn))
其中SED(Cam,Cbn)表示日志变量Cam和日志变量Cbn的编辑距离相似性。
步骤4:基于推断算法,判断相似性刻画后的两个日志变量是否匹配,将未知语义的日志变量也识别为已知语义的日志变量,完成对日志变量的语义标注。
推断算法,是对所有属性的相似度进行加权求和,计算出总的相似度得分,然后设置相似度阈值,根据总的相似度得分位于哪个相似度区间,来判断是否相似。如公式所示:
其中,Ci和Cj为待比较的日志变量,st为相似度阈值。
可将相似性维度可分为两类,一类为基于内容的相似性维度,一类为基于结构的相似性维度。其中,变量值的重叠性、变量值的分布特性、变量值的多样性相似性、变量值的统计特性相似性在刻画相似性时均从变量的取值考虑,属于基于内容的相似性刻画;而变量位置相似性、邻居变量相似性实际上考虑的是变量在所属日志模式中的分布情况,属于基于结构的相似性刻画。在判断两个日志变量是否相似时,首先应该判断日志变量之间的内容相似性是否达到要求,在内容相似性满足条件的前提下,再计算日志变量之间的结构相似性。
利用已知日志变量来推断未知日志变量的语义的具体过程为:对于输入的某个未知日志变量Cx,遍历已知日志变量集{C1,C2,…,Cn},依次计算其内容相似性;从内容相似性的计算结果中,选出相似性最大的k个日志变量,并得到其子日志变量集{Cv1,Cv2,…,Cvk};再使用未知日志变量Cx,遍历子日志变量集{Cv1,Cv2,…,Cvk},依次计算其结构相似性;从结构相似性的计算结果中,选出相似性最大的1个日志变量,该日志变量的语义即为未知日志变量的语义。
本发明选择了HDFS、OpenSSH、Spark、Hadoop、OpenStack等5个日志集,统计在每个日志集上的标注准确率。如果日志变量的标注单词是有意义的、且符合日志变量在日志模式中的语义,则认为该日志变量的标注结果是正确的。
图2为本文所提日志变量标注方法的前两个环节在5个日志集上的标注准确率结果。此处需要注意的是,语义推断环节实际上严重依赖于词性标注环节,即词性标注的质量好坏也会对语义推断结果的好坏有明显影响。因此,此处按照以下方式分别统计两个环节的标注准确率:
1)词性标注环节的标注准确率计算如下:记日志集中的变量总数记为N,该环节中标注正确的日志变量个数记为n1,则该环节日志变量标注的准确率计算如下公式所示:
2)语义推断环节的标注准确率计算如下:首先对词性标注环节中已经被标注的日志变量进行人工甄别,将标注错误的日志变量进行纠正,将其修改成正确的语义单词,此过程中,需要进行纠正的日志变量个数记为n2。当纠正完成后,再使用语义推断环节对剩下的未被标注的日志变量进行标注,标注完成后,统计所有正确标注的日志变量个数,记为n3,则该环节日志变量标注的准确率计算如下公式所示:
从图2中可以看出,在这5个日志集中,词性标注和语义推断两个环节均能够对日志变量进行有效标注。其中,对于HDFS日志集而言,词性标注环节中有42%左右的日志变量被正确标注,另外有55%的日志变量是通过语义推断环节获取到标注单词,两个环节在HDFS日志集上均表现出了较好的标注效果。与HDFS日志集类似的还OpenSSH日志集,两个环节的标注准确率分别为45%、34%。对于Spark日志集而言,词性标注环节占据了绝对优势,标注出了53%的日志变量,而语义推断环节有9%的标注准确率。从中可以看出,对于本次实验的Spark日志集,日志变量之间的上下文关系并不明显。而从另一个角度来看,如果一个日志集中的日志消息数量足够多,包含的日志模式足够丰富,日志变量之间的上下文关联可能就越明显,语义推断环节能覆盖的日志变量范围也就会越广。而Hadoop、OpenStack日志集较前面几种日志集而言,两个环节的标注准确率都相对较低。
目前在日志变量标注方面的相关研究较少,只有方法“Spell”中提到了如何为日志变量赋予合适的语义,且与本发明的日志变量标注的目的相同。因此,将Spell中的日志变量标注方法与本发明的日志变量标注方法进行对比,对比结果见图3。从图3中可以看出,在5个日志集中,本发明的日志变量标注方法均比Spell中的日志变量标注方法效果较好。尤其是在HDFS日志集以及OpenSSH日志集上,本文所提方法的标注准确率分别高出120%、47%左右,而在Spark、Hadoop以及OpenStack上,二者的差距相对较小。Spell中只考虑了对日志变量之间的取值做精确匹配。而本发明所提方法在日志变量的相似性刻画方面考虑的更为全面,尤其对于本次实验中的HDFS、OpenSSH日志集来说,有较大一部分日志变量标注是通过语义推断环节完成的。
Claims (3)
1.一种日志变量语义标注方法,其特征在于,包括以下步骤:
步骤1:基于日志解析算法对日志进行解析,发现日志消息中的常量和变量,得到日志集的日志模式;
步骤2:根据日志模式中变量所在位置,分别判断变量所在位置的附近单词的词性,发现能够用来表示日志变量语义的单词,完成词性标注,得到已知语义的日志变量列表与未知语义的日志变量列表;
步骤3:根据日志模式中的变量取值集合,从变量值的重叠性、变量值的分布特性、变量值的多样性相似性、变量值的统计特性相似性、变量位置相似性、邻居变量相似性6个维度刻画日志变量之间的相似性;
步骤4:基于推断算法,判断相似性刻画后的两个日志变量是否匹配,进而将未知语义的日志变量也识别为已知语义的日志变量,完成对日志变量的语义标注;
所述步骤3中,从变量值的重叠性刻画日志变量之间的相似性具体为:
通过比较已知日志变量和未知日志变量的取值重叠性,来判断两个日志变量的语义是否相似,定义日志变量的取值重叠性计算公式为:
其中,fuzzy(X,Y)为日志变量Ci和Cj的取值集合的模糊匹配值;X表示日志变量Ci的取值集合,Y表示日志变量Cj的取值集合;|X|和|Y|分别表示日志变量Ci和Cj的取值个数;对两个日志变量的取值集合X、Y,构造加权图G=(V,E),其中V表示图中的顶点,E是图中连接顶点的带权边;加权图中的顶点分别由两个日志变量取值集合中的元素xi、yj充当,通过计算(xi,yj)的编辑距离相似性得到每条边的权重;设置编辑距离相似性阈值,加权图中只保留权重大于该阈值的边;编辑距离相似性的计算如公式所示:
其中,ED(xi,yj)表示(xi,yj)的编辑距离,|xi|表示字符串xi的长度;
定义图G的最大权重匹配M,M为一组边的集合,需要满足以下两个条件:
(1)M中的任意两条边没有公共顶点;
(2)在图G的所有子集中,M中边的权重和加起来最大;
模糊匹配fuzzy(X,Y)则为M中所有边的权重和;
所述步骤3中,从变量值的分布特性刻画日志变量之间的相似性具体为:
将日志变量的取值分为4种类型,分别是纯英文字母token、纯数字token、含有数字的token、以及其他token,统计日志变量中4种token类型的比例,分别记为x_ratio,y_ratio,z_ratio,w_ratio,两个日志变量Ci和Cj分布特性相似性计算如下公式所示:
其中,函数dist表示计算两个向量的欧式距离,使用4种类型的比例进行计算:
dist(Ci,Cj)=((x_ratioi-x_ratioj)2+(y_ratioi-y_ratioj)2+(z_ratioi-z_ratioj)2+(w_ratioi-w_ratioj)2)1/2
其中,x_ratioi和x_ratioj分别为日志变量Ci和Cj中纯英文字母token的比例;y_ratioi和y_ratioj分别为日志变量Ci和Cj中纯数字token的比例;z_ratioi和z_ratioj分别为日志变量Ci和Cj中含有数字的token的比例;w_ratioi和w_ratioj分别为日志变量Ci和Cj中其他token的比例;
所述步骤3中,从变量值的多样性相似性刻画日志变量之间的相似性具体为:
采用熵进行刻画,基于熵的相似性计算如公式所示:
其中,函数h表示日志变量Ci或Cj熵值的计算方法;日志变量Ci的熵值为:
h(Ci)=-(x_ratioi·log2x_ratioi+y_ratioi·log2y_ratioi+z_ratioi·log2z_ratioi+w_ratioi·log2w_raatioi)
若两个日志变量的熵值接近,则认为它们变量取值类型的多样性接近,则两个日志变量的语义相似;
所述步骤3中,从变量值的统计特性相似性刻画日志变量之间的相似性具体为:
若日志变量的取值全为数值型,则计算变量值的均值、方差统计特性,对数值型变量进行区分;统计特性包括Avg与Var,分别代表日志变量的平均值与方差;
其中,Num(Ci)为日志变量Ci的所有取值个数;Vk(Ci)为日志变量Ci中的第k个取值;
统计特性之间的相似性计算如下公式所示:
所述步骤3中,从变量位置相似性刻画日志变量之间的相似性具体为:
所述变量位置是指一个日志模式中变量在所有变量列表中的相对位置,变量位置的相似性计算公式如下:
其中,Ci′和Cj′分别代表日志变量Ci和Cj在所属日志模式中的变量位置,s1和s2分别代表日志变量Ci和Cj所属日志模式含有的变量个数;
所述步骤3中,从邻居变量相似性刻画日志变量之间的相似性具体为:
对于某个日志变量而言,将该日志变量所属日志模式的其他变量定义为该变量的邻居变量;假设日志模式pa(Ca1,Ca2,…,Cam),日志模式pb(Cb1,Cb2,…,Cbm),其中,Cai、Cbj分别代表日志模式pa和日志模式pb中的日志变量;计算日志变量Cai和日志变量Cbj的邻居变量相似性公式如下:
N(Cai,Cbj)=max(SED(Ca1,Cb1),SED(Ca1,Cb2),...,SED(Ca1,Cb(j-1)),SED(Ca2,Cb1),SED(Ca2,Cb2),...,SED(Ca2,Cb(j-1)),…SED(Ca(i-1),Cb1),SED(Ca(i-1),Cb2),...,SED(Ca(i-1),Cb(j-1)),SED(Ca(i+1),Cb(j+1)),SED(Ca(i+1),Cb(j+2)),...,SED(Ca(i+1),Cbn),…SED(Cam,Cb(j+1)),SED(Cam,Cb(j+2)),...,SED(Cam,Cbn))
其中,SED(Cam,Cbn)表示日志变量Cam和日志变量Cbn的编辑距离相似性。
2.根据权利要求1所述的日志变量语义标注方法,其特征在于,所述步骤2中判断变量所在位置的附近单词的词性具体为:
若所述变量位于日志模式中的最后一个位置,则顺序往前找,找到的第一个不含特殊符号的单词,记为候选语义单词;若候选语义单词是名词,则将其作为该变量的语义单词,否则认为日志模式中没有直接表示该变量语义的单词;
若所述变量位于日志模式的中间位置,则优先判断前驱单词,若在前驱单词中找到候选语义单词,并且是名词,则将候选语义单词作为日志变量的语义单词;否则判断直接后继单词是否满足条件,若前驱单词和直接后继单词中,都没有满足条件的单词,则认为日志模式中没有直接表示该日志变量的语义单词;
若所述变量位于日志模式的第一个位置,则判定为日志模式中没有直接表示该变量语义的单词。
3.根据权利要求1所述的日志变量语义标注方法,其特征在于,所述步骤4中的推断算法是对所有属性的相似度进行加权求和,计算出总的相似度得分,然后设置相似度阈值,根据总的相似度得分位于哪个相似度区间,来判断是否相似;如公式所示:
其中,Ci和Cj为待比较的日志变量,st为相似度阈值;
将相似性维度分为两类,一类为基于内容的相似性维度,一类为基于结构的相似性维度;所述变量值的重叠性、变量值的分布特性、变量值的多样性相似性、变量值的统计特性相似性在刻画相似性时均从变量的取值考虑,属于基于内容的相似性刻画;所述变量位置相似性和邻居变量相似性考虑的是变量在所属日志模式中的分布情况,属于基于结构的相似性刻画;在判断两个日志变量是否相似时,首先应该判断日志变量之间的内容相似性是否达到要求,在内容相似性满足条件的前提下,再计算日志变量之间的结构相似性;
利用已知日志变量来推断未知日志变量的语义的具体过程为:对于输入的某个未知日志变量Cx,遍历已知日志变量集{C1,C2,…,Cn},依次计算其内容相似性;从内容相似性的计算结果中,选出相似性最大的k个日志变量,并得到其子日志变量集{Cv1,Cv2,…,Cvk};再使用未知日志变量Cx,遍历子日志变量集{Cv1,Cv2,…,Cvk},依次计算其结构相似性;从结构相似性的计算结果中,选出相似性最大的1个日志变量,该日志变量的语义即为未知日志变量的语义。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111032003.XA CN113657121B (zh) | 2021-09-03 | 2021-09-03 | 一种日志变量语义标注方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111032003.XA CN113657121B (zh) | 2021-09-03 | 2021-09-03 | 一种日志变量语义标注方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113657121A CN113657121A (zh) | 2021-11-16 |
CN113657121B true CN113657121B (zh) | 2023-04-07 |
Family
ID=78482829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111032003.XA Active CN113657121B (zh) | 2021-09-03 | 2021-09-03 | 一种日志变量语义标注方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113657121B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1853180A (zh) * | 2003-02-14 | 2006-10-25 | 尼维纳公司 | 语义知识提取、管理、捕获、共享、发现、交付、表示之系统与方法 |
CN103136360A (zh) * | 2013-03-07 | 2013-06-05 | 北京宽连十方数字技术有限公司 | 一种互联网行为标注引擎及对应该引擎的行为标注方法 |
US9501530B1 (en) * | 2014-04-01 | 2016-11-22 | Google Inc. | Systems and methods for selecting content |
CN107924342A (zh) * | 2015-07-27 | 2018-04-17 | 微软技术许可有限责任公司 | 从移动应用竖井向授权的第三方应用的自动化数据传送 |
CN108121593A (zh) * | 2017-12-22 | 2018-06-05 | 四川大学 | 一种虚拟机进程异常行为检测方法与系统 |
CN112527769A (zh) * | 2020-12-09 | 2021-03-19 | 重庆大学 | 一种针对软件变更日志生成方法的自动化质量保证框架 |
CN113312447A (zh) * | 2021-03-10 | 2021-08-27 | 天津大学 | 基于概率标签估计的半监督日志异常检测方法 |
-
2021
- 2021-09-03 CN CN202111032003.XA patent/CN113657121B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1853180A (zh) * | 2003-02-14 | 2006-10-25 | 尼维纳公司 | 语义知识提取、管理、捕获、共享、发现、交付、表示之系统与方法 |
CN103136360A (zh) * | 2013-03-07 | 2013-06-05 | 北京宽连十方数字技术有限公司 | 一种互联网行为标注引擎及对应该引擎的行为标注方法 |
US9501530B1 (en) * | 2014-04-01 | 2016-11-22 | Google Inc. | Systems and methods for selecting content |
CN107924342A (zh) * | 2015-07-27 | 2018-04-17 | 微软技术许可有限责任公司 | 从移动应用竖井向授权的第三方应用的自动化数据传送 |
CN108121593A (zh) * | 2017-12-22 | 2018-06-05 | 四川大学 | 一种虚拟机进程异常行为检测方法与系统 |
CN112527769A (zh) * | 2020-12-09 | 2021-03-19 | 重庆大学 | 一种针对软件变更日志生成方法的自动化质量保证框架 |
CN113312447A (zh) * | 2021-03-10 | 2021-08-27 | 天津大学 | 基于概率标签估计的半监督日志异常检测方法 |
Non-Patent Citations (3)
Title |
---|
Feng Zou 等.Spray: Streaming Log Parser for Real-Time Analysis.《Security and Communication Networks》.2022,第1-11页. * |
杨瑞朋.日志异常检测与诊断关键技术研究.《中国博士学位论文全文数据库 信息科技辑》.2021,(第undefined期),I139-19. * |
黄震华 ; 张佳雯 ; 张波 ; 喻剑 ; 向阳 ; 黄德双 ; .语义推荐算法研究综述.电子学报.2016,(第09期),第2262-2275页. * |
Also Published As
Publication number | Publication date |
---|---|
CN113657121A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162591B (zh) | 一种面向数字教育资源的实体对齐方法及系统 | |
CN109446885B (zh) | 一种基于文本的元器件识别方法、系统、装置和存储介质 | |
CN110175585B (zh) | 一种简答题自动批改系统及方法 | |
WO2018153215A1 (zh) | 一种自动生成语义相近句子样本的方法 | |
CN110782892B (zh) | 语音文本纠错方法 | |
CN107145514B (zh) | 基于决策树和svm混合模型的中文句型分类方法 | |
CN110347701B (zh) | 一种面向实体检索查询的目标类型标识方法 | |
CN109271524B (zh) | 知识库问答系统中的实体链接方法 | |
CN111191051B (zh) | 一种基于中文分词技术的应急知识图谱的构建方法及系统 | |
CN114548321B (zh) | 基于对比学习的自监督舆情评论观点对象分类方法 | |
CN112613293B (zh) | 摘要生成方法、装置、电子设备及存储介质 | |
CN109614626A (zh) | 基于万有引力模型的关键词自动抽取方法 | |
CN111984790B (zh) | 一种实体关系抽取方法 | |
CN112528022A (zh) | 主题类别对应的特征词提取和文本主题类别识别方法 | |
CN115062600A (zh) | 一种基于加权抽象语法树的代码抄袭检测方法 | |
CN118133221A (zh) | 一种隐私数据分类分级方法 | |
CN111339258B (zh) | 基于知识图谱的大学计算机基础习题推荐方法 | |
WO2024087754A1 (zh) | 一种多维度文本综合辨识方法 | |
CN115438141B (zh) | 一种基于知识图谱模型的信息检索方法 | |
CN113657121B (zh) | 一种日志变量语义标注方法 | |
CN110334204B (zh) | 一种基于用户记录的习题相似度计算推荐方法 | |
CN114880994B (zh) | 一种直白文本到反讽文本的文本风格转换方法及装置 | |
CN113420564B (zh) | 一种基于混合匹配的电力铭牌语义结构化方法及系统 | |
Hübscher et al. | ExtracTable: Extracting Tables from Raw Data Files | |
CN111538813A (zh) | 一种分类检测方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |