掌桥专利:专业的专利平台
掌桥专利
首页

基于机器学习的契约推荐方法及装置、电子设备

文献发布时间:2024-04-18 19:58:30


基于机器学习的契约推荐方法及装置、电子设备

技术领域

本发明涉及大数据技术领域以及人工智能技术领域,具体而言,涉及一种基于机器学习的契约推荐方法及装置、电子设备。

背景技术

契约测试是一种用于验证系统的各个组件之间的协议和约定是否得到正确执行的软件测试方法,在金融系统中,通过契约测试可以提高系统的可靠性、数据的完整性和安全性,进而确保金融系统能够更好地保护客户的资金和信息安全。

相关技术中,基于测试策略敲定契约测试的范围和框架之后,还需要确定契约测试的流程规则。确定契约流程规则的方法有以下两种:第一种是人工编写,但是人工编写契约代码的步骤太过繁琐,并且对于业务分析人员和产品人员等没有代码基础的人来说,无法直接通过契约代码读取契约内容,不能及时获取变更契约,可能导致契约测试流程出错;第二种是人工筛选,但是由人工在体量巨大、结构复杂的网络流量数据中进行契约筛选和标记十分困难,容易出现筛选错误或者标记错误的问题。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种基于机器学习的契约推荐方法及装置、电子设备,以至少解决相关技术中由于海量生产流量报文的结构复杂,契约测试过程中人工难以进行契约筛选的技术问题。

根据本发明实施例的一个方面,提供了一种基于机器学习的契约推荐方法,包括:响应契约推荐请求,获取生产流量报文集合,其中,所述生产流量报文集合中包含N个生产流量报文,所述生产流量报文用于记录目标金融系统在生产运行过程中产生的网络流量数据,N为正整数;将所述生产流量报文集合输入至递归模型,由所述递归模型对所有所述生产流量报文进行结构比对,输出第一报文筛选集合和第二报文筛选集合,其中,所述第一报文筛选集合中存储相同报文结构对应的所述生产流量报文,所述第二报文筛选集合中存储有除所述第一报文筛选集合之外的所述生产流量报文,所述第二报文筛选集合中各个所述生产流量报文的报文结构互不相同;对所述第一报文筛选集合中的所有所述生产流量报文进行聚类处理,得到聚类结果,其中,所述聚类结果中包含R个聚类簇,每个所述聚类簇对应有一个簇心,每个所述聚类簇链接的P个所述生产流量报文的内容相似度大于预设相似度阈值,R、P均为正整数;对于每个所述聚类簇,提取该聚类簇中与簇心距离最小的所述生产流量报文,并将该生产流量报文存入第三报文筛选集合;基于所述第二报文筛选集合与所述第三报文筛选集合,生成推荐报文,并将所述推荐报文发送至业务开发终端,其中,所述推荐报文中包含拟推荐的测试契约集合。

可选地,在获取生产流量报文集合之后,还包括:对于每个所述生产流量报文,将所述生产流量报文的报文格式改写为JSON格式;基于公共规则对所述JSON格式的所述生产流量报文进行确认,得到确认结果,其中,所述公共规则包含所述目标金融系统针对所述网络流量数据设立的约束条件集合;在所述确认结果指示所述生产流量报文符合所述公共规则的情况下,统计所述生产流量报文中包含的测试契约的契约总数量。

可选地,在统计所述生产流量报文中包含的测试契约的契约总数量之后,还包括:在所述契约总数量指示所述生产流量报文中仅包含一种测试契约的情况下,将该生产流量报文定义为所述推荐报文。

可选地,在统计所述生产流量报文中包含的测试契约的契约总数量之后,还包括:在所述确认结果指示所述生产流量报文不符合所述公共规则的情况下,或者,在所述契约总数量指示所述生产流量报文中包含的测试契约数量大于等于2的情况下,基于所述业务开发终端预先传输的关键字字段集合查询JSON格式的所述生产流量报文的报文字段,得到查询结果。

可选地,在基于所述业务开发终端预先传输的关键字字段集合查询JSON格式的所述生产流量报文,得到查询结果之后,还包括:在所述查询结果指示所述生产流量报文不包含所述关键字字段集合中任一所述关键字字段的情况下,将该生产流量报文标识为无效契约报文,停止对该生产流量报文执行任一步骤;或者,在所述查询结果指示所述生产流量报文包含所述关键字字段集合中所有所述关键字字段的情况下,将所述生产流量报文输入至递归模型。

可选地,在将所述生产流量报文输入至递归模型之前,还包括:对所述生产流量报文进行预处理操作,其中,所述预处理操作至少包括下述之一:去除停用词、统一字符大小写格式以及删除空格。

可选地,对所述第一报文筛选集合中的所有所述生产流量报文进行聚类处理,得到聚类结果的步骤,包括:对于每个所述生产流量报文,提取所述生产流量报文中的M个关键字字段,其中,M为正整数;将M个所述关键字字段输入至向量化模型,输出M个字段向量,其中,一个关键字字段对应一个所述字段向量;拼接所述M个字段向量中的各个字段向量,得到所述生产流量报文对应的报文内容向量;整合所有所述生产流量报文对应的所述报文内容向量,得到内容向量集合;对所述内容向量集合中的所有所述报文内容向量进行聚类处理,得到所述聚类结果。

