CN110929028A - 一种日志分类方法及装置 - Google Patents
一种日志分类方法及装置 Download PDFInfo
- Publication number
- CN110929028A CN110929028A CN201911060648.7A CN201911060648A CN110929028A CN 110929028 A CN110929028 A CN 110929028A CN 201911060648 A CN201911060648 A CN 201911060648A CN 110929028 A CN110929028 A CN 110929028A
- Authority
- CN
- China
- Prior art keywords
- log
- classification
- word
- frequency
- feature
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3346—Query execution using probabilistic model
Abstract
本发明公开了一种日志分类方法及装置,其中,方法包括:确定待分类日志中各特征词出现的次数,根据待分类日志中各特征词出现的次数和分类模型,确定待分类日志所属的日志分类;分类模型是根据样本日志中每个特征词在每个日志分类下的条件概率确定的;其中,每个特征词在每个日志分类下的条件概率是根据词频模型和调频模型确定的;词频模型包括每个特征词在每个日志分类下出现的次数,调频模型包括每个特征词在每个日志分类下的调整参数,调整参数用于调整对应的特征词在对应的日志分类下的次数。该技术方案将机器学习算法与知识工程相结合,克服样本集中训练数据不均衡的问题,从而提升模型分类准确率。
Description
技术领域
本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种日志分类方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,机器学习技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对机器学习技术提出的更高的要求。
目前常见的日志分类思路是基于机器学习的文本分类算法。文本分类算法以统计理论为基础,利用算法让机器具有类似人类般的自动学习能力,即对已知的训练数据做统计分析从而获得规律,再运用规律对未知数据做预测分析。由于机器学习技术在文本分类领域有着良好的实际表现,已经成为了日志分析与分类领域的主流。
在对分类模型进行训练时,通常会遇到训练数据不均衡的问题,以错误日志为例,级别越高、越严重的错误,一般出现的概率就越小,故此类型的样本数量就越少。而使用不均衡的样本集进行模型训练,往往不能得到很好的效果,模型分类的准确率较低。
发明内容
本发明实施例提供一种日志分类方法及装置,将机器学习算法与知识工程相结合,克服样本集中训练数据不均衡的问题,从而提升模型分类准确率。
本发明实施例提供的一种日志分类方法,包括:
确定待分类日志中各特征词出现的次数;
根据所述待分类日志中各特征词出现的次数和分类模型,确定所述待分类日志所属的日志分类;所述分类模型是根据样本日志中每个特征词在每个日志分类下的条件概率确定的;
其中,每个特征词在每个日志分类下的条件概率是根据词频模型和调频模型确定的;所述词频模型包括每个特征词在每个日志分类下出现的次数,所述调频模型包括每个特征词在每个日志分类下的调整参数,所述调整参数用于调整对应的特征词在对应的日志分类下的次数。
可选的,所述每个特征词在每个日志分类下的条件概率是根据词频模型和调频模型确定的,包括:
针对每一个特征词在每个日志分类下执行下述操作:
确定所述日志分类下各特征词出现的次数的总和;
根据所述特征词在所述词频模型中的次数、所述特征词在所述调频模型中的调整参数、所述日志分类下各特征词出现的次数的总和,确定所述特征词在所述日志分类下的条件概率。
可选的,所述词频模型为m行×n列的词频矩阵,所述调频模型为m行×n列的调频矩阵;所述词频矩阵中第i行对应的日志分类与所述调频矩阵中第i行对应的日志分类相同,所述词频矩阵中第j列对应的特征词与所述调频矩阵中第j列对应的特征词相同;0<i≤m,0<j≤n;
所述根据所述特征词在所述词频模型中的次数、所述特征词在所述调频模型中的调整参数、所述日志分类下各特征词出现的次数的总和,确定所述特征词在所述日志分类下的条件概率,包括:
根据公式(1)确定所述特征词在所述日志分类下的条件概率;
所述公式(1)为:
其中,xj为第j列的特征词;Ti为第i行的日志分类;P(xj|Ti)为在Ti下xj的条件概率;A(i,j)为在第i行对应的日志分类中第j列对应的特征词出现的次数;B(i,j)为在第i行对应的日志分类中第j列对应的特征词的调整参数;count(Ti)为Ti下的各特征词出现的次数的总和;α为平滑系数;n为调频矩阵或调频矩阵的列数。
可选的,所述分类模型是根据样本日志中每个特征词在每个日志分类下的条件概率确定的,包括:
针对每一个特征词,确定所述特征词在各日志分类下的条件概率的总和;将所述特征词在各日志分类下的条件概率与所述特征词在各日志分类下的条件概率的总和的比值确定为所述特征词在各日志分类下的特征权重;
将各特征词在各日志分类中的特征权重组成特征权重矩阵,将所述特征权重矩阵作为所述分类模型。
上述技术方案中,采用调频矩阵对某些样本日志较少的日志类别中的特征词的词频进行调整,以此放大该特征词在此日志分类下的词频,模拟出将该日志类别中样本日志的数量增多的效果,从而减少各日志类别对应的样本日志不均衡所导致的模型训练不准确的问题。
相应的,本发明实施例还提供了一种日志分类装置,包括:
确定单元、分类单元和训练单元;
所述确定单元,用于确定待分类日志中各特征词出现的次数;
所述分类单元,用于根据所述待分类日志中各特征词出现的次数和分类模型,确定所述待分类日志所属的日志分类;所述分类模型是所述训练单元根据样本日志中每个特征词在每个日志分类下的条件概率确定的;
其中,每个特征词在每个日志分类下的条件概率是所述训练单元根据词频模型和调频模型确定的;所述词频模型包括每个特征词在每个日志分类下出现的次数,所述调频模型包括每个特征词在每个日志分类下的调整参数,所述调整参数用于所述训练单元调整对应的特征词在对应的日志分类下的次数。
可选的,所述训练单元具体用于:
针对每一个特征词在每个日志分类下执行下述操作:
确定所述日志分类下各特征词出现的次数的总和;
根据所述特征词在所述词频模型中的次数、所述特征词在所述调频模型中的调整参数、所述日志分类下各特征词出现的次数的总和,确定所述特征词在所述日志分类下的条件概率。
可选的,所述词频模型为m行×n列的词频矩阵,所述调频模型为m行×n列的调频矩阵;所述词频矩阵中第i行对应的日志分类与所述调频矩阵中第i行对应的日志分类相同,所述词频矩阵中第j列对应的特征词与所述调频矩阵中第j列对应的特征词相同;0<i≤m,0<j≤n;
所述训练单元具体用于:
根据公式(1)确定所述特征词在所述日志分类下的条件概率;
所述公式(1)为:
其中,xj为第j列的特征词;Ti为第i行的日志分类;P(xj|Ti)为在Ti下xj的条件概率;A(i,j)为在第i行对应的日志分类中第j列对应的特征词出现的次数;B(i,j)为在第i行对应的日志分类中第j列对应的特征词的调整参数;count(Ti)为Ti下的各特征词出现的次数的总和;α为平滑系数;n为调频矩阵或调频矩阵的列数。
可选的,所述训练单元具体用于:
针对每一个特征词,确定所述特征词在各日志分类下的条件概率的总和;将所述特征词在各日志分类下的条件概率与所述特征词在各日志分类下的条件概率的总和的比值确定为所述特征词在各日志分类下的特征权重;
将各特征词在各日志分类中的特征权重组成特征权重矩阵,将所述特征权重矩阵作为所述分类模型。
相应的,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述日志分类方法。
相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述日志分类方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统架构的示意图;
图2为本发明实施例提供的一种日志分类方法的流程示意图;
图3为本发明实施例提供的一种确定条件概率的流程示意图;
图4为本发明实施例提供的一种确定特征权重的流程示意图;
图5为本发明实施例提供的另一种日志分类方法的流程示意图;
图6为本发明实施例提供的一种日志分类装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了更好的解释本发明实施例,先对本发明实施例中所涉及朴素贝叶斯分类算法解释如下:
目前常见的分类算法有许多种,例如贝叶斯、神经网络、决策树、KNN(K-NearestNeighbor,k最邻近分类算法)、SVM(Support Vector Machine,支持向量机)等。其中,贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。贝叶斯定理是以英国数学家贝叶斯命名,用来解决两个条件概率之间的关系问题。简单的说就是在已知P(A|B)时如何获得P(B|A)的概率。朴素贝叶斯假设特征P(A)在特定结果P(B)下是独立的。贝叶斯算法通过已知的P(A|B),P(A)和P(B)三个概率计算P(B|A)发生的概率,其计算方法可归结于贝叶斯公式,贝叶斯公式可如公式(2)所示。
在上述贝叶斯公式中,每一种概率都有一个特定的名字:
P(B)是事件B在样本空间中发生的概率,也叫事件B的先验概率。
P(A)是事件A在样本空间中发生的概率,也叫事件A的先验概率。
P(A|B)是已知B发生后A的条件概率,叫做似然函数。
P(B|A)是已知A发生后B的条件概率,叫做后验概率。
P(A|B)/P(A)是调整因子,也被称作标准似然度。
朴素贝叶斯的基本方法:在统计数据的基础上,依据条件概率公式,计算当前特征的样本属于某个分类的概率,选最大的概率分类。对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。
计算流程如下:
(1)x={a1,a2,……,am}为待分类项,每个a为x的一个特征属性;
(2)有类别集合C={y1,y2,……,yn};
(3)分别计算P(y1∣x),P(y2∣x),……,P(yn∣x);
(4)P(yk∣x)=max{P(y1∣x),P(y2∣x),……,P(yn∣x)};
图1示例性的示出了本发明实施例提供日志分类方法所适用的系统架构,该系统架构可以包括数据源模块、前台模块、后台模块、分类算法模块以及数据库;各模块功能具体如下:
数据源模块:提供本发明实施例中训练模型所使用的错误日志文本,也可以称为是源错误日志。
前台模块:负责提供Web界面,主要用于展示日志分类信息、为用户提供数据管理等操作入口。
后台模块:主要用于日志处理,负责从数据源拉取原始日志文本,并对其进行清洗(以正则匹配等方式过滤无价值的文本内容)、去重(合并相似度过高的样本),最后将生成的样本集(训练集)存储至数据库中。除此之外,后台模块还负责提供数据操作接口,以及自动化调用分类算法模块进行模型训练,并将模型参数存储至数据库中。
分类算法模块:负责分类器模型的训练与样本日志的分类功能。
数据库:用于存储处理后的规范样本日志(错误样本日志集)、调频矩阵信息、配置数据、分类信息等各类型数据。
基于上述描述,图2示例性的示出了本发明实施例提供的一种日志分类方法的流程,该流程可以由日志分类装置执行,该装置可以位于分类算法模块中,可以是该分类算法模块。
如图2所示,该流程具体包括:
步骤201,确定待分类日志中各特征词出现的次数;
步骤202,根据待分类日志中各特征词出现的次数和分类模型,确定待分类日志所属的日志分类。
本发明实施例中,特征词是指根据样本集中多个样本日志确定的词语或词组,由于样本日志实质上是文本格式,不能直接参与计算,所以需要先将样本日志进行向量化。一种实现方式中,可以采用词集模型对样本日志进行向量化,以词语为基础处理单元,先将样本集中的所有词汇进行汇总,得到大小为N的词库,并将样本集中的每个样本日志映射成一个N维的向量,每个维度上的值代表该样本日志中存在特征词的个数(也可以说是该样本日志中存在特征词的词频),该N维的向量体现了样本日志中词频的信息。
举例来说,假设某样本集汇总生成大小为10的词库:(“async”“at”“connection”“db”“error”“jdbc”“mysql”“redis”“timeout”“user”);
现将某样本日志“mysql jdbc connection timeout error”以上述规则进行向量化,生成长度为10的向量:(0 0 1 0 1 1 1 0 1 0);
上述例子中,使用词集模型进行向量化时,因为是对单独的每个词语进行词频统计,会出现语序信息丢失问题:例如词组dead lock会被拆分成dead与lock两个独立特征进行统计,而词组本身的语义则丢失了。为了解决这个问题,本发明实施例在文本向量化时可以使用n个词语组合的方式进行文本拆分,将长度为n的相邻词语组合成新的特征,并加入词库,其中n可以根据经验设置,例如,n设置为2时,可以将样本日志中的两个连续的词语作为一个词语组合,从而得到新的特征词。
还是以上文样本日志为例,在n=2的情况下,会生成以下特征词:
(“mysql”“jdbc”“connection”“timeout”“error”“mysql jdbc”“jdbcconnection”“connection timeout”“timeout error”);
使用n个词语组合的方式进行文本拆分,可以有效保留有语义的特征词。
在确定出待分类日志中各特征词出现的次数之后,同样可以将该待分类日志进行向量化,如生成长度为10的向量:(0 1 1 0 1 1 1 1 1 0),然后根据该待分类日志生成的向量与分类模型,结合贝叶斯分类算法,确定该待分类日志所属的日志分类。
本发明实施例中,分类模型是根据样本日志中每个特征词在每个日志分类下的条件概率确定的,其中,每个特征词在每个日志分类下的条件概率是根据词频模型和调频模型确定的。
具体的,词频模型包括每个特征词在每个日志分类下出现的次数,词频模型可以是以词频矩阵的形式表现,也可以是以词频数组或者其他的形式表现。词频模型可以是根据样本集中各样本日志中的特征词确定。
以根据样本集中各样本日志中的特征词确定词频矩阵为例,进行说明如下:
存在样本集中各样本日志如表1所示,即样本集中有三个日志分类,分别是httperror、db error和redis error;http error中包括样本日志1、样本日志2、样本日志3,dberror中包括样本日志4、样本日志5、样本日志6、样本日志7,redis error中包括样本日志8、样本日志9。且每个样本日志对应自己的向量,如样本日志1对应向量为(2 0 3 0 4 0 00 3)。
表1
对表1中各样本日志进行统计,确定每个日志分类中各特征词出现次数的总和,统计之后生成的词频矩阵可以如表2所示。如async在http error中出现的次数为5次,async在db error中出现的次数为0次,async在redis error中出现的次数为1次。可以观察到,如果特征词在某日志分类下的出现的次数很高,则它与此分类的相关性一般也很高。
表2词频矩阵
async | at | connection | db | error | jdbc | mysql | redis | timeout | |
http error | 5 | 2 | 10 | 0 | 12 | 0 | 0 | 0 | 8 |
db error | 0 | 5 | 8 | 10 | 15 | 22 | 22 | 0 | 12 |
redis error | 1 | 12 | 4 | 0 | 8 | 0 | 0 | 20 | 5 |
在确定出词频模型后,可以根据词频模型确定调频模型。该调频模型包括每个特征词在每个日志分类下的调整参数,调整参数用于调整对应的特征词在对应的日志分类下的次数,调频模型可以是以调频矩阵的形式表现,也可以是以调频数组或者其他的形式表现。
调频矩阵是对词频矩阵的一个调整,它的行数和列数与词频矩阵保持一致,调频矩阵用于对朴素贝叶斯分类算法进行改进。如表3所示,在调频矩阵中包括每个特征词在每个日志分类下的调整参数,该调整参数用于根据人工规则对特征词在对应的日志分类下的次数(词频)进行调整。如:jdbc、mysql等特征在绝大多数情况下,都会出现在db error的日志信息中,一般出现了此类型特征词,则可以断定此日志信息属于db error分类。所以我们可以通过配置预设值来增大特征的词频,进而提高特征在db error分类下的权重,令包含这些特征的日志信息有更高概率被分类到db error下。相反,我们也可以通过配置预设值来减少特征的词频,例如,通过配置一个小于1的调整参数,来减少特征词在某分类下的出现的次数,进而降低特征词在此分类下的权重。
调频矩阵是人工规则的矩阵化体现,其每一项的初始参数都为1,即默认不调整。我们可以通过调整调频矩阵中每一项的调整参数,来精确控制每一个特征词在特定分类下的权重,将现有的知识规则与朴素贝叶斯分类算法相结合,进而提高模型的分类准确率。
表3调频矩阵
async | at | connection | db | error | jdbc | mysql | redis | timeout | |
http error | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
db error | 0.2 | 1 | 1 | 20 | 1 | 20 | 20 | 1 | 1 |
redis error | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
在确定出词频矩阵和调频矩阵之后,即可以根据词频矩阵和调频矩阵确定每个特征词在每个日志分类下的条件概率。为了方便描述,可以以其中的任一个特征词在任一个日志分类下为例进行说明,如图3所示的流程图中:
步骤301,确定日志分类下各特征词出现的次数的总和;
如公式(3)所示:
其中,Ti为日志分类;count(Ti)为Ti下各特征词出现的次数的总和;A(i,j)为Ti下关键词xj出现的次数,也即词频。
以表2为例,Ti为http,则Ti下各特征词出现的次数的总和为:count(http)=5+2+10+0+12+0+0+0+8=37,同理,Ti为db时,各特征词出现的次数的总和count(db)为94;Ti为redis时,各特征词出现的次数的总和count(redis)为50。
步骤302,根据特征词在词频模型中的次数、特征词在调频模型中的调整参数、日志分类下各特征词出现的次数的总和,确定特征词在日志分类下的条件概率。
在一种实现方式中,词频模型为m行×n列的词频矩阵,调频模型为m行×n列的调频矩阵,词频矩阵中第i行对应的日志分类与调频矩阵中第i行对应的日志分类相同,词频矩阵中第j列对应的特征词与调频矩阵中第j列对应的特征词相同;0<i≤m,0<j≤n。在根据特征词在词频模型中的次数、特征词在调频模型中的调整参数、日志分类下各特征词出现的次数的总和,确定特征词在日志分类下的条件概率时,可以是根据公式(1)确定。
其中,公式(1)为:
其中,xj为第j列的特征词;
Ti为第i行的日志分类;
P(xj|Ti)为在Ti下xj的条件概率;
A(i,j)为在第i行对应的日志分类中第j列对应的特征词出现的次数;
B(i,j)为在第i行对应的日志分类中第j列对应的特征词的调整参数;
count(Ti)为Ti下的各特征词出现的次数的总和;
α为平滑系数,给所有特征词额外增加一个较小的词频值,用于降低词频为0的情况下,条件概率为0,为分类计算带来的负面影响。
n为调频矩阵或调频矩阵的列数。
结合表2的词频矩阵和表3的调频矩阵举例说明,根据公式(1)可以确定出每个日志分类中每个特征词的条件概率可以如表4所示,此处可以假设α=1。
表4条件概率矩阵
async | at | connection | db | error | jdbc | mysql | redis | timeout | |
http error | 0.13 | 0.07 | 0.24 | 0.02 | 0.28 | 0.02 | 0.02 | 0.02 | 0.20 |
db error | 0.01 | 0.06 | 0.09 | 1.95 | 0.16 | 4.28 | 4.28 | 0.01 | 0.13 |
redis error | 0.03 | 0.22 | 0.08 | 0.02 | 0.15 | 0.02 | 0.02 | 0.36 | 0.10 |
一种实现方式中,可以将每个日志分类中每个特征词的条件概率组成的条件概率矩阵作为分类模型,此时,分类模型可以如表4所示。另一种实现方式中,考虑到条件概率的值一般都非常小,常在10e-3量级下,所以将条件概率进行归一,得到的新的矩阵,用于更好地体现每个特征词在不同分类下的影响度,我们将其称为特征词的权重。特征词在某一分类下的权重越高,则表示此携带此特征词的样本日志有更高的概率被分到此类别下,可以在确定出条件概率矩阵后提取特征权重矩阵,具体可以如图4示出的流程图。
步骤401,针对每一个特征词,确定特征词在各日志分类下的条件概率的总和;将特征词在各日志分类下的条件概率与特征词在各日志分类下的条件概率的总和的比值确定为特征词在各日志分类下的特征权重;
可以根据公式(4)确定各特征词在各日志分类中的特征权重,其中公式(4)可以为:
其中,W(i,j)为xj在Ti下的特征权重;m为词频矩阵或调频矩阵的行数。
步骤402,将各特征词在各日志分类中的特征权重组成特征权重矩阵,将特征权重矩阵作为分类模型。
结合表4的条件概率矩阵,确定特征权重矩阵如表5所示。
表5特征权重矩阵
async | at | connection | db | error | jdbc | mysql | redis | timeout | |
http error | 0.75 | 0.19 | 0.58 | 0.01 | 0.48 | 0.01 | 0.01 | 0.06 | 0.46 |
db error | 0.06 | 0.17 | 0.21 | 0.98 | 0.26 | 0.99 | 0.99 | 0.03 | 0.30 |
redis error | 0.19 | 0.64 | 0.21 | 0.01 | 0.26 | 0.00 | 0.00 | 0.92 | 0.24 |
模型训练完成之后,就可以开始对待分类日志进行分类预测了。与模型训练过程一致,在分类之前同样需要对待分类日志进行向量化,只是在对待分类日志进行向量化时,必须要使用样本集向量化时生成的词库。在向量化完成之后,分类概率的计算过程与朴素贝叶斯分类过程没有区别,直接使用贝叶斯公式计算待分类日志在每个日志分类下的概率,并取概率最大的一个日志分类作为最终分类结果,在此不再多加阐述。
为了更好的解释本发明实施例,下面提供另一种日志分类流程,如图5所示,具体如下:
左半部分流程是模型训练过程,获取训练集,该训练集中包括各样本日志,并对各样本日志进行文本向量化,确定出各日志分类下的各特征词的词频,并计算各日志分类下的各特征词的条件概率,进而生成分类模型。
右半部分流程是模型使用过程,获取待分类日志,对待分类日志进行文本向量化,结合分类模型并使用贝叶斯公式计算该待分类日志在各日志分类中的概率,进而将最大概率对应的日志分类确定为该待分类日志所属的日志分类。
本发明实施例中采用调频矩阵具有如下有益效果:
(1)通过调频矩阵减少样本不均衡带来的影响。
样本不均衡是机器学习领域常见的问题。以分类为例,理想情况下,样本集中的不同类别的样本数最好是均匀分布的,即保证每一个类别都有足够的样本来进行模型训练。但在现实条件下,样本分布的不均衡性是广泛存在的。在日志分类领域中,不同级别、不同类型的日志,其出现的频率往往都是不同的。例如,http connect time out是常见的网络请求异常,其出现的概率很高,每天都有可能发生;而JVM(Java Virtual Machine,Java虚拟机)的OOM(out of memory)是很难出现,但非常严重的错误。在样本集中,很明显http的异常样本要比JVM异常样本要多很多,这就造成了样本不均衡问题,进而影响JVM异常样本的分类准确度。
在本方法中,我们可以通过调频矩阵对那些样本数过少的类别设置一个很高的调整参数,以此放大特征词在此日志分类下的词频,模拟出向样本集增加此类别样本的效果,进而减小样本不均衡带来的影响。以JVM异常为例,可以调整JVM异常样本中最为显著的特征词对应的调整参数,如“out of memory”等特征。
(2)通过调频矩阵进行快速样本标注,节省人力成本。
样本标注是一个非常令人头痛的事情。要想训练出一个高质量的模型,样本集的大小是一个非常关键的决定性因素。而在以往,样本标注都是需要手动逐个进行标注,动辄成千上万的样本,需要耗费不小的人力开销。
在本方发明实施例中,我们可以通过确定出的调频矩阵对后续需要进行分类的样本集进行初始化标注,有效地减少人工标注工作量。在错误样本日志中,大部分的样本都带有能够显著区分类别的特征,比如”mysql”“redis”“gns”“http”“timeout”“out ofmemory”等,基本上只要出现了这类关键字,就能够断定样本日志是属于某个类别,我们将这一类特征称为初始化特征。在收集到足够初始化特征后,我们通过调频矩阵,为此类特征设置成一个非常大的调整参数(例如1000以上),然后再对待分类样本集进行分类,将其结果作为分类标签;大部分样本能够正确落到对应分类下,小部分不包含初始化特征的样本落入默认的unknown分类下,再手动对其进行标记即可。
(3)对分类错误样本进行回归分析,结合调频矩阵进行特征调整。
模型分类可能会出错。在基于词频模型的朴素贝叶斯分类算法下,会产生一个问题:我们发现某个样本被分到错误的类别,然后我们将此样本手动纠正,并放入样本集,重新训练模型,并再次对该样本进行分类—结果模型依旧给出之前的错误分类。这是因为词频模型是将同一分类下的所有样本进行词频统计,单独调整某一个样本只是杯水车薪,无法达到纠正模型的目的。
在本发明实施例中,我们可以使用模型训练得到的特征权重矩阵,对样本进行回归分析。举例来说,现有一处理后的样本日志“银行报告sys TransDAO certNo查询超时costTime”,其所属的类别本应是“外部合作伙伴业务异常”,但模型将其分类成默认的“unknown”类别。我们通过特征权重矩阵查询到,该样本在“unknown”分类下权重最高的5个特征如下:
(“银行报告”,0.8652419428703651)
(“查询超时”,0.5142907974010534)
(“sys”,0.5142907974010534)
(“超时”,0.15651730037704084)
(“costtime”,0.1881949392920741)
从中我们发现,“银行报告”这个特征在“unknown”分类下的权重最大,而实际上“银行”很明显应该属于外部合作伙伴的特征范畴,故我们需要调整此特征在这两个类别的权重。我们可以结合调频矩阵,将“银行报告”此特征词在“unknown”分类下的调整参数调低,并将“外部合作伙伴业务异常”分类下的调整参数调高。调整完成后,重新训练模型,并重新进行分类测试,结果该样本已经成功被归结到“外部合作伙伴业务异常”分类之下了。
基于同一发明构思,图6示例性的示出了本发明实施例提供的一种日志分类装置的结构,该装置可以执行日志分类方法的流程。
该装置包括:
确定单元601、分类单元602和训练单元603;
所述确定单元601,用于确定待分类日志中各特征词出现的次数;
所述分类单元602,用于根据所述待分类日志中各特征词出现的次数和分类模型,确定所述待分类日志所属的日志分类;所述分类模型是所述训练单元603根据样本日志中每个特征词在每个日志分类下的条件概率确定的;
其中,每个特征词在每个日志分类下的条件概率是所述训练单元603根据词频模型和调频模型确定的;所述词频模型包括每个特征词在每个日志分类下出现的次数,所述调频模型包括每个特征词在每个日志分类下的调整参数,所述调整参数用于所述训练单元603调整对应的特征词在对应的日志分类下的次数。
可选的,所述训练单元603具体用于:
针对每一个特征词在每个日志分类下执行下述操作:
确定所述日志分类下各特征词出现的次数的总和;
根据所述特征词在所述词频模型中的次数、所述特征词在所述调频模型中的调整参数、所述日志分类下各特征词出现的次数的总和,确定所述特征词在所述日志分类下的条件概率。
可选的,所述词频模型为m行×n列的词频矩阵,所述调频模型为m行×n列的调频矩阵;所述词频矩阵中第i行对应的日志分类与所述调频矩阵中第i行对应的日志分类相同,所述词频矩阵中第j列对应的特征词与所述调频矩阵中第j列对应的特征词相同;0<i≤m,0<j≤n;
所述训练单元603具体用于:
根据公式(1)确定所述特征词在所述日志分类下的条件概率;
所述公式(1)为:
其中,xj为第j列的特征词;Ti为第i行的日志分类;P(xj|Ti)为在Ti下xj的条件概率;A(i,j)为在第i行对应的日志分类中第j列对应的特征词出现的次数;B(i,j)为在第i行对应的日志分类中第j列对应的特征词的调整参数;count(Ti)为Ti下的各特征词出现的次数的总和;α为平滑系数;n为调频矩阵或调频矩阵的列数;
可选的,所述训练单元603具体用于:
针对每一个特征词,确定所述特征词在各日志分类下的条件概率的总和;将所述特征词在各日志分类下的条件概率与所述特征词在各日志分类下的条件概率的总和的比值确定为所述特征词在各日志分类下的特征权重;
将各特征词在各日志分类中的特征权重组成特征权重矩阵,将所述特征权重矩阵作为所述分类模型。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述日志分类方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述日志分类方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种日志分类方法,其特征在于,包括:
确定待分类日志中各特征词出现的次数;
根据所述待分类日志中各特征词出现的次数和分类模型,确定所述待分类日志所属的日志分类;所述分类模型是根据样本日志中每个特征词在每个日志分类下的条件概率确定的;
其中,每个特征词在每个日志分类下的条件概率是根据词频模型和调频模型确定的;所述词频模型包括每个特征词在每个日志分类下出现的次数,所述调频模型包括每个特征词在每个日志分类下的调整参数,所述调整参数用于调整对应的特征词在对应的日志分类下的次数。
2.如权利要求1所述的方法,其特征在于,所述每个特征词在每个日志分类下的条件概率是根据词频模型和调频模型确定的,包括:
针对每一个特征词在每个日志分类下执行下述操作:
确定所述日志分类下各特征词出现的次数的总和;
根据所述特征词在所述词频模型中的次数、所述特征词在所述调频模型中的调整参数、所述日志分类下各特征词出现的次数的总和,确定所述特征词在所述日志分类下的条件概率。
3.如权利要求2所述的方法,其特征在于,所述词频模型为m行×n列的词频矩阵,所述调频模型为m行×n列的调频矩阵;所述词频矩阵中第i行对应的日志分类与所述调频矩阵中第i行对应的日志分类相同,所述词频矩阵中第j列对应的特征词与所述调频矩阵中第j列对应的特征词相同;0<i≤m,0<j≤n;
所述根据所述特征词在所述词频模型中的次数、所述特征词在所述调频模型中的调整参数、所述日志分类下各特征词出现的次数的总和,确定所述特征词在所述日志分类下的条件概率,包括:
根据公式(1)确定所述特征词在所述日志分类下的条件概率;
所述公式(1)为:
其中,xj为第j列的特征词;Ti为第i行的日志分类;P(xj|Ti)为在Ti下xj的条件概率;A(i,j)为在第i行对应的日志分类中第j列对应的特征词出现的次数;B(i,j)为在第i行对应的日志分类中第j列对应的特征词的调整参数;count(Ti)为Ti下的各特征词出现的次数的总和;α为平滑系数;n为调频矩阵或调频矩阵的列数。
4.如权利要求1所述的方法,其特征在于,所述分类模型是根据样本日志中每个特征词在每个日志分类下的条件概率确定的,包括:
针对每一个特征词,确定所述特征词在各日志分类下的条件概率的总和;将所述特征词在各日志分类下的条件概率与所述特征词在各日志分类下的条件概率的总和的比值确定为所述特征词在各日志分类下的特征权重;
将各特征词在各日志分类中的特征权重组成特征权重矩阵,将所述特征权重矩阵作为所述分类模型。
5.一种日志分类装置,其特征在于,包括:
确定单元、分类单元和训练单元;
所述确定单元,用于确定待分类日志中各特征词出现的次数;
所述分类单元,用于根据所述待分类日志中各特征词出现的次数和分类模型,确定所述待分类日志所属的日志分类;所述分类模型是所述训练单元根据样本日志中每个特征词在每个日志分类下的条件概率确定的;
其中,每个特征词在每个日志分类下的条件概率是所述训练单元根据词频模型和调频模型确定的;所述词频模型包括每个特征词在每个日志分类下出现的次数,所述调频模型包括每个特征词在每个日志分类下的调整参数,所述调整参数用于所述训练单元调整对应的特征词在对应的日志分类下的次数。
6.如权利要求5所述的装置,其特征在于,所述训练单元具体用于:
针对每一个特征词在每个日志分类下执行下述操作:
确定所述日志分类下各特征词出现的次数的总和;
根据所述特征词在所述词频模型中的次数、所述特征词在所述调频模型中的调整参数、所述日志分类下各特征词出现的次数的总和,确定所述特征词在所述日志分类下的条件概率。
7.如权利要求6所述的装置,其特征在于,所述词频模型为m行×n列的词频矩阵,所述调频模型为m行×n列的调频矩阵;所述词频矩阵中第i行对应的日志分类与所述调频矩阵中第i行对应的日志分类相同,所述词频矩阵中第j列对应的特征词与所述调频矩阵中第j列对应的特征词相同;0<i≤m,0<j≤n;
所述训练单元具体用于:
根据公式(1)确定所述特征词在所述日志分类下的条件概率;
所述公式(1)为:
其中,xj为第j列的特征词;Ti为第i行的日志分类;P(xj|Ti)为在Ti下xj的条件概率;A(i,j)为在第i行对应的日志分类中第j列对应的特征词出现的次数;B(i,j)为在第i行对应的日志分类中第j列对应的特征词的调整参数;count(Ti)为Ti下的各特征词出现的次数的总和;α为平滑系数;n为调频矩阵或调频矩阵的列数。
8.如权利要求5所述的装置,其特征在于,所述训练单元具体用于:
针对每一个特征词,确定所述特征词在各日志分类下的条件概率的总和;将所述特征词在各日志分类下的条件概率与所述特征词在各日志分类下的条件概率的总和的比值确定为所述特征词在各日志分类下的特征权重;
将各特征词在各日志分类中的特征权重组成特征权重矩阵,将所述特征权重矩阵作为所述分类模型。
9.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至4任一项所述的方法。
10.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至4任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911060648.7A CN110929028A (zh) | 2019-11-01 | 2019-11-01 | 一种日志分类方法及装置 |
PCT/CN2020/115409 WO2021082780A1 (zh) | 2019-11-01 | 2020-09-15 | 一种日志分类方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911060648.7A CN110929028A (zh) | 2019-11-01 | 2019-11-01 | 一种日志分类方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110929028A true CN110929028A (zh) | 2020-03-27 |
Family
ID=69850230
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911060648.7A Pending CN110929028A (zh) | 2019-11-01 | 2019-11-01 | 一种日志分类方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110929028A (zh) |
WO (1) | WO2021082780A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112000502A (zh) * | 2020-08-11 | 2020-11-27 | 杭州安恒信息技术股份有限公司 | 海量错误日志的处理方法、装置、电子装置及存储介质 |
CN112199227A (zh) * | 2020-10-14 | 2021-01-08 | 北京紫光展锐通信技术有限公司 | 参数确定方法及相关产品 |
WO2021082780A1 (zh) * | 2019-11-01 | 2021-05-06 | 深圳前海微众银行股份有限公司 | 一种日志分类方法及装置 |
CN113704469A (zh) * | 2021-08-18 | 2021-11-26 | 百融至信(北京)征信有限公司 | 一种基于贝叶斯定理的短文本分类数据集矫正方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101520784B (zh) * | 2008-02-29 | 2011-09-28 | 富士通株式会社 | 信息发布系统和信息发布方法 |
CN103810264B (zh) * | 2014-01-27 | 2017-06-06 | 西安理工大学 | 基于特征选择的网页文本分类方法 |
CN105893225A (zh) * | 2015-08-25 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 一种错误自动处理方法及装置 |
CN105446495A (zh) * | 2015-12-08 | 2016-03-30 | 北京搜狗科技发展有限公司 | 一种候选排序方法和装置 |
CN110929028A (zh) * | 2019-11-01 | 2020-03-27 | 深圳前海微众银行股份有限公司 | 一种日志分类方法及装置 |
-
2019
- 2019-11-01 CN CN201911060648.7A patent/CN110929028A/zh active Pending
-
2020
- 2020-09-15 WO PCT/CN2020/115409 patent/WO2021082780A1/zh active Application Filing
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021082780A1 (zh) * | 2019-11-01 | 2021-05-06 | 深圳前海微众银行股份有限公司 | 一种日志分类方法及装置 |
CN112000502A (zh) * | 2020-08-11 | 2020-11-27 | 杭州安恒信息技术股份有限公司 | 海量错误日志的处理方法、装置、电子装置及存储介质 |
CN112199227A (zh) * | 2020-10-14 | 2021-01-08 | 北京紫光展锐通信技术有限公司 | 参数确定方法及相关产品 |
CN113704469A (zh) * | 2021-08-18 | 2021-11-26 | 百融至信(北京)征信有限公司 | 一种基于贝叶斯定理的短文本分类数据集矫正方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2021082780A1 (zh) | 2021-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11741361B2 (en) | Machine learning-based network model building method and apparatus | |
CN110929028A (zh) | 一种日志分类方法及装置 | |
CN112069310B (zh) | 基于主动学习策略的文本分类方法及系统 | |
KR102556896B1 (ko) | 기계 학습 모델을 사용하여 편향된 데이터 거절 | |
WO2022126810A1 (zh) | 文本聚类方法 | |
US20200042419A1 (en) | System and method for benchmarking ai hardware using synthetic ai model | |
CN106446931A (zh) | 基于支持向量数据描述的特征提取及分类方法及其系统 | |
WO2020114302A1 (zh) | 一种行为预测方法 | |
CN109948735A (zh) | 一种多标签分类方法、系统、装置及存储介质 | |
CN110728313B (zh) | 一种用于意图分类识别的分类模型训练方法及装置 | |
CN110807474A (zh) | 聚类方法及装置、存储介质、电子设备 | |
CN112418320B (zh) | 一种企业关联关系识别方法、装置及存储介质 | |
CN111460806A (zh) | 基于损失函数的意图识别方法、装置、设备及存储介质 | |
Shin et al. | Super-CWC and super-LCC: Super fast feature selection algorithms | |
WO2021189830A1 (zh) | 样本数据优化方法、装置、设备及存储介质 | |
CN110458600A (zh) | 画像模型训练方法、装置、计算机设备及存储介质 | |
CN109299263B (zh) | 文本分类方法、电子设备 | |
CN113704389A (zh) | 一种数据评估方法、装置、计算机设备及存储介质 | |
CN113095511A (zh) | 一种在自动化主站实现操作到位的判断方法及装置 | |
CN115098690B (zh) | 一种基于聚类分析的多数据文档分类方法及系统 | |
CN114139636B (zh) | 异常作业处理方法及装置 | |
CN112685374A (zh) | 日志分类方法、装置及电子设备 | |
CN109308565B (zh) | 人群绩效等级识别方法、装置、存储介质及计算机设备 | |
CN110532384A (zh) | 一种多任务字典单分类方法、系统、装置及存储介质 | |
CN111950615A (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 |