[发明专利]一种数据处理方法和装置在审
申请号: | 202111369264.0 | 申请日: | 2021-11-18 |
公开(公告)号: | CN114065726A | 公开(公告)日: | 2022-02-18 |
发明(设计)人: | 黄振桓 | 申请(专利权)人: | 北京迪力科技有限责任公司 |
主分类号: | G06F40/194 | 分类号: | G06F40/194;G06F16/14;G06F16/16 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 韩丽波 |
地址: | 100096 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 装置 | ||
本申请公开一种数据处理方法,基于源代码项目文件提取第一结构数据,并根据第一结构数据与基于待比较代码文件生成的第二结构数据比较相似性,进而得到源代码项目文件和待比较代码文件的相似性。相较于现有技术,可以大大减少计算负担,提升数据处理效率。由于第一结构数据相较于源代码项目文件,具有占用存储空间较小的特点,因此有效节省运行上述数据处理方法的计算机的存储空间。
技术领域
本申请涉及软件开发技术领域,尤其涉及一种数据处理方法和装置。
背景技术
对待分析的软件进行溯源分析是评估计算软件项目自主可控程度的重要环节之一,其效率和准确程度对评估工作有重要影响。
目前,对软件项目进行快速溯源,在软件项目库中查找该软件项目最相似的项目,通常采用抽象结构树(abstract structure tree,AST)算法。具体的,对待分析的软件项目的代码文件中所有函数进行抽象语法树的生成处理,与项目库中每个项目的抽象语法树的对比,计算得到软件库中与该待分析的代码文件最为相似的项目。
然而,软件项目的代码本身规模较大,包含数万个代码文件;而软件项目库的规模更是海量,通常包含数以十亿的代码文件。所以在包含数以十亿文件的软件项目库中寻找与数万个文件最为相似的软件项目,需要耗费大量计算资源和占用大量处理时间。
发明内容
本申请第一方面提供一种数据处理方法,包括:
获取源代码项目文件,所述源代码项目文件包括一个或多个文件,所述文件包括所述文件的路径;
根据所述源代码项目文件,提取所述源代码项目文件中所述文件的名称和所述文件的路径,生成第一结构数据,所述第一结构数据包括所述文件的名称和所述文件的路径;
获取第二结构数据,所述第二结构数据为待比较的结构数据,所述第二结构数据包括待比较代码文件的文件名称和路径;
根据所述第一结构数据和所述第二结构数据,生成第一比较结果,所述第一比较结果指示所述源代码项目文件与所述待比较代码文件的相似性。
本申请第二方面提供一种数据处理装置,包括:
获取模块,用于获取源代码项目文件,所述源代码项目文件包括一个或多个文件,所述文件包括所述文件的路径;
处理模块,用于根据所述源代码项目文件,提取所述源代码项目文件中所述文件的名称和所述文件的路径,生成第一结构数据,所述第一结构数据包括所述文件的名称和所述文件的路径;
所述获取模块,还用于获取第二结构数据,所述第二结构数据为待比较的结构数据,所述第二结构数据包括待比较代码文件的文件名称和路径;
所述处理模块,还用于根据所述第一结构数据和所述第二结构数据,生成第一比较结果,所述第一比较结果指示所述源代码项目文件与所述待比较代码文件的相似性。
第三方面,本申请提供一种数据处理装置,数据处理装置可以包括一个或一个以上处理器、存储器以及通信接口。
处理器、存储器以及通信接口通过总线相接。
存储器用于存储程序指令,处理器调用存储器中存储的程序指令,以执行上述第一方面数据处理方法中的步骤。
第四方面、本申请还提供了一种计算机装置,包括处理器,该处理器在执行存储于存储器上的计算机程序时,用于实现本发明实施例第一方面提供的数据处理方法。
第五方面、本申请还提供了一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,用于实现本发明实施例第一方面提供的数据处理方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京迪力科技有限责任公司,未经北京迪力科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111369264.0/2.html,转载请声明来源钻瓜专利网。