可选地,在整合所有所述生产流量报文对应的所述报文内容向量之前,还包括:对每个所述报文内容向量进行归一化处理,其中,所述归一化处理至少包括:降维处理。

根据本发明实施例的另一方面,还提供了一种基于机器学习的契约推荐装置,包括:响应单元,用于响应契约推荐请求,获取生产流量报文集合,其中,所述生产流量报文集合中包含N个生产流量报文,所述生产流量报文用于记录目标金融系统在生产运行过程中产生的网络流量数据,N为正整数;输入单元,用于将所述生产流量报文集合输入至递归模型,由所述递归模型对所有所述生产流量报文进行结构比对,输出第一报文筛选集合和第二报文筛选集合,其中,所述第一报文筛选集合中存储相同报文结构对应的所述生产流量报文,所述第二报文筛选集合中存储有除所述第一报文筛选集合之外的所述生产流量报文,所述第二报文筛选集合中各个所述生产流量报文的报文结构互不相同;聚类单元,用于对所述第一报文筛选集合中的所有所述生产流量报文进行聚类处理,得到聚类结果,其中,所述聚类结果中包含R个聚类簇,每个所述聚类簇对应有一个簇心,每个所述聚类簇链接的P个所述生产流量报文的内容相似度大于预设相似度阈值,R、P均为正整数;提取单元,用于对于每个所述聚类簇,提取该聚类簇中与簇心距离最小的所述生产流量报文,并将该生产流量报文存入第三报文筛选集合;生成单元,用于基于所述第二报文筛选集合与所述第三报文筛选集合,生成推荐报文,并将所述推荐报文发送至业务开发终端,其中,所述推荐报文中包含拟推荐的测试契约集合。

可选地,所述契约推荐装置还包括:改写模块,用于对于每个所述生产流量报文,将所述生产流量报文的报文格式改写为JSON格式;确认模块,用于基于公共规则对所述JSON格式的所述生产流量报文进行确认,得到确认结果,其中,所述公共规则包含所述目标金融系统针对所述网络流量数据设立的约束条件集合;统计模块,用于在所述确认结果指示所述生产流量报文符合所述公共规则的情况下,统计所述生产流量报文中包含的测试契约的契约总数量。

可选地,所述契约推荐装置还包括:定义模块,用于在所述契约总数量指示所述生产流量报文中仅包含一种测试契约的情况下,将该生产流量报文定义为所述推荐报文。

可选地,所述契约推荐装置还包括:查询模块,用于在所述确认结果指示所述生产流量报文不符合所述公共规则的情况下,或者,在所述契约总数量指示生产流量报文中包含的测试契约数量大于等于2的情况下,基于所述业务开发终端预先传输的关键字字段集合查询JSON格式的所述生产流量报文的报文字段,得到查询结果。

可选地,所述契约推荐装置还包括:标识模块,用于在所述查询结果指示所述生产流量报文不包含所述关键字字段集合中任一所述关键字字段的情况下,将该生产流量报文标识为无效契约报文,停止对该生产流量报文执行任一步骤;第一输入模块,用于在所述查询结果指示所述生产流量报文包含所述关键字字段集合中所有所述关键字字段的情况下,将所述生产流量报文输入至递归模型。

可选地,所述契约推荐装置还包括:预处理模块,用于对所述生产流量报文进行预处理操作,其中,所述预处理操作至少包括下述之一:去除停用词、统一字符大小写格式以及删除空格。

可选地,所述聚类单元包括:提取模块,用于对于每个所述生产流量报文,提取所述生产流量报文中的M个关键字字段,其中,M为正整数;第二输入模块,用于将M个所述关键字字段输入至向量化模型,输出M个字段向量,其中,一个关键字字段对应一个所述字段向量;拼接模块,用于拼接所述M个字段向量中的各个字段向量,得到所述生产流量报文对应的报文内容向量;整合模块,用于整合所有所述生产流量报文对应的所述报文内容向量,得到内容向量集合;聚类模块,用于对所述内容向量集合中的所有所述报文内容向量进行聚类处理,得到所述聚类结果。

可选地,所述聚类单元还包括:归一化模块,用于对每个所述报文内容向量进行归一化处理,其中,所述归一化处理至少包括:降维处理。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的基于机器学习的契约推荐方法。

根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项所述的基于机器学习的契约推荐方法。

本公开中,提出一种基于机器学习的契约推荐方法,先响应契约推荐请求,获取生产流量报文集合,再将生产流量报文集合输入至递归模型,由递归模型进行结构比对,将相同报文结构对应的生产流量报文存入第一报文筛选集合,将其余的报文结构互不相同的生产流量报文存入第二报文筛选集合,再对第一报文筛选集合中报文结构相同的所有生产流量报文进行聚类处理,得到R个聚类簇,每个聚类簇链接的P个生产流量报文的内容相似度大于预设相似度阈值,然后对于每个聚类簇,提取聚类簇中与簇心距离最小的生产流量报文,存入第三报文筛选集合,最后基于第二报文筛选集合与第三报文筛选集合,生成推荐报文,并将推荐报文发送至业务开发终端,其中,推荐报文中包含拟推荐的测试契约集合。

