CN108170468B - 一种自动检测注释和代码一致性的方法及其系统 - Google Patents

一种自动检测注释和代码一致性的方法及其系统 Download PDF

Info

Publication number
CN108170468B
CN108170468B CN201711456698.8A CN201711456698A CN108170468B CN 108170468 B CN108170468 B CN 108170468B CN 201711456698 A CN201711456698 A CN 201711456698A CN 108170468 B CN108170468 B CN 108170468B
Authority
CN
China
Prior art keywords
code
annotation
similarity
word
features
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711456698.8A
Other languages
English (en)
Other versions
CN108170468A (zh
Inventor
刘志勇
陈湘萍
林格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN201711456698.8A priority Critical patent/CN108170468B/zh
Publication of CN108170468A publication Critical patent/CN108170468A/zh
Application granted granted Critical
Publication of CN108170468B publication Critical patent/CN108170468B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • G06F8/751Code clone detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种自动检测注释和代码一致性的方法及其系统,所述方法包括:提取海量代码,进行分块处理,并对变化前后的代码块一一对应,获得代码数据集;获取代码数据集,进行特征提取处理,获得代码数据集中的代码文本特征、代码片段的变化特征、注释特征、注释与代码关联特征的特征向量集;对所述特征向量集进行分类处理,获得的分类结果即为注释和代码的检测结果。在实施本发明实施例中,通过对注释和代码片段的文本信息进行交叉融合,计算注释和代码的语义相似度;使用启发式规则,对代码进行分块,以更小的粒度检测注释和代码的一致性,能够使检测结果具有更高的准确率和更精确的检测范围,更便捷、且适用性极高。

Description

一种自动检测注释和代码一致性的方法及其系统
技术领域
本发明涉及程序理解、代码分析、机器学习技术领域,尤其涉及一种自动检测注释和代码一致性的方法及其系统。
背景技术
近年来,随着软件产业的发展,软件的规模和复杂性在不断提高,软件的生命周期也越来越长。在软件生命周期中,软件维护的工作量占据了整个生命周期的70%以上。如何减少软件维护的工作量,降低软件维护成本,提高软件的可维护性就成了提高软件生产效率和软件质量的关键,而在软件维护的过程中,软件维护人员主要依赖源代码及其相关代码注释以理解软件的设计及实现,从而对软件进行维护。其中,代码注释包括软件API文档、源代码中的注释信息、版本库中的提交注释信息等,这些代码注释在软件维护和程序理解中扮演了重要的角色,有研究表明,质量良好的代码注释可以显著提高开发和维护人员对程序理解的效率。因此,提高代码注释的质量将有效提高软件的可维护性,进而提高软件的质量。
代码注释的质量对软件的可维护性具有显著影响,一段与程序行为不符的注释将误导开发和维护人员,并对程序进行错误的理解和使用。而一段无意义的注释或者注释掉代码行的注释则会影响开发和维护人员的阅读,其非但没有提供有用的信息,反而增加了额外的阅读工作。对代码注释进行检查,过滤掉那些“坏”注释,可以有效的提高源代码的质量。传统的代码注释检查主要关注注释的长度和注释中是否包含代码两方面,这可以在一定程度上检查出质量低的注释,其问题在于没有检查出那些与程序行为不符的注释,而这种注释往往对软件的可维护性造成很大影响。
常见的注释和代码的一致性检测方法,主要分为以下三类:测试驱动的检测、基于自然语言处理的检测以及基于机器学习的检测。测试驱动的检测比较局限,只能检测特定类型和格式的注释和代码的一致性。基于自然语言处理的检测不能很好的处理自然语言和编程语言之间语义鸿沟的问题。基于机器学习的检测可以处理不同类型和不同格式的注释和代码,但其比较依赖于模型的特征选择。
测试驱动的检测方法通过分析注释和代码的结构,然后根据这些结构特征动态生成测试用例并运行,将通过测试的注释和代码认为是一致的,未通过测试的注释和代码认为是不一致的。其中,利用一个名为@tComment的工具进行检测Javadoc类型的注释与代码的一致性。其使用Randoop工具,根据方法的参数和返回值以及注释中的@return和@Exception标签动态生成测试用例,检测该方法是否满足注释中的@return和@Exception标签所描述的约束条件。如果满足,则认为注释和代码是一致的。反之则为不一致。
基于自然语言处理的方法是通过自然语言处理的技术,首先对注释和代码做预处理,然后从中提取用于验证注释和代码一致性的规则,最后通过这些规则来验证注释和代码的一致性。如一种面向对象程序的注释质量评价和注释建议方法,该方法首先从类和方法中提取类和方法的信息以及与之相关联的注释信息,然后根据制定的分析规则对不满足规则的注释给出相应的建议。另外还有利用一个名为iComment的工具检测特定主题的注释和代码的一致性。该工具首先通过自然语言处理的技术,从注释中提取与代码编写者的意图或需求相关的规则,然后验证代码是否满足这些规则,满足则认为是一致的,不满足则认为注释是“坏注释”或者“bug”。
基于机器学习的检测方法引入分类器的概念,将注释和代码的一致性检测转化为一个二分类问题,当注释和代码一致时,分类为“0”,当注释和代码不一致时,分类为“1”。通过在已知数据集中进行模型学习,并将学习好的模型用于未知数据的分类中。如一种基于机器学习的源代码注释质量评估方法。该方法在对原始的代码注释作预处理后对注释信息作人工标注,然后挖掘注释的文本特征,组合多种分类器对注释作出分类。另外还有采用随机森林算法,在方法变化、语句变化以及代码修改时间和修改作者这几个维度提取特征,根据这些特征训练分类器模型,对注释和代码作出是否一致的验证。
但测试驱动的注释和代码的一致性检测方法只能用于结构良好的注释如Javadoc注释中,且其检测的准确率依赖于测试用例。在没有明显结构特征的注释中,该方法将无法有效地生成验证条件,从而无法对注释和代码的一致性作出有效判别。基于自然语言处理的注释和代码的一致性检测方法,在通过注释信息对程序编写者意图或需求进行提取之后,还需要将提取出的信息与代码相互对应。而注释一般以自然语言表示,代码以编程语言表示。两种不同语言表达同一种意思所选择的单词可能完全不同,如在自然语言中使用“skip”表示跳过某种情况,而在编程语言中使用关键字“continue”表示跳过某种情况。在自然语言的语义中“skip”和“continue”没有语义关联性,但在注释和代码的上下文中,则表示同一种语义。基于机器学习的注释和代码的一致性检测方法可以对不同类型的注释作出一致性检测,但其检测准确率依赖于分类器中特征的选择。现有的基于机器学习的注释和代码的一致性检测方法只考虑到了代码及代码的变化特征,而没有考虑注释的特征以及注释和代码的关联性特征,且其在一致性检测的粒度只能最小化到方法。分类器找出不一致的注释和代码后,开发人员还需要在动辄几十行,甚至是几百行的代码片段中寻找哪个注释与代码不一致,这依旧是个不小的工作量。
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种自动检测注释和代码一致性的方法及其系统,通过对注释和代码片段的文本信息进行交叉融合,计算注释和代码的语义相似度;使用启发式规则,对代码进行分块,以更小的粒度检测注释和代码的一致性,能够使检测结果具有更高的准确率和更精确的检测范围,更便捷、且适用性极高。
为了解决上述问题,本发明提出了一种自动检测注释和代码一致性的方法,所述方法包括:
提取海量代码,进行分块处理,并对变化前后的代码块一一对应,获得代码数据集;
获取代码数据集,进行特征提取处理,获得代码数据集中的代码文本特征、代码片段的变化特征、注释特征、注释与代码关联特征的特征向量集;
对所述特征向量集进行分类处理,获得的分类结果即为注释和代码的检测结果。
优选地,所述进行分快处理,该处理步骤是按照注释作用域的具体规则来进行分块,该具体规则包括:
1.代码片段的起始行为当前注释的下一行;
2.代码片段的结束行不得超过代码片段所在的方法的结束行;
3.代码片段的结束行不得超过代码片段所在的块的结束行;
4.如果在代码片段所在块中,包含其他注释,并出现在当前注释之后,则代码片段的结束行为当前注释的下一条注释的前一行;
5.如果当前注释与下一条注释之间不包含代码,则将这两条注释合并为一条注释。
优选地,所述代码数据集中的代码文本特征分别从变化前的代码片段和变化后的代码片段中提取代码文本特征,包括:代码片段的语句个数、代码片段的控制语句个数、代码片段的方法调用语句个数、代码片段的赋值语句个数、代码片段的变量声明个数。
优选地,所述代码变化特征提取步骤包括:
获取代码数据集,比较变化前和变化候的代码片段,获得代码片段的变化信息;
对代码片段的变化信息进行特征提取,获得代码片段的变化特征。
优选地,所述代码片段的变化特征包括:代码片段的变化语句个数、变化语句为控制语句的个数、变化语句为方法调用语句的个数、变化语句为赋值语句的个数、变化语句为变量声明的个数、变化语句为“Assert”语句的个数、变化语句为“print”语句的个数、变化语句为“log”语句的个数、变化语句为同构类型的个数。
优选地,所述的注释特征包括:注释中是否包含特殊的单词(“Todo”,“Fixme”,“XXX”等)、代码片段所在类的注释密度、代码片段所在方法的注释密度、代码片段所在块中的注释密度。
优选地,所述的注释与代码关联特征中取代码的语义和注释之间的相似度作为两者的关联特征,包括:变化前的代码片段和注释的相似度、变化后的代码片段和注释的相似度、代码片段变化前后和注释的相似度之差、变化前的变化语句和注释的相似度、变化后的变化语句和注释的相似度、变化语句变化前后和注释的相似度之差。
优选地,对所述代码的语义和注释之间的相似度的计算方法采用基于Skip-gram的代码和注释语义融合的词向量模型,作为注释和代码单词的词向量模型,根据词向量模型进行计算注释和代码的相似度:
对两个单词的相似度为两个单词的词向量的余弦距离,计算公式为:
sim(w1,w2)=cos(w1,w2)
单词与句子的相似度为单词与句子中的单词的最大相似度,计算公式为:
Figure BDA0001529387450000051
句子与句子的相似度计算公式为:
Figure BDA0001529387450000052
其中,
Figure BDA0001529387450000053
n为S1中的单词个数;w为单词;S为句子。
优选地,对所述获得代码数据集中的代码文本特征、代码片段的变化特征、注释特征、注释与代码关联特征的特征向量集,提取一部分作为随机森林分类器模型的训练集,通过比较训练数据变化前后的注释,如果变化前后的注释具有相同的文本内容,则将其标记为“0”类,表示这一类型的代码变化不会引起注释的变化。反之,标记为“1”类,表示这一类型的代码变化会引起注释的变化。其计算公式为:
J(w)=C01×FN+C10×FP
其中,C01表示分类器将类别为“1”的样本分类为“0”的代价,C10表示分类器将类别为“0”的样本分类为1的代价。FN表示错误分类为“0”的样本占总样本的比例,FP表示错误分类为“1”的样本占总样本的比例。
优选地,当所述获得的分类结果为“0”时,则表示注释和代码一致,注释不需要变化;
当所述获得的分类结果为“1”时,则表示注释和代码不一致,注释需要变化。
相应地,本发明实施例还公开了一种自动检测注释和代码一致性的系统,所述系统包括:
代码分块模块,用于提取海量代码,进行分块处理,获得代码数据集;
特征提取模块,用于对代码数据集进行特征提取处理,获得代码数据集中的代码文本特征、代码片段的变化特征、注释特征、注释与代码关联特征的特征向量集
分类模块,用于对特征向量集进行分类处理。
优选地,代码分块模块还包括对比单元,用于对变化前后的代码块进行一一对应处理。
优选地,特征提取模块还包括计算单元用于计算代码的语义和注释的相似度之差。
在本发明实施例中,通过对注释和代码片段的文本信息进行交叉融合,计算注释和代码的语义相似度;使用启发式规则,对代码进行分块,以更小的粒度检测注释和代码的一致性,能够使检测结果具有更高的准确率和更精确的检测范围,更便捷、且适用性极高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例的一种自动检测注释和代码一致性的方法流程示意图;
图2是本发明实施例的一种自动检测注释和代码一致性的系统结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例的一种自动检测注释和代码一致性的方法流程示意图,如图1所示,该方法包括:
S1,提取海量代码,进行分块处理,并对变化前后的代码块一一对应,获得代码数据集;
S2,获取代码数据集,进行特征提取处理,获得代码数据集中的代码文本特征、代码片段的变化特征、注释特征、注释与代码关联特征的特征向量集;
S3,对所述特征向量集进行分类处理,获得的分类结果即为注释和代码的检测结果。
具体地,S1中所述的进行分快处理,该处理步骤是按照注释作用域的具体规则来进行分块,该具体规则包括:
1.代码片段的起始行为当前注释的下一行;
2.代码片段的结束行不得超过代码片段所在的方法的结束行;
3.代码片段的结束行不得超过代码片段所在的块的结束行;
4.如果在代码片段所在块中,包含其他注释,并出现在当前注释之后,则代码片段的结束行为当前注释的下一条注释的前一行;
5.如果当前注释与下一条注释之间不包含代码,则将这两条注释合并为一条注释。
进一步地,S2中所述的代码数据集中的代码文本特征分别从变化前的代码片段和变化后的代码片段中提取代码文本特征,包括:代码片段的语句个数、代码片段的控制语句个数、代码片段的方法调用语句个数、代码片段的赋值语句个数、代码片段的变量声明个数。
S2中所述的代码变化特征提取步骤包括:
S221,获取代码数据集,比较变化前和变化候的代码片段,获得代码片段的变化信息;
S222,对代码片段的变化信息进行特征提取,获得代码片段的变化特征。
S222中所述的代码片段的变化特征包括:代码片段的变化语句个数、变化语句为控制语句的个数、变化语句为方法调用语句的个数、变化语句为赋值语句的个数、变化语句为变量声明的个数、变化语句为“Assert”语句的个数、变化语句为“print”语句的个数、变化语句为“log”语句的个数、变化语句为同构类型的个数。
S2中所述的注释特征包括:注释中是否包含特殊的单词(“Todo”,“Fixme”,“XXX”等)、代码片段所在类的注释密度、代码片段所在方法的注释密度、代码片段所在块中的注释密度。
S2中所述的注释与代码关联特征中取代码的语义和注释之间的相似度作为两者的关联特征,包括:变化前的代码片段和注释的相似度、变化后的代码片段和注释的相似度、代码片段变化前后和注释的相似度之差、变化前的变化语句和注释的相似度、变化后的变化语句和注释的相似度、变化语句变化前后和注释的相似度之差。
其中,对所述代码的语义和注释之间的相似度的计算方法是采用基于Skip-gram的代码和注释语义融合的词向量模型,作为注释和代码单词的词向量模型,根据词向量模型进行计算注释和代码的相似度:
对两个单词的相似度为两个单词的词向量的余弦距离,计算公式为:
sim(w1,w2)=cos(w1,w2)
单词与句子的相似度为单词与句子中的单词的最大相似度,计算公式为:
Figure BDA0001529387450000081
句子与句子的相似度计算公式为:
Figure BDA0001529387450000082
其中,
Figure BDA0001529387450000091
n为S1中的单词个数;w为单词;S为句子。
进一步地,对S2获得的所述获得代码数据集中的代码文本特征、代码片段的变化特征、注释特征、注释与代码关联特征的特征向量集,提取一部分作为随机森林分类器模型的训练集,通过比较训练数据变化前后的注释,如果变化前后的注释具有相同的文本内容,则将其标记为“0”类,表示这一类型的代码变化不会引起注释的变化。反之,标记为“1”类,表示这一类型的代码变化会引起注释的变化。其计算公式为:
J(w)=C01×FN+C10×FP
其中,C01表示分类器将类别为“1”的样本分类为“0”的代价,C10表示分类器将类别为“0”的样本分类为1的代价。FN表示错误分类为
“0”的样本占总样本的比例,FP表示错误分类为“1”的样本占总样本的比例。
进一步地,当S3中所述的获得的分类结果为“0”时,则表示注释和代码一致,注释不需要变化;
当S3中所述的获得的分类结果为“1”时,则表示注释和代码不一致,注释需要变化。
相应地,本发明实施例还公开了一种自动检测注释和代码一致性的系统,如图2所示,所述系统包括:
代码分块模块,用于提取海量代码,进行分块处理,获得代码数据集;
特征提取模块,用于对代码数据集进行特征提取处理,获得代码数据集中的代码文本特征、代码片段的变化特征、注释特征、注释与代码关联特征的特征向量集
分类模块,用于对特征向量集进行分类处理,。
具体地,代码分块模块还包括对比单元,用于对变化前后的代码块进行一一对应处理。
具体地,特征提取模块还包括计算单元用于计算代码的语义和注释的相似度之差。
具体地,本发明实施例的系统相关功能模块的工作原理可参见方法实施例的相关描述,这里不再赘述。
在本发明实施例中,通过对注释和代码片段的文本信息进行交叉融合,计算注释和代码的语义相似度;使用启发式规则,对代码进行分块,以更小的粒度检测注释和代码的一致性,能够使检测结果具有更高的准确率和更精确的检测范围,更便捷、且适用性极高。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
另外,以上对本发明实施例所提供的一种自动检测注释和代码一致性的方法及其系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (3)

1.一种自动检测注释和代码一致性的方法,其特征在于,所述方法包括:
提取海量代码,进行分块处理,并对变化前后的代码块一一对应,获得代码数据集;
获取代码数据集,进行特征提取处理,获得代码数据集中的代码文本特征、代码片段的变化特征、注释特征、注释与代码关联特征的特征向量集;
对所述特征向量集进行分类处理,获得的分类结果,即为注释和代码的检测结果;
其中,所述的注释与代码关联特征,即代码的语义和注释之间的相似度,其计算两者之间的相似度之差的方法采用基于Skip-gram的代码和注释语义融合的词向量模型,作为注释和代码单词的词向量模型,根据词向量模型进行计算注释和代码的相似度:
对两个单词的相似度为两个单词的词向量的余弦距离,计算公式为:
sim(w1,w2)=cos(w1,w2);
单词与句子的相似度为单词与句子中的单词的最大相似度,计算公式为:
Figure FDA0002859921170000011
句子与句子的相似度计算公式为:
Figure FDA0002859921170000012
其中,
Figure FDA0002859921170000013
n为S1中的单词个数;w为单词;S为句子。
2.一种自动检测注释和代码一致性的系统,其特征在于,所述系统包括:
代码分块模块,用于提取海量代码,进行分块处理,获得代码数据集;
特征提取模块,用于对代码数据集进行特征提取处理,获得代码数据集中的代码文本特征、代码片段的变化特征、注释特征、注释与代码关联特征的特征向量集;
分类模块,用于对特征向量集进行分类处理;
其中,所述特征提取模块还包括计算单元用于计算代码的语义和注释的相似度之差;
其中,所述的注释与代码关联特征,即代码的语义和注释之间的相似度,其计算两者之间的相似度之差的方法采用基于Skip-gram的代码和注释语义融合的词向量模型,作为注释和代码单词的词向量模型,根据词向量模型进行计算注释和代码的相似度:
对两个单词的相似度为两个单词的词向量的余弦距离,计算公式为:
sim(w1,w2)=cos(w1,w2);
单词与句子的相似度为单词与句子中的单词的最大相似度,计算公式为:
Figure FDA0002859921170000021
句子与句子的相似度计算公式为:
Figure FDA0002859921170000022
其中,
Figure FDA0002859921170000023
n为S1中的单词个数;w为单词;S为句子。
3.根据权利要求2所述的一种自动检测注释和代码一致性的系统,其特征在于,所述代码分块模块还包括对比单元,用于对变化前后的代码块进行一一对应处理。
CN201711456698.8A 2017-12-28 2017-12-28 一种自动检测注释和代码一致性的方法及其系统 Active CN108170468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711456698.8A CN108170468B (zh) 2017-12-28 2017-12-28 一种自动检测注释和代码一致性的方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711456698.8A CN108170468B (zh) 2017-12-28 2017-12-28 一种自动检测注释和代码一致性的方法及其系统

Publications (2)

Publication Number Publication Date
CN108170468A CN108170468A (zh) 2018-06-15
CN108170468B true CN108170468B (zh) 2021-04-20

Family

ID=62519287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711456698.8A Active CN108170468B (zh) 2017-12-28 2017-12-28 一种自动检测注释和代码一致性的方法及其系统

Country Status (1)

Country Link
CN (1) CN108170468B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165040B (zh) * 2018-07-04 2021-11-12 东华大学 一种基于随机森林模型的代码抄袭嫌疑检测的方法
CN111124487B (zh) * 2018-11-01 2022-01-21 浙江大学 代码克隆检测方法、装置以及电子设备
CN110297764B (zh) * 2019-05-30 2023-04-07 北京百度网讯科技有限公司 漏洞测试模型训练方法和装置
CN110362829B (zh) * 2019-07-16 2023-01-03 北京百度网讯科技有限公司 结构化病历数据的质量评估方法、装置及设备
US11853196B1 (en) 2019-09-27 2023-12-26 Allstate Insurance Company Artificial intelligence driven testing
CN111191443A (zh) * 2019-12-19 2020-05-22 深圳壹账通智能科技有限公司 基于区块链的敏感词检测方法、装置、计算机设备和存储介质
CN111290785B (zh) * 2020-03-06 2023-06-06 北京百度网讯科技有限公司 评估深度学习框架系统兼容性的方法、装置、电子设备以及存储介质
US11829282B2 (en) 2020-08-27 2023-11-28 Microsoft Technology Licensing, Llc. Automatic generation of assert statements for unit test cases
CN112417852B (zh) * 2020-12-07 2022-01-25 中山大学 一种代码片段重要性的判断方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697121A (zh) * 2009-10-26 2010-04-21 哈尔滨工业大学 一种基于程序源代码语义分析的代码相似度检测方法
CN102339218A (zh) * 2010-07-21 2012-02-01 阳振庭 一种程序代码注释的管理方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060047441A1 (en) * 2004-08-31 2006-03-02 Ramin Homayouni Semantic gene organizer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697121A (zh) * 2009-10-26 2010-04-21 哈尔滨工业大学 一种基于程序源代码语义分析的代码相似度检测方法
CN102339218A (zh) * 2010-07-21 2012-02-01 阳振庭 一种程序代码注释的管理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于词语关系的词向量模型";蒋振超;《中文信息学报》;20170531;全文 *

Also Published As

Publication number Publication date
CN108170468A (zh) 2018-06-15

Similar Documents

Publication Publication Date Title
CN108170468B (zh) 一种自动检测注释和代码一致性的方法及其系统
CN109190092A (zh) 不同来源文件的一致性审核方法
CN110427487B (zh) 一种数据标注方法、装置及存储介质
WO2022226716A1 (zh) 基于深度学习的Java程序内部注释的生成方法及系统
Liu et al. Automatic detection of outdated comments during code changes
US11914963B2 (en) Systems and methods for determining and using semantic relatedness to classify segments of text
CN110750297B (zh) 一种基于程序分析和文本分析的Python代码参考信息生成方法
CN109885821B (zh) 基于人工智能的文章撰写方法及装置、计算机存储介质
CN114781997B (zh) 危大工程专项施工方案智能化审查系统及实现方法
CN112257444B (zh) 金融信息负面实体发现方法、装置、电子设备及存储介质
Flisar et al. Enhanced feature selection using word embeddings for self-admitted technical debt identification
CN117707922A (zh) 测试用例的生成方法、装置、终端设备和可读存储介质
CN118013963A (zh) 敏感词的识别和替换方法及其装置
Alahmadi VID2XML: Automatic Extraction of a Complete XML Data From Mobile Programming Screencasts
CN116029280A (zh) 一种文档关键信息抽取方法、装置、计算设备和存储介质
CN118093689A (zh) 基于rpa多模态文档解析与结构化处理系统
CN113778852A (zh) 一种基于正则表达式的代码分析方法
CN117272982A (zh) 基于大型语言模型的协议文本检测方法及装置
CN111523301A (zh) 合同文档合规性检查方法及装置
CN111754352A (zh) 一种观点语句正确性的判断方法、装置、设备和存储介质
CN116881971A (zh) 一种敏感信息泄露检测方法、设备及存储介质
CN116360794A (zh) 数据库语言解析方法、装置、计算机设备及存储介质
US20220414336A1 (en) Semantic Difference Characterization for Documents
CN111581950B (zh) 同义名称词的确定方法和同义名称词的知识库的建立方法
CN114417860A (zh) 一种信息检测方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant