配置文件检查方法及装置
文献发布时间:2023-06-19 11:22:42
技术领域
本申请涉及网络管理和数据挖掘领域,尤其涉及一种配置文件检查方法及装置。
背景技术
在网络管理过程中,网元设备的配置文件决定网络的运行方式,是非常关键的数据。随着网络技术的发展,网络需求变更呈现多样化。在为了调整网络结构、新增或者替换网络设备、更换线路、更改设备配置或者其他针对网络的变更需求,而进行网络割接时,网络运维人员都需要对网元配置文件的正确性进行检测。传统的配置文件检查采用人工检测的方式,通过逐条检测配置文件中的配置命令,从而检测出配置文件中出现的错误。
现有的人工逐条检测配置文件的检查方法,虽然能够满足常规的运维需要,但是存在人力成本高、检测效率和灵活性较低的缺点,还存在漏检率高、检查成功率低的问题。
发明内容
本申请提供一种配置文件检查方法及装置,能够同时分析大量配置文件,标记其中可能存在错误的文件和行号,实现自动低成本大批量检测,在减少人工检查的工作负担的同时,降低错误配置的漏检率。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种配置文件检查方法,该方法可以包括:从待检查配置文件中获取语句集,以及所述语句集中各语句的元数据信息;所述语句集包括所述待检查配置文件的全部语句,所述语句包括至少一个单词;采用预设语义特征提取方法,获取所述各语句的表示向量;检测所述表示向量中的异常表示向量;标记目标语句的元数据信息,所述目标语句对应所述异常表示向量。
第二方面,本申请提供一种配置文件检查装置,该配置文件检查装置包括:初始化模块、特征提取模块、异常检测模块和错误标记模块。其中,初始化模块,用于从待检查配置文件中获取语句集,以及所述语句集中各语句的元数据信息;所述语句集包括所述待检查配置文件的全部语句,所述语句包括至少一个单词;特征提取模块,用于采用预设语义特征提取方法,获取所述各语句的表示向量;异常检测模块,用于检测所述表示向量中的异常表示向量;错误标记模块,用于标记目标语句的元数据信息,所述目标语句对应所述异常表示向量。
第三方面,本申请提供一种配置文件检查装置,该配置文件检查装置包括:处理器、通信接口和存储器。其中,存储器用于存储一个或多个程序。该一个或多个程序包括计算机执行指令,当该配置文件检查装置运行时,处理器执行该存储器存储的该计算机执行指令,以使该配置文件检查装置执行第一方面及其各种可选的实现方式中任意之一所述的配置文件检查方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行该指令时,该计算机执行上述第一方面及其各种可选的实现方式中任意之一所述的配置文件检查方法。
第五方面,本申请提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述第一方面及其各种可选的实现方式中任意之一所述的配置文件检查方法。
本申请提供的配置文件检查方法及装置,将纯文本的待检查配置文件按照语句为基本单位,转换为语句集,采用语义特征提取方法,提取出各语句的表示向量,再检测出语句表示向量中的异常值,从而检查出配置文件中可能出错的语句,并标记对应的元数据信息。相对于现有技术中,通过人工检查配置文件文本来检查配置错误。本申请提供的配置文件检查方法,通过尽可能简化人工干涉,实现配置文件检查的自动化和智能化,能够同时分析大量配置文件,标记其中可能存在错误的文件和行号,实现自动低成本大批量检测,在减少人工检查的工作负担的同时,降低错误配置的漏检率。
附图说明
图1为本申请实施例提供的配置文件检查方法流程示意图;
图2为本申请实施例提供的word2vec方法模型结构示意图;
图3为本申请实施例提供的异常表示向量检测流程示意图;
图4为本申请实施例提供的孤立森林算法简单效果示意图;
图5为本申请实施例提供的配置文件检查装置的结构示意图一;
图6为本申请实施例提供的配置文件检查装置的结构示意图二。
具体实施方式
下面结合附图对本申请实施例提供的配置文件检查方法及装置进行详细地描述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
本申请实施例提供一种配置文件检查方法,如图1所示,该方法可以包括S101-S104:
S101、从待检查配置文件中获取语句集,以及语句集中各语句的元数据信息。
其中,所述语句集包括所述待检查配置文件的全部语句,所述语句包括至少一个单词。
具体的,待检查配置文件为至少一个网元设备的至少一个配置文件,一般采用纯文本格式,按顺序记录了初始化网元设备所需要执行的命令,每条命令单独占用一行。通常单条命令并不能独立生效,连续的多个命令组成一个配置语句实现一个完整的功能。因此,本申请实施例将语句作为判断配置是否正确的基本单位,从待检查配置文件中获取语句集,以及各语句的元数据信息。
在一种可能的实现方式中,按照以下步骤从待检查配置文件中获取语句集,以及各语句的元数据信息:
步骤一:将待检测配置文件中属于同一语句的多个连续的命令拼接为一行,使待检查配置文件由语句行组成,并记录各语句的元数据信息。
示例性的,按照文本行读取待检查配置文件,将属于同一配置语句的多个连续的命令在配置文件中拼接为一行,换句话说,将待检查配置文件中的命令行按照功能合并成语句行。本步骤的目的在于,将待检查配置文件转换为由语句行组成,而不是由命令行组成,从而实现将语句作为判断配置是否正确的基本单位。
示例性的,所述元数据信息包括:语句所属的配置文件名、语句在配置文件中的行号,以及所述配置文件所属的网元设备名。将待检查配置文件转换成由语句行组成后,记录各语句的上述元数据信息,以便后续标记待检查文件中可能存在错误的文件和行号。
步骤二:使用空白字符对待检查配置文件中的所有语句行进行分割,将分割后的每段作为一个单词。
示例性的,为了便于后续步骤中对语句进行特征提取,需要对语句进行分词,使用空白字符将待检查配置文件中的所有语句行分割成段,每段作为一个单词。
需要说明的是,单词的实际内容可能包括命令、实体(例如接口名、IP等)、二进制数据(例如密钥)。
步骤三:提取待检查配置文件中分词后的全部语句行,合并形成语句集。
提取待检查配置文件的分词结果,合并形成语句集,作为后续语句特征提取的语料库。语句集包括待检查配置文件的全部语句,每条语句占用一行,且语句包括至少一个单词,单词间用空白字符间隔。
S102、采用预设语义特征提取方法,获取各语句的表示向量。
数学模型的输入和输出都是数值,如果要处理非数值数据,则需要将该数据转换成数值形式,或者说映射到一个数学空间中。以语句为判断配置文件错误的基本单位,可以以语义特征为基础,将语句转换为向量表示,语义相近的语句在向量空间的距离也较近,进而能够检查出配置文件中的错误。
词是承载语义的最基本的单元,要得到语句的向量表示,可以先获取词语的向量表示。在自然语言处理(natural language processing,NLP)任务中,可以利用各种词表示模型,将“词”这一符号信息表示成数学上的向量形式。词的向量表示可以作为各种机器学习模型的输入来使用。
示例性的,所述预设语义特征提取方法为word2vec方法。
在一种可能的实现方式中,采用word2vec方法,按照以下步骤获取各语句的表示向量:
步骤一:统计语句集中的单词数量N,并用1至N给每个单词编号。
步骤二:用一位有效向量x作为每个单词的初始向量。
其中,一位有效向量即one-hot向量,x为N维向量,单词编号i对应的维度值为1,其余维度值都为0。one-hot向量是最简单的词向量,但其仅仅将词符号化,不包含任何语义信息,one-hot表示在文本特征表示上存在的缺陷也很明显:不能反映词与词之间的关系;得到的特征是离散稀疏的;在N较大时,向量会过于稀疏,并且会造成维度灾难。
分布式表示(distributed representation)可以克服one-hot表示的上述缺陷,其基本想法是通过训练,将每个词都映射到一个较短的词向量上来,换句话说,将one-hot向量降维。分布假说(distributional hypothesis)为分布式表示提供了理论基础:具有相似上下文的词,应该具有相似的语义。
步骤三:对于语句中的单词,将其上下文的初始向量作为预设神经网络模型的输入,检测预设神经网络的输出
其中,单词的上下文为单词在语句中的前k个单词和后k个单词,期望输出x
word2vec方法采用神经网络降维,将神经网络模型的权重参数作为映射矩阵,从而将输入单词的one-hot编码映射到一个维度更小的向量空间中。word2vec方法使用的神经网络模型一般分为连续词袋(continuous bag-of-words,CBOW)模型与skip-gram模型两种。CBOW模型的训练输入是某一个特定词的上下文对应的one-hot向量,而输出就是这特定的一个词的one-hot向量。skip-gram模型和CBOW模型的思路是反着来的,即输入是特定词的one-hot向量,而输出是特定词的上下文对应的one-hot向量。CBOW模型对小型数据库比较合适,而skip-gram模型在大型语料中表现更好。本申请实施例的预设神经网络模型采用CBOW模型。
示例性的,如图2所示,预设神经网络模型为典型两层神经网络,其输入为one-hot向量,隐藏层没有激活函数,也就是线性的单元。输出层的维度和输入层的维度一样,且输出层采用softmax回归。
输入层的输入为单词上下文的初始向量x
ω=xW
其中,输入权重矩阵W为N行V列的矩阵,且V
其中,h为V维向量;隐藏层与输出层之间进行如下变换: y=hW′ 其中,输出权重矩阵W′为V行N列的矩阵;y为N维向量,输出层的输出
其中, 由于预设神经网络模型的输入为one-hot向量,其只有编号i对应的维度值为1,其余维度值都为0,某单词的初始向量x 经过输出权重矩阵W′的再次变换,得到N维向量y,使用softmax函数输出为N维概率向量 步骤四:使用语句集中的所有语句对预设神经网络模型进行有监督训练,使误差 语句集即word2vec训练的语料库,模型训练是以行为单位进行的,语句行包括T个单词,就可以得到T个训练样本。在机器学习算法中,在最小化损失函数时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。因此,使用语句集中的所有语句对神经网络进行多轮训练,使误差 由于训练过程中引入了词的上下文,通过上下文语义分析,将语义融入到词的表示向量中,具有相同上下文的单词,具有相似的表示向量。 步骤五:将优化后的输入权重矩阵的第i行确定为第i个单词的表示向量。 如上所述,某单词的初始向量x 步骤六:将语句包括的单词的表示向量求平均,得到语句的表示向量。 S103、检测表示向量中的异常表示向量。 将语句转换成表示向量之后,在向量空间中,两个语句的语义相似度可以直接转化为两个表示向量的空间距离,因此,可以理解的是,通过检测语句表示向量中的异常数据,就能够检查出可能出现错误的配置语句。 在大部分工业异常检测场景中,孤立森林算法已经被证实是最好的异常检测算法,因此,本申请实施例采用孤立森林算法来检测表示向量中的异常表示向量。在孤立森林算法中,异常数据被定义为“容易被孤立的离群点”,可以将其理解为分布稀疏且离密度高的群体较远的数据点。 示例性的,如图3所示,本申请实施例采用孤立森林算法,通过以下步骤检测表示向量中的异常表示向量: 步骤一:从表示向量中随机抽取m个表示向量,作为样本集M。 示例性的,上述抽取是放回式的抽取。 步骤二:随机选择一个维度,并在该维度的值域里随机选择一个取值,对m个表示向量进行二叉划分,即将该维度值小于该取值的表示向量划到左分支,该维度值大于该取值的表示向量划到右分支。 示例性的,由于表示向量是N维向量,从N个维度中随机选择一个维度值作为二叉划分的指标,在该维度值的最大值和最小值之间选择一个取值,将该维度值小于该取值的表示向量划分到左分支,将该维度值大于该取值的表示向量划到右分支。可选的,也可以将该维度值小于该取值的表示向量划分到右分支,将该维度值大于该取值的表示向量划分到左分支,本申请实施例并不作限定。 步骤三:在左右两个分支重复上述二叉划分操作,直到不可再划分,或二叉树达到预设高度。 其中,所述预设高度为二叉树的最大高度,一般设置为log 示例性的,重复上述二叉划分操作,直到分支里的数据点不可再划分,或者达到最大高度,将样本集M中的表示向量构造成一棵二叉树。 步骤四:重复上述步骤一至步骤三,直到构造出T棵树。 示例性的,T的取值由用户进行设置,上述T棵树构成孤立森林。 步骤五:计算表示向量 其中,所述
其中,所述
所述
将上述表示向量构造成孤立森林后,根据孤立森林算法的基本原理,那些密度很高的簇需要被划分很多次才能被孤立,但是那些密度很低的点很容易就会被孤立,如图4所示,数据点d就很可能是异常数据点。因此,在各棵树上高度越低的数据点,越有可能是异常数据点。由异常分数的计算公式可知,表示向量在T棵树上的平均高度 根据上述步骤,通过合理设置预设阈值,将异常分数超过预设阈值的表示向量作为异常表示向量。 S104、标记目标语句的元数据信息,目标语句对应异常表示向量。 具体的,异常表示向量对应的语句,就是需要检查出的可能存在错误的目标语句。通过查询异常表示向量对应的语句的元数据信息,就能匹配对应的网元设备配置文件具体可能出现错误的文本行。 本申请提供的配置文件检查方法及装置,从待检查配置文件中获取语句集,以及各语句的元数据信息;所述语句集包括所述待检查配置文件的全部语句,所述语句包括至少一个单词;采用预设语义特征提取方法,获取所述各语句的表示向量;检测所述表示向量中的异常表示向量;标记目标语句的元数据信息,所述目标语句对应所述异常表示向量。相对于现有技术中,人工检查配置文件。本申请提供的配置文件检查方法,利用机器学习算法强大的数据挖掘能力,能够同时分析大量配置文件,标记其中可能存在错误的文件和行号,实现自动低成本大批量检测,在减少人工检查的工作负担的同时,降低错误配置的漏检率。 本申请实施例可以根据上述方法示例对配置文件检查装置进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。 图5示出了上述实施例中所涉及的配置文件检查装置的一种可能的结构示意图。该配置文件检查装置包括初始化模块501、特征提取模块502、异常检测模块503和错误标记模块504。 其中,所述初始化模块501,用于从待检查配置文件中获取语句集,以及所述语句集中各语句的元数据信息;所述语句集包括所述待检查配置文件的全部语句,所述语句包括至少一个单词。 所述特征提取模块502,用于采用预设语义特征提取方法,获取所述各语句的表示向量。 所述异常检测模块503,用于检测所述表示向量中的异常表示向量。 所述错误标记模块504,用于标记目标语句的元数据信息,所述目标语句对应所述异常表示向量。 本申请实施例提供的配置文件检查装置,从待检查配置文件中获取语句集,以及各语句的元数据信息;所述语句集包括所述待检查配置文件的全部语句,所述语句包括至少一个单词;采用预设语义特征提取方法,获取所述各语句的表示向量;检测所述表示向量中的异常表示向量;标记目标语句的元数据信息,所述目标语句对应所述异常表示向量。相对于现有技术中,人工检查配置文件。本申请提供的配置文件检查方法,利用机器学习算法强大的数据挖掘能力,能够同时分析大量配置文件,标记其中可能存在错误的文件和行号,实现自动低成本大批量检测,在减少人工检查的工作负担的同时,降低错误配置的漏检率。 图6示出了上述实施例中所涉及的配置文件检查装置的又一种可能的结构示意图。该装置包括:处理器601和通信接口603。处理器601用于对配置文件检查装置的动作进行控制管理,例如,执行上述初始化模块501、特征提取模块502、异常检测模块503和错误标记模块504执行的步骤,和/或用于执行本文所描述的技术的其它过程。通信接口603用于支持配置文件检查装置与其他网络实体的通信,例如,执行上述初始化模块501、错误标记模块504执行的步骤。配置文件检查装置还可以包括存储器602和总线604,存储器602用于存储配置文件检查装置的程序代码和数据。 其中,处理器601可以是实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。 上述存储器602可以是配置文件检查装置中的存储器等,该存储器可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。 总线604可以是扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线604可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。 本申请实施例提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例所述的配置文件检查方法。 本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当配置文件检查装置执行该指令时,该配置文件检查装置执行上述方法实施例所示的方法流程中配置文件检查装置执行的各个步骤。 其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合、或者本领域熟知的任何其它形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(Application Specific Integrated Circuit,ASIC)中。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
- 配置文件检查方法及装置
- 配置文件的检查方法、装置、设备及存储介质