本公开中,通过递归模型对所有生产流量报文进行结构比对,将具有相同报文结构的生产流量报文筛选至第一报文筛选集合,并将剩余报文存入第二报文筛选集合,利用聚类处理的方式对具有相同报文结构的生产流量报文进行内容比对,使内容相似的生产流量报文归于同一个聚类簇,提取每个聚类簇中距离簇心最近的生产流量报文存入第三报文筛选集合,使用该生产流量报文的报文内容指示的测试契约代表该聚类簇中所有生产流量报文的报文内容指示的测试契约,最后,基于第二报文筛选集合中报文结构互不相同的生产流量报文以及第三报文筛选集合中报文内容具有代表性的生产流量报文,生成推荐报文并发送至业务开发终端,推荐报文中包含拟推荐测试契约集合,本公开提出的契约推荐方法结合递归模型和聚类算法对海量生产流量报文进行结构筛选和内容筛选,将包含拟推荐测试契约集合的推荐报文发送至业务开发终端,无需再使用人工对报文结构以及报文内容逐一进行筛选,进而解决了相关技术中由于海量生产流量报文的结构复杂,契约测试过程中人工难以进行契约筛选的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的基于机器学习的契约推荐方法的流程图;

图2是根据本发明实施例的一种可选的基于机器学习的契约推荐系统的结构图;

图3是根据本发明实施例的另一种可选的基于机器学习的契约推荐方法的流程图;

图4是根据本发明实施例的一种可选的基于机器学习的契约推荐装置的示意图;

图5是根据本发明实施例的一种用于基于机器学习的契约推荐方法的电子设备(或移动设备)的硬件结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,本公开中的基于机器学习的契约推荐方法及其装置可用于大数据技术领域或人工智能技术领域在通过对海量生产流量报文进行筛选进而得到包含拟推荐契约的推荐报文的情况下,也可用于除大数据技术领域或人工智能技术领域之外的任何领域在通过对海量生产流量报文进行筛选进而得到包含拟推荐契约的推荐报文的情况下,本公开中对基于机器学习的契约推荐方法及其装置的应用领域不做限定。

需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关地区的法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。

本发明下述各实施例可应用于各种需要进行海量生产流量报文筛选以及生成包含拟推荐契约的推荐报文的系统/应用/设备中,能够实现结合递归模型和聚类算法对海量生产流量报文进行结构筛选和内容筛选,将包含拟推荐测试契约集合的推荐报文发送至业务开发终端,无需再通过人工对报文结构以及报文内容逐一进行筛选,简化契约测试流程,减少沟通成本。

下面结合各个实施例来详细说明本发明。

实施例一

根据本发明实施例,提供了一种基于机器学习的契约推荐方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种可选的基于机器学习的契约推荐方法的流程图,如图1所示,该方法包括如下步骤:

步骤S101,响应契约推荐请求,获取生产流量报文集合。

步骤S102,将生产流量报文集合输入至递归模型,由递归模型对所有生产流量报文进行结构比对,输出第一报文筛选集合和第二报文筛选集合。

步骤S103,对第一报文筛选集合中的所有生产流量报文进行聚类处理,得到聚类结果。

步骤S104,对于每个聚类簇,提取该聚类簇中与簇心距离最小的生产流量报文,并将该生产流量报文存入第三报文筛选集合。

步骤S105,基于第二报文筛选集合与第三报文筛选集合,生成推荐报文,并将推荐报文发送至业务开发终端,其中,推荐报文中包含拟推荐的测试契约集合。

通过上述步骤,可以先响应契约推荐请求,获取生产流量报文集合,再将生产流量报文集合输入至递归模型,由递归模型进行结构比对,将相同报文结构对应的生产流量报文存入第一报文筛选集合,将其余的报文结构互不相同的生产流量报文存入第二报文筛选集合,再对第一报文筛选集合中报文结构相同的所有生产流量报文进行聚类处理,得到R个聚类簇,每个聚类簇链接的P个生产流量报文的内容相似度大于预设相似度阈值,然后对于每个聚类簇,提取聚类簇中与簇心距离最小的生产流量报文,存入第三报文筛选集合,最后基于第二报文筛选集合与第三报文筛选集合,生成推荐报文,并将推荐报文发送至业务开发终端,其中,推荐报文中包含拟推荐的测试契约集合。

本发明实施例中,通过递归模型对所有生产流量报文进行结构比对,将具有相同报文结构的生产流量报文筛选至第一报文筛选集合,并将剩余报文存入第二报文筛选集合,利用聚类处理的方式对具有相同报文结构的生产流量报文进行内容比对,使内容相似的生产流量报文归于同一个聚类簇,提取每个聚类簇中距离簇心最近的生产流量报文存入第三报文筛选集合,使用该生产流量报文的报文内容指示的测试契约代表该聚类簇中所有生产流量报文的报文内容指示的测试契约,最后,基于第二报文筛选集合中报文结构互不相同的生产流量报文以及第三报文筛选集合中报文内容具有代表性的生产流量报文,生成推荐报文并发送至业务开发终端,推荐报文中包含拟推荐测试契约集合,本发明实施例提出的契约推荐方法结合递归模型和聚类算法对海量生产流量报文进行结构筛选和内容筛选,将包含拟推荐测试契约集合的推荐报文发送至业务开发终端,无需再通过人工对报文结构以及报文内容逐一进行筛选,进而解决了相关技术中由于海量生产流量报文的结构复杂,契约测试过程中人工难以进行契约筛选的技术问题。

