本技术涉及知识图谱,尤其涉及一种代码画像构建方法、装置及电子设备。
背景技术:
1、当前,研发团队在接手代码工程后,首先通过集成开发环境(integrateddevelopment environment,ide)导入代码工程中的代码,并搭建和初始化运行环境,再结合代码工程中不完整的文档以及代码工程中的数据模型来了解代码工程所对应的业务需求和技术架构,然后再通过代码走读和调试的方式对导入的代码进行分析,从而逐步了解和学习接收的代码工程。
2、然而,在上述了解和学习接收的代码工程的过程中,无法判断整体代码质量,无法知道已存在的技术债;同时,还需要花费大量人力以及时间去梳理代码,使得学习接收的代码工程的效率低;此外,在对代码工程中的代码进行分析时,是通过工具割裂进行的代码分析,而各个工具具有一定学习成本,导致对代码工程的学习成本高。
技术实现思路
1、本技术提供了一种代码画像构建方法、装置及电子设备,用以解决无法判断接收的代码工程的整体代码质量,且无法知道已存在的技术债以及代码工程学习效率低、学习成本高的问题。具体实现方案如下:
2、第一方面,本技术提供了一种代码画像构建方法,所述方法包括:
3、导入代码工程中包含代码类数据的原始数据;
4、基于知识处理引擎,对所述原始数据进行分析,构建包含所述代码工程对应的代码静态扫描报告的代码画像。
5、通过上述申请实施例,根据知识处理引擎,对导入的代码工程中包含代码类数据的原始数据进行分析,构建出了包含代码工程对应的代码静态扫描报告的代码画像,从而基于代码画像中的代码静态扫描报告,可以获取代码工程的整体代码质量以及存在的技术债,进而避免了现有技术中无法确定代码工程整体代码质量以及存在的技术债的问题。同时,根据知识处理引擎来对包含代码类数据的原始数据进行分析,可以帮助研发团队高效、快速、高质量的掌握代码工程,从而提高了代码工程的学习效率与学习准确率。并且,无需研发团队通过逐个工具独立的学习代码工程,避免了代码工程中各个知识之间联系弱的问题。
6、在一种可能的实施方式中,所述基于知识处理引擎,对所述原始数据进行分析,构建包含所述代码工程对应的代码静态扫描报告的代码画像,包括:
7、基于所述知识处理引擎中的预设预处理方式,对所述原始数据进行预处理,得到待使用数据;
8、基于所述知识处理引擎中的分析工具,分析所述待使用数据,得到目标数据集;
9、基于所述知识处理引擎中的可视化工具,可视化所述目标数据集,构建包含所述代码工程对应的所述代码静态扫描报告的所述代码画像。
10、在一种可能的实施方式中,所述待使用数据包括待使用代码,则所述基于所述知识处理引擎中的预设预处理方式,对所述原始数据进行预处理,得到待使用数据,包括:
11、针对所述原始数据中的所述代码类数据进行标准编码校验,得到第一中间代码数据;
12、去除所述第一中间代码数据中的异常数据,得到第二中间代码数据;其中,所述异常数据包括不规则符号;
13、遍历所述代码工程的目录,合并所述第二中间代码数据中具有依赖与关联的文件,得到所述待使用代码。
14、在一种可能的实施方式中,所述分析工具包括结构化梳理工具,所述目标数据集包括实体以及关系、所述代码静态扫描报告,则所述基于所述知识处理引擎中的分析工具,分析所述待使用数据,得到目标数据集,包括:
15、基于所述结构化梳理工具,对所述待使用数据进行结构化梳理,得到所述实体以及关系、所述代码静态扫描报告。
16、在一种可能的实施方式中,所述分析工具还包括聊天生成预训练转换器chatgpt;所述目标数据集还包括所述待使用代码对应的流程描述语言dsl、所述待使用代码对应的目标代码以及所述待使用代码对应的代码安全加固策略;所述目标代码是带有注释的所述待使用代码;则所述基于所述知识处理引擎中的分析工具,分析所述待使用数据,得到目标数据集,包括:
17、调用所述chatgpt,并在所述chatgpt的接口输入所述待使用代码,生成所述dsl、所述目标代码与所述代码安全加固策略。
18、在一种可能的实施方式中,所述分析工具还包括知识图谱,所述目标数据集包括第一知识库,则所述基于所述知识处理引擎中的分析工具,分析所述待使用数据,得到目标数据集,包括:
19、解析所述待使用数据中的待使用代码,得到所述待使用代码中的核心实体与所述核心实体对应的核心方法;
20、基于所述知识图谱,根据所述核心实体、所述核心方法,确定出包含所述核心方法、所述核心方法对应的第一异常问题、所述第一异常问题对应的第一解决方案与所述第一异常问题关联的第一代码行的所述第一知识库。
21、在一种可能的实施方式中,在所述基于所述知识图谱,根据所述核心实体、所述核心方法,确定出包含所述核心方法、所述核心方法对应的第一异常问题、所述第一异常问题对应的第一解决方案与所述第一异常问题关联的第一代码行的所述第一知识库之前,还包括:
22、从信息技术it问答网站下载包含多种问题、每种问题的解决方案与对应代码的原始问答物料,并去除所述原始问答物料中的异常数据,得到初始数据;
23、从所述初始数据中确定出具有功能特征的文本片段,并提取所述文本片段中的动宾短语;
24、基于每一个动宾短语的出现频次,确定出候选功能特征;
25、针对所述候选功能特征进行分类,得到临时列表;
26、针对所述临时列表进行类组织与层次化组织,得到待使用问答物料。
27、在一种可能的实施方式中,所述基于所述知识图谱,根据所述核心实体、所述核心方法,确定出包含所述核心方法、所述核心方法对应的第一异常问题、所述第一异常问题对应的第一解决方案与所述第一异常问题关联的第一代码行的所述第一知识库,包括:
28、将所述核心实体、所述核心方法与所述待使用问答物料进行匹配,在所述待使用问答物料中确定出包含所述核心方法、所述核心方法对应的所述第一异常问题、所述第一异常问题对应的所述第一解决方案与所述第一异常问题关联的所述第一代码行的所述第一知识库。
29、在一种可能的实施方式中,在所述构建包含所述代码工程对应的代码静态扫描报告的代码画像之后,还包括:
30、当运行所述代码工程中的所述待使用代码出现异常时,调用所述代码画像中的所述第一知识库;
31、基于所述第一知识库,确定所述待使用代码出现的异常的所述第一解决方案,并基于所述第一解决方案,解决所述待使用代码出现的异常。
32、在一种可能的实施方式中,所述原始数据还包括异常日志类数据;所述待使用数据还包括待使用异常日志;则所述基于所述知识处理引擎中的预设预处理方式,对所述原始数据进行预处理,得到待使用数据,包括:
33、从所述异常日志类数据中提取出第二异常问题、所述第二异常问题对应的异常方法、所述异常方法对应的路径以及所述异常方法对应的第二代码行;
34、将所述第二异常问题、所述异常方法、所述异常方法对应的路径以及所述第二代码行确定为待使用异常日志。
35、在一种可能的实施方式中,所述目标数据集还包括第二知识库;则所述基于所述知识处理引擎中的分析工具,分析所述待使用数据,得到目标数据集,包括:
36、将所述待使用异常日志与待使用问答物料进行匹配,在所述待使用问答物料中确定出包括所述待使用异常日志对应的第二解决方案的所述第二知识库。
37、第二方面,本技术还提供了一种代码画像构建装置,所述装置包括:
38、导入模块,用于导入代码工程中包含代码类数据的原始数据;
39、处理模块,用于基于知识处理引擎,对所述原始数据进行分析,构建包含所述代码工程对应的代码静态扫描报告的代码画像。
40、在一种可能的实施方式中,所述处理模块,具体用于基于所述知识处理引擎中的预设预处理方式,对所述原始数据进行预处理,得到待使用数据;基于所述知识处理引擎中的分析工具,分析所述待使用数据,得到目标数据集;基于所述知识处理引擎中的可视化工具,可视化所述目标数据集,构建包含所述代码工程对应的所述代码静态扫描报告的所述代码画像。
41、在一种可能的实施方式中,所述待使用数据包括待使用代码,则所述处理模块,具体用于针对所述原始数据中的所述代码类数据进行标准编码校验,得到第一中间代码数据;去除所述第一中间代码数据中的异常数据,得到第二中间代码数据;其中,所述异常数据包括不规则符号;遍历所述代码工程的目录,合并所述第二中间代码数据中具有依赖与关联的文件,得到所述待使用代码。
42、在一种可能的实施方式中,所述分析工具包括结构化梳理工具,所述目标数据集包括实体以及关系、所述代码静态扫描报告,则所述处理模块,具体用于基于所述结构化梳理工具,对所述待使用数据进行结构化梳理,得到所述实体以及关系、所述代码静态扫描报告。
43、在一种可能的实施方式中,所述分析工具还包括聊天生成预训练转换器chatgpt;所述目标数据集还包括所述待使用代码对应的流程描述语言dsl、所述待使用代码对应的目标代码以及所述待使用代码对应的代码安全加固策略;所述目标代码是带有注释的所述待使用代码;则所述处理模块,具体用于调用所述chatgpt,并在所述chatgpt的接口输入所述待使用代码,生成所述dsl、所述目标代码与所述代码安全加固策略。
44、在一种可能的实施方式中,所述分析工具还包括知识图谱,所述目标数据集包括第一知识库,则所述处理模块,具体用于解析所述待使用数据中的待使用代码,得到所述待使用代码中的核心实体与所述核心实体对应的核心方法;基于所述知识图谱,根据所述核心实体、所述核心方法,确定出包含所述核心方法、所述核心方法对应的第一异常问题、所述第一异常问题对应的第一解决方案与所述第一异常问题关联的第一代码行的所述第一知识库。
45、在一种可能的实施方式中,在所述基于所述知识图谱,根据所述核心实体、所述核心方法,确定出包含所述核心方法、所述核心方法对应的第一异常问题、所述第一异常问题对应的第一解决方案与所述第一异常问题关联的第一代码行的所述第一知识库之前,所述处理模块,具体用于从信息技术it问答网站下载包含多种问题、每种问题的解决方案与对应代码的原始问答物料,并去除所述原始问答物料中的异常数据,得到初始数据;从所述初始数据中确定出具有功能特征的文本片段,并提取所述文本片段中的动宾短语;基于每一个动宾短语的出现频次,确定出候选功能特征;针对所述候选功能特征进行分类,得到临时列表;针对所述临时列表进行类组织与层次化组织,得到待使用问答物料。
46、在一种可能的实施方式中,所述处理模块,具体用于将所述核心实体、所述核心方法与所述待使用问答物料进行匹配,在所述待使用问答物料中确定出包含所述核心方法、所述核心方法对应的所述第一异常问题、所述第一异常问题对应的所述第一解决方案与所述第一异常问题关联的所述第一代码行的所述第一知识库。
47、在一种可能的实施方式中,在所述构建包含所述代码工程对应的代码静态扫描报告的代码画像之后,所述处理模块,具体用于当运行所述代码工程中的所述待使用代码出现异常时,调用所述代码画像中的所述第一知识库;基于所述第一知识库,确定所述待使用代码出现的异常的所述第一解决方案,并基于所述第一解决方案,解决所述待使用代码出现的异常。
48、在一种可能的实施方式中,所述原始数据还包括异常日志类数据;所述待使用数据还包括待使用异常日志;则所述处理模块,具体用于从所述异常日志类数据中提取出第二异常问题、所述第二异常问题对应的异常方法、所述异常方法对应的路径以及所述异常方法对应的第二代码行;将所述第二异常问题、所述异常方法、所述异常方法对应的路径以及所述第二代码行确定为待使用异常日志。
49、在一种可能的实施方式中,所述目标数据集还包括第二知识库;则所述处理模块,具体用于将所述待使用异常日志与待使用问答物料进行匹配,在所述待使用问答物料中确定出包括所述待使用异常日志对应的第二解决方案的所述第二知识库。
50、第三方面,本技术提供了一种电子设备,包括:
51、存储器,用于存放计算机程序;
52、处理器,用于执行所述存储器上所存放的计算机程序时,实现上述的一种代码画像构建方法步骤。
53、第四方面,本技术提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述的一种代码画像构建方法步骤。
54、上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。