【技术实现步骤摘要】
小程序代码相似度确定方法、装置、服务器及存储介质
本申请涉及计算机领域,特别涉及一种小程序代码相似度确定方法、装置、服务器及存储介质。
技术介绍
小程序是一种依赖于宿主程序运行的程序。用户只需要安装宿主程序,即可在宿主程序中随时添加和使用各种各样的小程序。宿主程序的开发商提供开放平台,小程序开发者可以通过开放平台上传小程序,由宿主程序的开发商对小程序进行内容审核,并在通过审核后,进行小程序上线。此外,为了保证小程序同质化,在进行内容审核的同时,会对小程序代码进行相似度检测,从而发现小程序代码的抄袭行为。相关技术中,通常使用代码相似度检测工具进行代码相似度检测,其中,代码相似度检测工具包括斯坦福莫斯(StandfordMoss)、戴克(DecKard)等等。然而,相关技术中使用的代码相似度检测工具,仅能够通过比较两两代码确定程序之间的相似度,应用于小程序代码检测时,由于小程序数量庞大,导致小程序代码相似度检测的效率较低,进而影响小程序的上线速度。
技术实现思路
本申请实施例提供了一种小程序代码相似度确定方法、装置、服务器及存储介质,可以提高小程序代码相似度的检测效率。所述技术方案如下:一方面,本申请实施例提供了一种小程序代码相似度确定方法,所述方法包括:获取第一小程序对应小程序代码的抽象语法树,所述抽象语法树用于表征所述小程序代码的抽象语法结构;基于所述抽象语法树中节点之间的父子关系,对所述抽象语法树进行特征提取,得到所述第一小程序的代码特征;根据所述 ...
【技术保护点】
1.一种小程序代码相似度确定方法,其特征在于,所述方法包括:/n获取第一小程序对应小程序代码的抽象语法树,所述抽象语法树用于表征所述小程序代码的抽象语法结构;/n基于所述抽象语法树中节点之间的父子关系,对所述抽象语法树进行特征提取,得到所述第一小程序的代码特征;/n根据所述代码特征生成所述第一小程序的第一小程序指纹;/n根据所述第一小程序指纹与小程序指纹库中第二小程序的第二小程序指纹,确定所述第一小程序与所述第二小程序的代码相似度。/n
【技术特征摘要】
1.一种小程序代码相似度确定方法,其特征在于,所述方法包括:
获取第一小程序对应小程序代码的抽象语法树,所述抽象语法树用于表征所述小程序代码的抽象语法结构;
基于所述抽象语法树中节点之间的父子关系,对所述抽象语法树进行特征提取,得到所述第一小程序的代码特征;
根据所述代码特征生成所述第一小程序的第一小程序指纹;
根据所述第一小程序指纹与小程序指纹库中第二小程序的第二小程序指纹,确定所述第一小程序与所述第二小程序的代码相似度。
2.根据权利要求1所述的方法,其特征在于,所述基于所述抽象语法树中节点之间的父子关系,对所述抽象语法树进行特征提取,得到所述第一小程序的代码特征,包括:
从所述抽象语法树中选取语法子树,所述语法子树为预设深度;
按照节点遍历规则遍历所述语法子树中的节点,得到所述语法子树对应的特征序列,所述特征序列包含所述语法子树中各个节点的节点名称,所述节点遍历规则为深度遍历或广度遍历;
将由所述特征序列构成的集合确定为所述代码特征。
3.根据权利要求2所述的方法,其特征在于,所述根据所述代码特征生成所述第一小程序的第一小程序指纹,包括:
根据所述代码特征生成所述第一小程序的第一原始指纹,所述第一原始指纹的特征值数量与所述特征序列的数量相同;
对所述第一原始指纹进行特征降维,得到所述第一小程序的第一索引指纹,所述第一索引指纹包含预设数量的特征维度;
将所述第一原始指纹和所述第一索引指纹确定为所述第一小程序指纹。
4.根据权利要求3所述的方法,其特征在于,所述根据所述代码特征生成所述第一小程序的第一原始指纹,包括:
通过字典模型,对所述代码特征中的所述特征序列进行特征转换,得到所述特征序列对应的特征值,所述字典模型中包含所述特征序列与所述特征值之间的映射关系;
将由所述特征值构成的集合确定为所述第一原始指纹。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于所述字典模型不包含所述代码特征中所述特征序列对应的所述特征值,为所述代码特征中的所述特征序列分配目标特征值,所述目标特征值和所述字典模型中的所述特征值不同;
根据所述目标特征值和所述代码特征中的所述特征序列更新所述字典模型。
6.根据权利要求3所述的方法,其特征在于,所述对所述第一原始指纹进行特征降维,得到所述第一小程序的第一索引指纹,所述第一索引指纹包含预设数量的特征维度,包括:
通过最小哈希算法,对所述第一原始指纹进行特征降维,得到所述第一索引指纹。
7.根据权利要求3至6任一所述的方法,其特征在于,所述根据所述第一小程序指纹与小程序指纹库中第二小程序的第二小程序指纹,确定所述第一小程序与所述第二小程序的代码相似度,包括:
根据所述第一索引指纹,从所述小程序指纹库中筛选所述第二小程序,所述第二小程序的第二索引指纹与所述第一索引指纹的索引相似度大于阈值;
根据所述第一原始指纹,以及所述第二小程序的第二原始指纹,确定所述第一小程序与所述第二小程序的所述代码相似度。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一索引指纹,从所述小程序指纹库中筛选所述第二小程序,包括:<...
【专利技术属性】
技术研发人员:徐松斌,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。