下面结合上述各步骤对本发明实施例进行详细说明。

本发明实施例的实施主体可以是基于机器学习的契约推荐系统,结合机器学习技术与自然语言处理技术,利用递归模型对海量报文进行结构筛查,利用聚类算法对报文结构相同的部分报文进行内容比对,无需人工逐一排查与标记结构重复或内容重复的生产流量报文,帮助业务开发人员克服了契约测试过程中确定测试契约的困难。

步骤S101,响应契约推荐请求,获取生产流量报文集合。

需要说明的是,生产流量报文集合中包含N个生产流量报文,生产流量报文用于记录目标金融系统在生产运行过程中产生的网络流量数据,N为正整数。

需要说明的是,生产流量报文中的网络流量数据中包含所有契约以及与契约相关的信息,其中,与契约相关的信息包括但不限于:契约标识、契约类型以及契约形式,契约类型包括但不限于:协议契约、业务契约、服务契约、安全契约以及性能契约,契约形式包括但不限于:文本以及接口定义语言(IDL)。本发明实施例需要在N个生产流量报文中提取符合测试需求的测试契约。

可选地,在获取生产流量报文集合之后,还包括:对于每个生产流量报文,将生产流量报文的报文格式改写为JSON格式;基于公共规则对JSON格式的生产流量报文进行确认,得到确认结果,其中,公共规则包含目标金融系统针对网络流量数据设立的约束条件集合;在确认结果指示生产流量报文符合公共规则的情况下,统计生产流量报文中包含的测试契约的契约总数量。

需要说明的是,公共规则是指在网络通信中为使不同服务之间能够识别契约进而有效通信,以及提高网络的安全性和可靠性,需要对流量数据以及流量报文进行约束,从而制定了一系列约束条件,约束条件包括但不限于:

1.报文格式约束:规定了报文的结构、字段和编码方式,例如报文头部和数据字段等内容的格式要求。约束报文格式可以确保各个网络设备或者服务程序之间能够正确解析和处理报文。

2.报文验证约束:规定了报文的校验机制,用于验证报文的完整性和准确性。

3.报文加密约束:规定了对报文进行加密的方式和算法。约束报文加密方式可以保护报文的机密性,防止被未授权的人员窃取或篡改。

4.报文认证约束:规定了对报文进行身份认证的方式和协议。约束报文认证方式可以确保报文的发送方和接收方是合法的,防止伪造报文的风险。

5.报文优先级约束:规定了不同类型的报文在网络传输中的优先级,约束报文优先级可以确保重要的报文能够及时传输和处理。

6.报文限制约束:规定了对报文的大小、频率等进行限制。约束报文限制条件可以防止恶意的流量攻击和网络拥塞。

7.协议规范约束:定义了不同网络层之间进行通信所需要遵循的协议,例如传输层的TCP/IP协议、应用层的HTTP协议等,这些协议规定了报文的交换方式和错误处理机制等。

8.通信方式约束:包括报文的传输方式、路由选择、错误处理等约束。约束通信方式可以确保报文能够按照预期的路径到达目标系统,得到正确的响应和处理。

上述公共规则在网络通信过程中起到了重要的作用,可以保障网络的安全性与可靠性,并确保不同网络设备之间或者不同服务程序之间能够正确的接收生产流量报文并读取报文中的契约内容,进而做出正确的响应与处理。

需要说明的是,生产流量报文的格式有很多种,包括但不限于:XML格式、JSON格式、CSV格式以及文本格式,将生产流量报文的报文格式转化成统一的JSON格式可以提高报文中数据的统一性、可读性、灵活性与兼容性,下面逐一进行解释。

1.统一性:JSON格式是一种通用的数据交换格式,被广泛应用于各种编程语言和平台。将报文格式转化为JSON格式可以确保不同系统之间的数据交换具有统一的格式,方便数据的解析和处理。2.可读性:相比其他格式,JSON格式具有更好的可读性,易于理解和调试。将报文格式转化为JSON格式可以方便查看和分析数据,减少错误和调试时间。3.灵活性:JSON格式支持复杂的数据结构和嵌套,可以更灵活地表示报文内容。通过将报文格式转化为JSON格式,可以更好地适应不同的数据结构和需求。4.兼容性:JSON格式在多数编程语言和平台上都有良好的支持,可以方便地进行数据序列化和反序列化操作。将报文格式转化为JSON格式可以提高系统的兼容性和互操作性,减少开发和维护的成本。

需要说明的是,在确认结果指示生产流量报文符合公共规则的情况下,统计生产流量报文中包含的测试契约的契约总数量。确定生产流量报文中契约数量的方法有很多种,例如,1,定位生产流量报文中的契约标识,例如契约编号和契约名称,这些契约标识通常会在报文中以特定格式或在特定位置出现;2,查找生产流量报文中的关键字,例如“契约”、“合同”、“协议”;3,使用正则表达式进行匹配,正则表达式可以识别具有一定格式规律的契约;4,建立模型,例如,利用机器学习算法训练一个模型,以报文数据作为输入,输出契约数量或者契约标签。本发明实施例提供的几种用于确定契约数量的方法可以单独使用,也可以根据实际需求选取几种结合使用。

可选地,在统计生产流量报文中包含的测试契约的契约总数量之后,还包括:在契约总数量指示生产流量报文中仅包含一种测试契约的情况下,将该生产流量报文定义为推荐报文。

可选地,在统计生产流量报文中包含的测试契约的契约总数量之后,还包括:在确认结果指示生产流量报文不符合公共规则的情况下,或者,在契约总数量指示生产流量报文中包含的测试契约数量大于等于2的情况下,基于业务开发终端预先传输的关键字字段集合查询JSON格式的生产流量报文的报文字段,得到查询结果。

本发明实施例在进行契约测试的过程中需要对生产流量报文进行关键字比对,比对依据是业务开发终端预先传输的关键字字段集合,其中包含测试契约中定义的重要信息,用于验证报文的正确性和完整性。关键字字段可以根据具体的测试需求和契约定义进行确定,可能包括报文头部字段、报文体字段、特定标识字段等。通过对关键字字段进行比对,可以确保报文在传输过程中没有被篡改、丢失或损坏。

可选地,在业务开发终端预先传输的关键字字段集合查询JSON格式的生产流量报文,得到查询结果之后,还包括:在查询结果指示生产流量报文不包含关键字字段集合中任一关键字字段的情况下,将该生产流量报文标识为无效契约报文,停止对该生产流量报文执行任一步骤;或者,在查询结果指示生产流量报文包含关键字字段集合中所有关键字字段的情况下,将生产流量报文输入至递归模型。

步骤S102,将生产流量报文集合输入至递归模型,由递归模型对所有生产流量报文进行结构比对,输出第一报文筛选集合和第二报文筛选集合。

需要说明的是,第一报文筛选集合中存储相同报文结构对应的生产流量报文,第二报文筛选集合中存储有除第一报文筛选集合之外的生产流量报文,第二报文筛选集合中各个生产流量报文的报文结构互不相同。

需要说明的是,在递归模型中,每个生产流量报文被表示为树形结构中的一个树节点,通过遍历树的方式,逐级比对每个节点的值和属性,从而实现所有报文之间的结构比对。

本发明实施例提供几种可选的递归模型:DeepDiff、深度优先搜索(DFS)模型、广度优先搜索(BFS)模型、前序遍历模型和后序遍历模型。本发明实施例以DeepDiff进行示意说明,DeepDiff是一个Python库,用于比较两个数据结构之间的差异,可以处理各种数据类型,包括字典、列表、集合等,并且可以找出两个数据结构之间的新增、删除、修改等差异。

可选地,在将生产流量报文输入至递归模型之前,还包括:对生产流量报文进行预处理操作,其中,预处理操作至少包括下述之一:去除停用词、统一字符大小写格式以及删除空格。需要说明的是,去除停用词的作用是去除生产流量报文中频繁出现但不携带信息的常见词语(例如“是”“了”),减少噪声干扰,提高递归模型比对质量。统一字符大小写格式的作用是将所有字符转换为统一格式,以避免同一个单词因大小写不同而被视为不同的词语,减少递归模型比对时的特征维度。删除空格的作用是将文本中的空格去除,也可以将多个单词连接成一个单词,减少递归模型比对时的特征维度。

步骤S103,对第一报文筛选集合中的所有生产流量报文进行聚类处理,得到聚类结果。

需要说明的是,聚类结果中包含R个聚类簇,每个聚类簇对应有一个簇心,每个聚类簇链接的P个生产流量报文的内容相似度大于预设相似度阈值,R、P均为正整数。

可选地,步骤S103包括:对于每个生产流量报文,提取生产流量报文中的M个关键字字段,其中,M为正整数;将M个关键字字段输入至向量化模型,输出M个字段向量,其中,一个关键字字段对应一个字段向量;拼接M个字段向量中的各个字段向量,得到生产流量报文对应的报文内容向量;整合所有生产流量报文对应的报文内容向量,得到内容向量集合;对内容向量集合中的所有报文内容向量进行聚类处理,得到聚类结果。

本发明实施例提供几种可选的向量化模型:Bag of Words(简称BoW)模型、TF-IDF(Term Frequency-Inverse Document Frequency)模型、Word2Vec模型以及Doc2Vec模型。

需要说明的是,BoW模型将每个关键字视为独立词,并将该独立词转化为一个向量,然后将所有关键字的向量进行拼接,形成整个报文的向量表示,BoW模型简单且易于实现,但不能很好的捕捉关键字之间的顺序和上下文信息;TF-IDF模型基于BoW模型,将关键字的向量表示进一步加权,考虑了关键字的出现频率(TF)以及重要性(IDF),通过降低常见关键字的权重并增加罕见关键字的权重,提高了关键字的区分度和重要性。

Word2Vec模型通过将关键字映射到一个低维向量空间中的连续向量表示来捕捉关键字之间的语义关系,根据关键字的上下文来训练向量表示,将相似意义的关键字映射到相似的向量空间中。对于报文中的多个关键字,可以将它们对应的向量进行拼接或平均操作来生成整个报文的向量表示;Doc2Vec模型是Word2Vec模型的扩展,它不仅学习关键字的向量表示,还学习整个报文的向量表示。Doc2Vec模型使用上下文关键字来预测报文的标签或其他相关信息,从而捕捉报文的语义信息。

