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

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

Info

Publication number
CN108170468A
CN108170468A CN201711456698.8A CN201711456698A CN108170468A CN 108170468 A CN108170468 A CN 108170468A CN 201711456698 A CN201711456698 A CN 201711456698A CN 108170468 A CN108170468 A CN 108170468A
Authority
CN
China
Prior art keywords
code
annotation
feature
similarity
sentence
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.)
Granted
Application number
CN201711456698.8A
Other languages
English (en)
Other versions
CN108170468B (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
National Sun Yat Sen University
Original Assignee
National 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 National Sun Yat Sen University filed Critical National 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

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)
单词与句子的相似度为单词与句子中的单词的最大相似度,计算公式为:
句子与句子的相似度计算公式为:
其中,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)
单词与句子的相似度为单词与句子中的单词的最大相似度,计算公式为:
句子与句子的相似度计算公式为:
其中,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 (5)

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

Cited By (8)

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

Citations (3)

* 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
CN101697121A (zh) * 2009-10-26 2010-04-21 哈尔滨工业大学 一种基于程序源代码语义分析的代码相似度检测方法
CN102339218A (zh) * 2010-07-21 2012-02-01 阳振庭 一种程序代码注释的管理方法及装置

Patent Citations (3)

* 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
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
蒋振超: ""基于词语关系的词向量模型"", 《中文信息学报》 *

Cited By (12)

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

Also Published As

Publication number Publication date
CN108170468B (zh) 2021-04-20

Similar Documents

Publication Publication Date Title
CN108170468A (zh) 一种自动检测注释和代码一致性的方法及其系统
Bacchelli et al. Content classification of development emails
CN108932192A (zh) 一种基于抽象语法树的Python程序类型缺陷检测方法
CN109783079A (zh) 一种基于程序分析和循环神经网络的代码注释生成方法
CN110334213B (zh) 基于双向交叉注意力机制的汉越新闻事件时序关系识别方法
CN109190092A (zh) 不同来源文件的一致性审核方法
CN108491208A (zh) 一种基于神经网络模型的代码注释分类方法
CN107862327B (zh) 一种基于多特征的安全缺陷识别系统和方法
CN102541838B (zh) 用于优化情感分类器的方法和设备
Liu et al. Automatic detection of outdated comments during code changes
CN105612515A (zh) 矛盾表现收集装置以及用于其的计算机程序
Fong et al. What did they do? deriving high-level edit histories in wikis
Scholman et al. Crowdsourcing discourse interpretations: On the influence of context and the reliability of a connective insertion task
CN106033392A (zh) 基于检查词需求的检测方法及装置
CN109710518A (zh) 脚本审核方法及装置
CN110135225A (zh) 样本标注方法及计算机存储介质
US20210319356A1 (en) Automated non-native table representation annotation for machine-learning models
Rauf et al. Logical structure extraction from software requirements documents
Wong et al. Wiki-reliability: A large scale dataset for content reliability on wikipedia
CN110750297B (zh) 一种基于程序分析和文本分析的Python代码参考信息生成方法
TW201502812A (zh) 文本摘要編輯系統、文本摘要評量系統及其方法
CN109977400A (zh) 一种校验处理的方法、装置、计算机存储介质及终端
CN113111869B (zh) 提取文字图片及其描述的方法和系统
Kof et al. Faster from Requirements Documents to System Models: Interactive Semi-Automatic Translation with a tool that is learning on the fly
CN113722421A (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