本发明实施例选用Word2Vec模型对向量化模型进行示意性说明,对生产流量报文中的关键字字段进行向量化表示,输出内容向量,并对来源于同一报文的内容向量进行拼接,例如,提取到生产流量报文L的M个关键字字段为:S

可选地,在整合所有生产流量报文对应的报文内容向量之前,还包括:对每个报文内容向量进行归一化处理,其中,归一化处理至少包括:降维处理。

需要说明的是,由于每个生产流量报文中所包含的关键字字段数量不同,最终得到的内容向量的向量维度t各不相同,并且通常内容向量都是高维向量,为了减轻聚类处理时的计算压力,通常考虑先进行降维预处理再进行聚类处理。

步骤S104,对于每个聚类簇,提取该聚类簇中与簇心距离最小的生产流量报文,并将该生产流量报文存入第三报文筛选集合。

需要说明的是,同一聚类簇中的所有内容向量链接的生产流量报文的报文内容相似度是很高的,对于报文结构相同的生产流量报文来说,若报文内容相似度也较高,说明它们很有可能包含相同的测试契约,为了避免最终确定的测试契约出现重复,在聚类簇中选取距离簇心最近的内容向量作为该簇的代表,提取该内容向量对应的生产流量报文存入第三报文筛选集合。

步骤S105,基于第二报文筛选集合与第三报文筛选集合,生成推荐报文,并将推荐报文发送至业务开发终端,其中,推荐报文中包含拟推荐的测试契约集合。

需要说明的是,经过递归模型的第一道结构筛选和聚类算法的第二道内容比对,得到的第二报文筛选集合与第三报文筛选集合中的生产流量报文都是结构不同、内容不同的,报文中包含的测试契约可以作为拟推荐测试契约。

需要说明的是,经过上述步骤的筛选,第二报文筛选集合与第三报文筛选集合中的生产流量报文中包含符合测试需求的测试契约,基于契约标识或者关键字提取测试契约,得到拟推荐的测试契约集合,基于测试契约集合中的所有测试契约生成推荐报文。

本发明实施例中,通过递归模型与聚类算法结合解析生产流量报文,简化了人工编写契约测试代码时进行手动比对报文结构和报文内容的步骤,也无需在确定测试契约后再行与产品人员、业务人员进行变更沟通,减少了理解成本与沟通成本。

本发明实施例中,还可以基于机器学习技术与自然语言处理技术自动推荐高可用的测试契约,帮助业务开发部门克服契约筛选、标记繁琐的困难,还可以自动排除结构、内容重复的生产流量报文,减小契约测试过程中大量重复契约导致的联测平台运行压力。

下面结合另一种具体的实施方式来说明本发明。

本发明实施方式针对契约测试流程中存在的人工编写契约测试代码步骤繁琐、人工进行契约筛选困难、平台数据压力激增等痛点,分析到上述痛点实际上是生产流量报文结构复杂、体量巨大导致人工进行契约筛选太过困难的问题,为解决这一问题,本发明实施方式综合运用数据预处理、JSON数据结构比对、聚类算法对网络数据流量进行分析、筛选与去重。

图2是根据本发明实施例的一种可选的基于机器学习的契约推荐系统的结构图,如图2所示,该推荐系统包括:预处理模块、结构比对模块、内容比对模块以及契约推荐模块,其中,预处理模块用于对生产流量报文进行数据预处理以及比对范围确认,结构比对模块基于DeepDiff工具对生产流量报文的报文结构进行比对与筛选,内容比对模块基于聚类算法对报文结构相同的生产流量报文进行内容比对与选择,契约推荐模块基于结构不同、内容具有代表性的生产流量报文生成推荐报文,并将推荐报文发送至业务开发终端,由业务开发终端对报文中的测试契约集合进行契约选择。

图3是根据本发明实施例的另一种可选的基于机器学习的契约推荐方法的流程图,如图3所示,该方法的流程包括:

步骤S301,通过统一的公共规则和关键字范围对生产流量报文的预处理。

1,总结公共规则,根据公共规则对生产流量报文中的网络流量数据进行判定,若满足公共规则,则直接判定为推荐报文。

例如,rpflag是指路由器端口标志(Router Port Flag),该标志用于指示网络流量数据包进入或离开路由器的特定端口,rpflag通常用于确定流量的源和目的地,以及流量经过的路径。rpflag=1与rpflag=2的生产流量报文可直接判定为两种不同的测试契约,将rpflag=1的生产流量报文直接定义为推荐报文,再对rpflag=2的生产流量报文进行下一步比对。

2,比对范围确认,使用预先准备的关键字字段集合对JSON格式的生产流量报文进行关键字字段匹配。

关键字字段集合中的内容可以根据具体的测试需求和契约定义进行确定,可能包括报文头部字段、报文体字段、特定标识字段等。通过对关键字字段比对,可以确保报文在传输过程中没有被篡改、丢失或损坏。

步骤S302,通过递归模型对生产流量报文进行结构筛选。

本发明实施例选用DeepDiff作为递归模型,DeepDiff是一个Python库,用于比较两个数据结构之间的差异,该Python库中包含三个常用类,DeepDiff、DeepSearch以及DeepHash,它们可以处理各种数据类型,包括字典、列表、集合等,并且可以找出两个数据结构之间的新增、删除、修改等差异。

将报文结构相同的生产流量报文筛选出来进行内容比对,其余报文结构不同的生产流量报文用于生成推荐报文。

步骤S303,通过聚类算法对生产流量报文进行内容筛选。

在结构比对过程中筛选出来的报文结构相同的生产数据流量,很有可能会出现报文内容也相同的情况,因此需要对它们进行内容比对。内容比对之前需要先将每个生产流量报文中的关键字字段进行提取,并利用向量化模型将提取得到的关键字字段转换为向量形式,得到字段向量,并将来源于同一报文的字段向量进行拼接,得到内容向量,使用该内容向量表示生产流量报文的报文内容。

对所有结构相同的生产流量报文的内容向量进行聚类处理,得到R个聚类簇,每个聚类簇对应有一个簇心,每个聚类簇中包含P个内容向量,每个内容向量链接一个生产流量报文,每个聚类簇链接的P个生产流量报文的内容相似度大于预设相似度阈值,R、P均为正整数。

在聚类簇中选取距离簇心最近的内容向量作为该簇的代表,提取该内容向量对应的生产流量报文,用于生成推荐报文。

步骤S304,将包含拟推荐测试契约的生产流量报文传输至业务开发终端。

本实施例中,可以整合所有推荐报文,将所有推荐报文传输至业务开发终端。

本发明实施例中,通过递归模型与聚类算法结合解析生产流量报文,简化了人工编写契约测试代码时进行手动比对报文结构和报文内容的步骤,也无需在确定测试契约后再行与产品人员、业务人员进行变更沟通,减少了理解成本与沟通成本。

本发明实施例中,还可以基于机器学习技术与自然语言处理技术自动推荐高可用的测试契约,帮助业务开发部门克服契约筛选、标记繁琐的困难,还可以自动排除结构、内容重复的生产流量报文,减小契约测试过程中大量重复契约导致的联测平台运行压力。

下面结合另一种可选的实施例来说明本发明。

实施例二

本实施例中提供的一种基于机器学习的契约推荐装置包含了多个实施单元,每个实施单元对应于上述实施例一中的各个实施步骤。

图4是根据本发明实施例的一种可选的基于机器学习的契约推荐装置的示意图,如图4所示,该装置可以包括:响应单元41,输入单元42,聚类单元43,提取单元44,生成单元45。

其中,响应单元41,用于响应契约推荐请求,获取生产流量报文集合,其中,生产流量报文集合中包含N个生产流量报文,生产流量报文用于记录目标金融系统在生产运行过程中产生的网络流量数据,N为正整数;

输入单元42,用于将生产流量报文集合输入至递归模型,由递归模型对所有生产流量报文进行结构比对,输出第一报文筛选集合和第二报文筛选集合,其中,第一报文筛选集合中存储相同报文结构对应的生产流量报文,第二报文筛选集合中存储有除第一报文筛选集合之外的生产流量报文,第二报文筛选集合中各个生产流量报文的报文结构互不相同;

聚类单元43,用于对第一报文筛选集合中的所有生产流量报文进行聚类处理,得到聚类结果,其中,聚类结果中包含R个聚类簇,每个聚类簇对应有一个簇心,每个聚类簇链接的P个生产流量报文的内容相似度大于预设相似度阈值,R、P均为正整数;

提取单元44,用于对于每个聚类簇,提取该聚类簇中与簇心距离最小的生产流量报文,并将该生产流量报文存入第三报文筛选集合;

生成单元45,用于基于第二报文筛选集合与第三报文筛选集合,生成推荐报文,并将推荐报文发送至业务开发终端,其中,推荐报文中包含拟推荐的测试契约集合。

上述契约推荐装置,可以先通过响应单元41响应契约推荐请求,获取生产流量报文集合,再通过输入单元42将生产流量报文集合输入至递归模型,由递归模型进行结构比对,将相同报文结构对应的生产流量报文存入第一报文筛选集合,将其余的报文结构互不相同的生产流量报文存入第二报文筛选集合,再通过聚类单元43对第一报文筛选集合中报文结构相同的所有生产流量报文进行聚类处理,得到R个聚类簇,每个聚类簇链接的P个生产流量报文的内容相似度大于预设相似度阈值,然后通过提取单元44对于每个聚类簇,提取聚类簇中与簇心距离最小的生产流量报文,存入第三报文筛选集合,最后通过生成单元45基于第二报文筛选集合与第三报文筛选集合,生成推荐报文,并将推荐报文发送至业务开发终端,其中,推荐报文中包含拟推荐的测试契约集合。

在本发明实施例中,通过递归模型对所有生产流量报文进行结构比对,将具有相同报文结构的生产流量报文筛选至第一报文筛选集合,并将剩余报文存入第二报文筛选集合,利用聚类处理的方式对具有相同报文结构的生产流量报文进行内容比对,使内容相似的生产流量报文归于同一个聚类簇,提取每个聚类簇中距离簇心最近的生产流量报文存入第三报文筛选集合,使用该生产流量报文的报文内容指示的测试契约代表该聚类簇中所有生产流量报文的报文内容指示的测试契约,最后,基于第二报文筛选集合中报文结构互不相同的生产流量报文以及第三报文筛选集合中报文内容具有代表性的生产流量报文,生成推荐报文并发送至业务开发终端,推荐报文中包含拟推荐测试契约集合,本发明实施例提出的契约推荐方法结合递归模型和聚类算法对海量生产流量报文进行结构筛选和内容筛选,将包含拟推荐测试契约集合的推荐报文发送至业务开发终端,无需再通过人工对报文结构以及报文内容逐一进行筛选,进而解决了相关技术中由于海量生产流量报文的结构复杂,契约测试过程中人工难以进行契约筛选的技术问题。

可选地,契约推荐装置还包括:改写模块,用于对于每个生产流量报文,将生产流量报文的报文格式改写为JSON格式;确认模块,用于基于公共规则对JSON格式的生产流量报文进行确认,得到确认结果,其中,公共规则包含目标金融系统针对网络流量数据设立的约束条件集合;统计模块,用于在确认结果指示生产流量报文符合公共规则的情况下,统计生产流量报文中包含的测试契约的契约总数量。

可选地,契约推荐装置还包括:定义模块,用于在契约总数量指示生产流量报文中仅包含一种测试契约的情况下,将该生产流量报文定义为推荐报文。

可选地,契约推荐装置还包括:查询模块,用于在确认结果指示生产流量报文不符合公共规则的情况下,或者,在契约总数量指示生产流量报文中包含的测试契约数量大于等于2的情况下,基于业务开发终端预先传输的关键字字段集合查询JSON格式的生产流量报文的报文字段,得到查询结果。

可选地,契约推荐装置还包括:标识模块,用于在查询结果指示生产流量报文不包含关键字字段集合中任一关键字字段的情况下,将该生产流量报文标识为无效契约报文,停止对该生产流量报文执行任一步骤;第一输入模块,用于在查询结果指示生产流量报文包含关键字字段集合中所有关键字字段的情况下,将生产流量报文输入至递归模型。

可选地,契约推荐装置还包括:预处理模块,用于对生产流量报文进行预处理操作,其中,预处理操作至少包括下述之一:去除停用词、统一字符大小写格式以及删除空格。

可选地,聚类单元包括:提取模块,用于对于每个生产流量报文,提取生产流量报文中的M个关键字字段,其中,M为正整数;第二输入模块,用于将M个关键字字段输入至向量化模型,输出M个字段向量,其中,一个关键字字段对应一个字段向量;拼接模块,用于拼接M个字段向量中的各个字段向量,得到生产流量报文对应的报文内容向量;整合模块,用于整合所有生产流量报文对应的报文内容向量,得到内容向量集合;聚类模块,用于对内容向量集合中的所有报文内容向量进行聚类处理,得到聚类结果。

可选地,聚类单元还包括:归一化模块,用于对每个报文内容向量进行归一化处理,其中,归一化处理至少包括:降维处理。

上述的基于机器学习的契约推荐装置还可以包括处理器和存储器,上述响应单元41,输入单元42,聚类单元43,提取单元44,生成单元45等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来基于第二报文筛选集合与第三报文筛选集合,生成推荐报文,并将推荐报文发送至业务开发终端。

上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:响应契约推荐请求,获取生产流量报文集合,其中,生产流量报文集合中包含N个生产流量报文,生产流量报文用于记录目标金融系统在生产运行过程中产生的网络流量数据,N为正整数;将生产流量报文集合输入至递归模型,由递归模型对所有生产流量报文进行结构比对,输出第一报文筛选集合和第二报文筛选集合,其中,第一报文筛选集合中存储相同报文结构对应的生产流量报文,第二报文筛选集合中存储有除第一报文筛选集合之外的生产流量报文,第二报文筛选集合中各个生产流量报文的报文结构互不相同;对第一报文筛选集合中的所有生产流量报文进行聚类处理,得到聚类结果,其中,聚类结果中包含R个聚类簇,每个聚类簇对应有一个簇心,每个聚类簇链接的P个生产流量报文的内容相似度大于预设相似度阈值,R、P均为正整数;对于每个聚类簇,提取该聚类簇中与簇心距离最小的生产流量报文,并将该生产流量报文存入第三报文筛选集合;基于第二报文筛选集合与第三报文筛选集合,生成推荐报文,并将推荐报文发送至业务开发终端,其中,推荐报文中包含拟推荐的测试契约集合。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的基于机器学习的契约推荐方法。

根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项的基于机器学习的契约推荐方法。

图5是根据本发明实施例的一种用于基于机器学习的契约推荐方法的电子设备(或移动设备)的硬件结构框图。如图5所示,电子设备可以包括一个或多个(图5中采用502a、502b,……,502n来示出)处理器502(处理器502可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器504。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 基于区块链的理财产品推荐方法、装置、介质及电子设备
  • 基于大数据的活动推荐方法、装置、电子设备及存储介质
  • 推荐电子卡片的方法、推荐电子卡片的装置和电子设备
  • 数据加密、机器学习模型训练方法、装置以及电子设备
  • 知识表示、机器学习模型训练、预测方法、装置以及电子设备
  • 一种基于机器学习的药物推荐方法、电子设备和计算机可读存储介质
  • 基于机器学习的理财推荐方法及装置
技术分类

06120116500671