CN116661855A - 一种代码注释生成方法及装置 - Google Patents
一种代码注释生成方法及装置 Download PDFInfo
- Publication number
- CN116661855A CN116661855A CN202310697357.9A CN202310697357A CN116661855A CN 116661855 A CN116661855 A CN 116661855A CN 202310697357 A CN202310697357 A CN 202310697357A CN 116661855 A CN116661855 A CN 116661855A
- Authority
- CN
- China
- Prior art keywords
- code
- target
- training
- annotation
- candidate
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012549 training Methods 0.000 claims abstract description 122
- 239000012634 fragment Substances 0.000 claims abstract description 39
- 238000012360 testing method Methods 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000000605 extraction Methods 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 13
- 239000013598 vector Substances 0.000 claims description 11
- 238000011156 evaluation Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Library & Information Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本发明公开了一种代码注释生成方法及装置,所述方法包括:响应于用户在第一服务器的代码注释请求,获取代码注释生成的训练集和测试集;响应于用户在第二服务器的代码注释请求,获取需要注释的目标代码片段;所述训练集和测试集,均包括若干个代码片段和对应的注释结果;对所述目标代码片段进行特征提取,得到目标特征信息;利用所述目标特征信息,对所述训练集进行检索操作,得到候选代码片段集;所述候选代码片段集,包括若干个候选代码片段和对应的注释结果;对所述候选代码片段集和测试集进行匹配处理,得到所述目标代码片段的注释结果。本发明方法解决了现有的代码注释生成方法所存在的生成注释含义单一、训练数据量有限的问题。
Description
技术领域
本发明涉及计算机及人工智能技术领域,尤其涉及一种代码注释生成方法及装置。
背景技术
在计算机程序开发过程中,对代码进行注释,有助于提升代码的理解性,以便帮助开发人员理解程序,并为后续代码开发和维护提供便利。代码注释生成技术的目标,是自动生成源代码的简洁流畅的自然语言描述。目前的代码注释方法,主要采用信息检索技术等实现,存在以下问题:
一是对给定代码只能从一个技术方向给出相关的注释,而开发人员通常需要从多个角度了解代码信息,例如代码片段的功能以及如何使用它。开发人员在注释代码时,通常需要表达多个意图,仅仅生成描述代码片段的一个特定方面的注释(例如,代码的功能),并不能满足开发人员全面总结代码的要求(例如,如何使用代码)。根据相关研究,开发人员在注释代码时通常有六个意图的类别,即what、why、how-to-use、how-it-is-done、property和others。开发人员通常在注释中表达多个意图的现实,导致现有的单一意图注释生成技术的实用性受到很大制约。
二是现有的代码注释生成方法,由于训练数据量有限,且训练数据中的注释信息也是基于一个技术方向生成,导致现有的代码注释生成方法的有效性较低。
发明内容
针对现有的代码注释生成方法所存在的生成注释含义单一、训练数据量有限的问题,本发明公开了一种代码注释生成方法及装置。
本发明公开了一种代码注释生成方法,包括:
响应于用户在第一服务器的代码注释请求,获取代码注释生成的训练集和测试集;响应于用户在第二服务器的代码注释请求,获取需要注释的目标代码片段;所述训练集和测试集,均包括若干个代码片段和对应的注释结果;
对所述目标代码片段进行特征提取,得到目标特征信息;
对所述目标特征信息、测试集和训练集,进行检索匹配处理,得到所述目标代码片段的注释结果。
所述对所述目标特征信息、测试集和训练集,进行检索匹配处理,得到所述目标代码片段的注释结果,包括:
利用所述目标特征信息,对所述训练集进行检索操作,得到候选代码片段集;所述候选代码片段集,包括若干个候选代码片段和对应的注释结果;
对所述候选代码片段集和测试集进行匹配处理,得到所述目标代码片段的注释结果。
所述对所述候选代码片段集和测试集进行匹配处理,得到所述目标代码片段的注释结果,包括:
利用所述测试集中的所有代码片段构建需要注释的代码集合,利用所述候选代码片段集构建训练样本集合;
利用所述需要注释的代码集合和所述训练样本集合,构建得到提示词信息;
利用大语言模型对所述提示词信息进行处理,得到候选注释集合;所述候选注释集合,包括与所述需要注释的代码集合中的代码片段所对应的候选注释;
对候选代码片段集的所有候选代码片段,与需要注释的代码集合中所有代码片段依次进行相似度计算处理,得到所述相似度集合;所述相似度集合,包括所述候选代码片段集的候选代码片段与需要注释的代码集合的代码片段的相似度值;
对所述相似度集合进行检索处理,确定出最大相似度值;
确定所述最大相似度值对应的所述需要注释的代码集合中的代码片段;
利用所述需要注释的代码集合中的代码片段,对所述候选注释集合进行检索处理,得到所述代码片段对应的候选注释;
确定所述候选注释为所述目标代码片段的注释结果。
所述对所述目标代码片段进行特征提取,得到目标特征信息,包括:
对所述目标代码片段进行删除关键词操作,得到第一目标代码片段;
对所述第一目标代码片段进行标识符提取操作,得到目标代码标识符;
对所述目标代码标识符进行令牌信息提取操作,得到目标特征信息。
利用所述目标特征信息,对所述训练集进行检索操作,得到候选代码片段集,包括:
对训练集的所有代码片段进行删除关键词操作,得到第二目标代码片段集;
对所述第二目标代码片段集进行标识符提取操作,得到训练代码标识符集;
对所述训练代码标识符集进行令牌信息提取操作,得到训练特征信息集;所述训练特征信息集,包括若干个训练特征信息;所述训练特征信息,与训练集的代码片段具有相关关系;
对所述目标特征信息与所述训练特征信息集的训练特征信息进行相似计算,得到检索相似度集合;
检索得到所述检索相似度集合中的大于设定阈值的相似度值;
利用所述检索得到的相似度值对应的训练特征信息,所相关的训练集的代码片段,构建得到候选代码片段集。
所述对所述目标代码片段进行特征提取,得到目标特征信息,包括:
对所述目标代码片段进行删除关键词操作,得到第一目标代码片段;
对所述第一目标代码片段进行语义编码操作,得到目标特征信息;所述目标特征信息,为第一目标代码片段对应的语义信息向量。
所述利用所述目标特征信息,对训练集进行检索操作,得到候选代码片段集,包括:
对训练集的所有代码片段进行删除关键词操作,得到第二目标代码片段集;
对所述第二目标代码片段集进行语义编码操作,得到训练特征信息集;所述训练特征信息集,包括若干个训练特征信息;所述训练特征信息,与训练集的代码片段具有相关关系;所述训练特征信息,为所述第二目标代码片段集的第二目标代码片段对应的语义信息向量;
对所述目标特征信息与所述训练特征信息集的训练特征信息进行相似计算,得到检索相似度集合;
检索得到所述检索相似度集合中的大于设定阈值的相似度值;
利用所述检索得到的相似度值对应的训练特征信息,所相关的训练集的代码片段,构建得到候选代码片段集。
本发明公开了一种用于代码注释生成的数据处理装置,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行所述的代码注释生成方法。
本发明公开了一种计算机可存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行所述的代码注释生成方法。
本发明公开了一种信息数据处理终端,所述信息数据处理终端用于实现所述的代码注释生成方法。
本发明的有益效果为:
1、本发明能够从多个技术方向给出相关的注释。开发人员在注释代码时,通常需要表达多个意图,仅仅生成描述代码片段的一个特定方面的注释(例如,代码的功能),并不能满足开发人员全面总结代码的要求(例如,如何使用代码)。根据相关研究,开发人员在注释代码时通常有六个意图的类别,即what、why、how-to-use、how-it-is-done、property和others。开发人员通常在注释中表达多个意图的现实,导致现有的单一意图注释生成技术的实用性受到很大制约,本发明解决了这一问题。
2、本发明实现了代码注释的高效准确生成。现有的代码注释生成方法,由于训练数据量有限,且训练数据中的注释信息也是基于一个技术方向生成,导致现有的代码注释生成方法的有效性较低。本发明方法基于大数据模型和现有代码数据库,采用检索和大模型训练相结合的方式,实现了代码注释的高效准确生成。
附图说明
图1为本发明方法的实施流程图;
图2为本发明的多意图注释生成的提示模板;
图3为本发明方法的实施整体框架。
具体实施方式
为了更好的了解本发明内容,这里给出一个实施例。
图1为本发明方法的实施流程图;图2为本发明的多意图注释生成的提示模板;图3为本发明方法的实施整体框架。
本实施例公开了一种代码注释生成方法,包括:
响应于用户在第一服务器的代码注释请求,获取代码注释生成的训练集和测试集;响应于用户在第二服务器的代码注释请求,获取需要注释的目标代码片段;所述训练集和测试集,均包括若干个代码片段和对应的注释结果;所述第一服务器,可以是GPU服务器;所述第二服务器,可以是CPU服务器;所述用户在第一服务器的代码注释请求,包括用户进行代码注释所需要的模型训练信息,所述模型训练信息,包括训练集信息和测试集信息;所述用户在第二服务器的代码注释请求,包括需要注释的目标代码片段;
对所述目标代码片段进行特征提取,得到目标特征信息;
所述对所述目标代码片段进行特征提取,得到目标特征信息,是利用第三服务器来实现;所述第三服务器,可以是CPU服务器;
对所述目标特征信息、测试集和训练集,进行检索匹配处理,得到所述目标代码片段的注释结果。
所述对所述目标特征信息、测试集和训练集,进行检索匹配处理,得到所述目标代码片段的注释结果,是利用第四服务器来实现;所述第四服务器,可以是GPU服务器。
所述获取代码注释生成的训练集和测试集,是从第一服务器的代码数据库中获取;所述代码数据库,可以是Funcom数据集和TLC数据集。所述训练集、测试集和需要注释的目标代码片段,均为文本信息。
所述对所述目标特征信息、测试集和训练集,进行检索匹配处理,得到所述目标代码片段的注释结果,包括:
利用所述目标特征信息,对所述训练集进行检索操作,得到候选代码片段集;所述候选代码片段集,包括若干个候选代码片段和对应的注释结果;
对所述候选代码片段集和测试集进行匹配处理,得到所述目标代码片段的注释结果。
所述对所述候选代码片段集和测试集进行匹配处理,得到所述目标代码片段的注释结果,包括:
利用所述测试集中的所有代码片段构建需要注释的代码集合,利用所述候选代码片段集构建训练样本集合;
利用所述需要注释的代码集合和所述训练样本集合,构建得到提示词信息;
利用大语言模型对所述提示词信息进行处理,得到候选注释集合;所述候选注释集合,包括与所述需要注释的代码集合中的代码片段所对应的候选注释;
对候选代码片段集的所有候选代码片段,与需要注释的代码集合中所有代码片段依次进行相似度计算处理,得到所述相似度集合;所述相似度集合,包括所述候选代码片段集的候选代码片段与需要注释的代码集合的代码片段的相似度值;
对所述相似度集合进行检索处理,确定出最大相似度值;
确定所述最大相似度值对应的所述需要注释的代码集合中的代码片段;
利用所述需要注释的代码集合中的代码片段,对所述候选注释集合进行检索处理,得到所述代码片段对应的候选注释;
确定所述候选注释为所述目标代码片段的注释结果。
所述对所述目标代码片段进行特征提取,得到目标特征信息,包括:
对所述目标代码片段进行删除关键词操作,得到第一目标代码片段;
对所述第一目标代码片段进行标识符提取操作,得到目标代码标识符;
对所述目标代码标识符进行令牌信息提取操作,得到目标特征信息。
利用所述目标特征信息,对所述训练集进行检索操作,得到候选代码片段集,包括:
对训练集的所有代码片段进行删除关键词操作,得到第二目标代码片段集;
对所述第二目标代码片段集进行标识符提取操作,得到训练代码标识符集;
对所述训练代码标识符集进行令牌信息提取操作,得到训练特征信息集;所述训练特征信息集,包括若干个训练特征信息;所述训练特征信息,与训练集的代码片段具有相关关系;
对所述目标特征信息与所述训练特征信息集的训练特征信息进行相似计算,得到检索相似度集合;
检索得到所述检索相似度集合中的大于设定阈值的相似度值;
利用所述检索得到的相似度值对应的训练特征信息,所相关的训练集的代码片段,构建得到候选代码片段集。
所述对所述目标代码片段进行特征提取,得到目标特征信息,包括:
对所述目标代码片段进行删除关键词操作,得到第一目标代码片段;
对所述第一目标代码片段进行语义编码操作,得到目标特征信息;所述目标特征信息,为第一目标代码片段对应的语义信息向量。
所述利用所述目标特征信息,对训练集进行检索操作,得到候选代码片段集,包括:
对训练集的所有代码片段进行删除关键词操作,得到第二目标代码片段集;
对所述第二目标代码片段集进行语义编码操作,得到训练特征信息集;所述训练特征信息集,包括若干个训练特征信息;所述训练特征信息,与训练集的代码片段具有相关关系;所述训练特征信息,为所述第二目标代码片段集的第二目标代码片段对应的语义信息向量;
对所述目标特征信息与所述训练特征信息集的训练特征信息进行相似计算,得到检索相似度集合;
检索得到所述检索相似度集合中的大于设定阈值的相似度值;
利用所述检索得到的相似度值对应的训练特征信息,所相关的训练集的代码片段,构建得到候选代码片段集。
本发明公开了一种用于代码注释生成的数据处理装置,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行所述的代码注释生成方法。
本发明公开了一种计算机可存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行所述的代码注释生成方法。
本发明公开了一种信息数据处理终端,所述信息数据处理终端用于实现所述的代码注释生成方法。
所述对所述目标特征信息与所述训练特征信息集的训练特征信息进行相似计算,可以采用Jaccard相似度计算方法或者余弦相似度计算方法。
所述大语言模型,可以是Codex模型。Codex是在包含大量真实世界代码-注释配对数据的大规模语料库上进行训练的;真实世界的注释通常包含不同类别的开发者意图,假设大型语言模型有能力从不同的角度理解代码,因此有潜力在给定代码片段的情况下生成具有不同意图的注释。通过使用上下文学习,可以发掘这些大型语言模型的潜力。类似于GPT-3,Codex在预训练过程中采用了自回归的方式,即给定一系列代码/注释标记,它被训练以预测下一个标记,并将预测的标记递归地用作下一个预测的输入,直到序列结束。与现有训练模型相比,本方法可以利用预训练模型学到的知识,从而获得更好的性能。
在本实施例中,所述评论,即是注释。所述提示词信息,可以是多意图评论生成任务的提示模板,如图2所示。输入提示包含两个部分:代码演示(CD)和查询测试(querytest)。所述代码演示即是所述需要注释的代码集合,所述查询测试是所述训练样本集合。自然语言指令以特殊标记“#”开头的行表示。在提示词信息的第一行中,首先告诉模型它所处理的具体编程语言(例如Java),然后通过表1中的定义指定了所需评论的意图,用红色突出显示。具体而言,对于“what”意图(数据集中自带的),添加提示“描述方法的功能”;对于“why”意图,添加提示“解释方法提供的原因或方法的设计原理”;对于“how-to-use”意图,添加提示“描述使用方法的用法或期望的设置”;对于“how-it-is-done”意图,添加提示“描述方法的实现细节”;对于“property”意图,添加提示“断言方法的属性,包括方法的前置条件和后置条件”。在此示例中,所示的提示旨在生成满足“what”意图的评论。第一行之后是一些代码演示,这些演示可以帮助LLM理解所期望的行为,每个演示包含一个代码片段和一个与所需意图类别相对应的评论。每个代码演示都使用分隔符“###”分隔。利用所述语义大模型,输出查询代码的期望注释,显示在图示的底部。
表1各类代码注释的定义和举例表
利用所述目标特征信息,对所述训练集进行检索操作,得到候选代码片段集,具体包括两种检索策略,一种是基于令牌的检索策略,另一种是基于语义的检索策略。
对于基于令牌的检索策略,是根据代码令牌的重叠情况来确定相似的代码,即根据代码与目标代码的令牌相似性对代码语料库中的代码片段进行排序。具体而言,首先对目标代码片段和检索到的代码语料库中的代码片段进行预处理,删除编程语言中定义的关键词,包括变量类型、特殊符号、换行符等,原因是这些经常使用的关键词可能会对相似性计算产生副作用,因为大量的代码片段可能包含它们。然后,本实施例将代码分割为子令牌,具体而言,可以利用Java语言的驼峰命名法和下划线命名法来实现此过程。最后,本实施例将所有子令牌转换为小写。对于候选代码片段与目标代码之间的基于令牌的相似性,本实施例利用Jaccard系数进行计算。
对于基于语义的检索策略,是利用预训练的句子转换模型Semantic-based(Transformer中的一个库)来实现,该模型能够准确地捕捉代码片段的语义信息,将代码片段编码为包含相应语义信息的向量。利用余弦相似度在向量空间中检索相似的候选代码片段,这些候选代码片段的向量与目标代码片段的向量接近。
为了对LLM生成的注释进行重新排序,是根据它们与检索语料库中与目标代码相似的代码片段的评论的相似性对生成的评论进行重新排序。具体而言,本实施例使用与目标代码最相似的代码片段的评论作为参考,并从两个角度计算评论的相似性,即基于令牌和基于语义。对于基于令牌的策略,本实施例关注令牌级别的信息,因为评论中的令牌通常是具有明确语义的自然语言单词。对于基于语义的策略,本实施例再次利用预训练的句子转换模型,将整个评论嵌入到语义向量中,并计算余弦相似度。
在本发明中,使用研究发布的多意图评论生成数据集作为本实施例的评估数据集。具体而言,本实施例使用了两个Java编程语言的数据集,即Funcom和TLC数据集,这两个数据集都是用于代码评论生成任务的最常用数据集。Funcom包含来自29,000个Java项目的2.1M个代码-评论对,这些数据是由Lopes等人收集并由LeClair等人进一步清理的。TLC包含了从2015年到2016年创建的超过9,000个Java项目中收集的87,136个代码评论对,这些项目至少有20个星标。这两个数据集中的每个评论的意图类别由Mu等人进行了标注:他们首先邀请了五位领域专家手动标注了8,000个代码片段的意图,然后在标注数据上对CodeBERT模型进行了微调,该模型作为分类器。结果表明,微调后的模型可以达到约90%的F1分数。表2是利用本实施例后得到注释结果。
本实施例将微调后的模型应用于预测数据集中每个评论的意图类别,并将预测结果作为基准标签。由于手动标注如此大规模的数据集是不可行的,本实施例在研究中重复使用了他们提供的结果。此外,数据集的训练/验证/测试划分是固定的,这两个数据集的统计数据如表2所示。
表2利用本实施例后得到注释结果
在表格2中,没有显示这两个数据集的验证集的统计数据。这是因为本实施例不需要训练模型。相反,本实施例只从训练集中检索代码示例,使用或不使用定制策略,并在测试集上评估其有效性。因此,本发明中未使用验证集。根据现有研究的做法,本实施例在评估中也排除了其他意图类别的评论,因为这些评论被认为是不明确或模糊的。
为了评估Codex模型在代码摘要任务上的性能,本实施例采用了常见的评估指标,包括BLEU、ROUGE-L和METEOR。BLEU(双语评估理解度)是代码注释生成研究中常用的评估指标之一。它通过计算n-gram精确度得分,衡量一个句子与一组参考句子之间的相似性。ROUGE(召回率导向的评估理解度)是用于评估文本摘要质量的一组指标。它计算重叠单元(如n-gram、词对和序列)的数量。在这里,本实施例采用最常用的ROUGE-L变体,它基于最长公共子序列(LCS)进行计算。METEOR(用于评估具有明确顺序的翻译度量)是另一个广泛使用的评估指标,用于评估生成的代码摘要的质量。METEOR通过将生成的摘要与参考摘要进行对齐,并基于单个词匹配计算相似性得分。
这些评估指标可以综合考量生成的摘要与参考摘要之间的相似性和一致性,从不同角度评估代码摘要的质量。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种代码注释生成方法,其特征在于,包括:
响应于用户在第一服务器的代码注释请求,获取代码注释生成的训练集和测试集;响应于用户在第二服务器的代码注释请求,获取需要注释的目标代码片段;所述训练集和测试集,均包括若干个代码片段和对应的注释结果;
对所述目标代码片段进行特征提取,得到目标特征信息;
对所述目标特征信息、测试集和训练集,进行检索匹配处理,得到所述目标代码片段的注释结果。
2.如权利要求1所述的代码注释生成方法,其特征在于,所述对所述目标特征信息、测试集和训练集,进行检索匹配处理,得到所述目标代码片段的注释结果,包括:
利用所述目标特征信息,对所述训练集进行检索操作,得到候选代码片段集;所述候选代码片段集,包括若干个候选代码片段和对应的注释结果;
对所述候选代码片段集和测试集进行匹配处理,得到所述目标代码片段的注释结果。
3.如权利要求2所述的代码注释生成方法,其特征在于,所述对所述候选代码片段集和测试集进行匹配处理,得到所述目标代码片段的注释结果,包括:
利用所述测试集中的所有代码片段构建需要注释的代码集合,利用所述候选代码片段集构建训练样本集合;
利用所述需要注释的代码集合和所述训练样本集合,构建得到提示词信息;
利用大语言模型对所述提示词信息进行处理,得到候选注释集合;所述候选注释集合,包括与所述需要注释的代码集合中的代码片段所对应的候选注释;
对候选代码片段集的所有候选代码片段,与需要注释的代码集合中所有代码片段依次进行相似度计算处理,得到所述相似度集合;所述相似度集合,包括所述候选代码片段集的候选代码片段与需要注释的代码集合的代码片段的相似度值;
对所述相似度集合进行检索处理,确定出最大相似度值;
确定所述最大相似度值对应的所述需要注释的代码集合中的代码片段;
利用所述需要注释的代码集合中的代码片段,对所述候选注释集合进行检索处理,得到所述代码片段对应的候选注释;
确定所述候选注释为所述目标代码片段的注释结果。
4.如权利要求2所述的代码注释生成方法,其特征在于,所述对所述目标代码片段进行特征提取,得到目标特征信息,包括:
对所述目标代码片段进行删除关键词操作,得到第一目标代码片段;
对所述第一目标代码片段进行标识符提取操作,得到目标代码标识符;
对所述目标代码标识符进行令牌信息提取操作,得到目标特征信息。
5.如权利要求4所述的代码注释生成方法,其特征在于,利用所述目标特征信息,对所述训练集进行检索操作,得到候选代码片段集,包括:
对训练集的所有代码片段进行删除关键词操作,得到第二目标代码片段集;
对所述第二目标代码片段集进行标识符提取操作,得到训练代码标识符集;
对所述训练代码标识符集进行令牌信息提取操作,得到训练特征信息集;所述训练特征信息集,包括若干个训练特征信息;所述训练特征信息,与训练集的代码片段具有相关关系;
对所述目标特征信息与所述训练特征信息集的训练特征信息进行相似计算,得到检索相似度集合;
检索得到所述检索相似度集合中的大于设定阈值的相似度值;
利用所述检索得到的相似度值对应的训练特征信息,所相关的训练集的代码片段,构建得到候选代码片段集。
6.如权利要求2所述的代码注释生成方法,其特征在于,所述对所述目标代码片段进行特征提取,得到目标特征信息,包括:
对所述目标代码片段进行删除关键词操作,得到第一目标代码片段;
对所述第一目标代码片段进行语义编码操作,得到目标特征信息;所述目标特征信息,为第一目标代码片段对应的语义信息向量。
7.如权利要求6所述的代码注释生成方法,其特征在于,所述利用所述目标特征信息,对训练集进行检索操作,得到候选代码片段集,包括:
对训练集的所有代码片段进行删除关键词操作,得到第二目标代码片段集;
对所述第二目标代码片段集进行语义编码操作,得到训练特征信息集;所述训练特征信息集,包括若干个训练特征信息;所述训练特征信息,与训练集的代码片段具有相关关系;所述训练特征信息,为所述第二目标代码片段集的第二目标代码片段对应的语义信息向量;
对所述目标特征信息与所述训练特征信息集的训练特征信息进行相似计算,得到检索相似度集合;
检索得到所述检索相似度集合中的大于设定阈值的相似度值;
利用所述检索得到的相似度值对应的训练特征信息,所相关的训练集的代码片段,构建得到候选代码片段集。
8.一种用于代码注释生成的数据处理装置,其特征在于,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-7任一项所述的代码注释生成。
9.一种计算机可存储介质,其特征在于,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如权利要求1-7任一项所述的代码注释生成方法。
10.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现权利要求1-7任一项所述的代码注释生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310697357.9A CN116661855A (zh) | 2023-06-13 | 2023-06-13 | 一种代码注释生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310697357.9A CN116661855A (zh) | 2023-06-13 | 2023-06-13 | 一种代码注释生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116661855A true CN116661855A (zh) | 2023-08-29 |
Family
ID=87726004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310697357.9A Pending CN116661855A (zh) | 2023-06-13 | 2023-06-13 | 一种代码注释生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116661855A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117193733A (zh) * | 2023-09-12 | 2023-12-08 | 上海澜码科技有限公司 | 示例库的构建、使用方法及生成的示例代码的评估方法 |
CN117371406A (zh) * | 2023-10-07 | 2024-01-09 | 星环信息科技(上海)股份有限公司 | 基于大型语言模型的注释生成方法、装置、设备及介质 |
-
2023
- 2023-06-13 CN CN202310697357.9A patent/CN116661855A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117193733A (zh) * | 2023-09-12 | 2023-12-08 | 上海澜码科技有限公司 | 示例库的构建、使用方法及生成的示例代码的评估方法 |
CN117193733B (zh) * | 2023-09-12 | 2024-03-19 | 上海澜码科技有限公司 | 示例库的构建、使用方法及生成的示例代码的评估方法 |
CN117371406A (zh) * | 2023-10-07 | 2024-01-09 | 星环信息科技(上海)股份有限公司 | 基于大型语言模型的注释生成方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Husain et al. | Codesearchnet challenge: Evaluating the state of semantic code search | |
Zhao et al. | Dense text retrieval based on pretrained language models: A survey | |
CN106649786B (zh) | 基于深度问答的答案检索方法及装置 | |
US10102254B2 (en) | Confidence ranking of answers based on temporal semantics | |
US10642874B2 (en) | Using paraphrase metrics for answering questions | |
US10275454B2 (en) | Identifying salient terms for passage justification in a question answering system | |
US11625537B2 (en) | Analysis of theme coverage of documents | |
CN116661855A (zh) | 一种代码注释生成方法及装置 | |
US9646247B2 (en) | Utilizing temporal indicators to weight semantic values | |
US20190155942A1 (en) | Searching multilingual documents based on document structure extraction | |
Wang et al. | Personalizing label prediction for GitHub issues | |
CN117891930A (zh) | 基于知识图谱增强大语言模型的图书知识问答方法 | |
JP6495124B2 (ja) | 用語意味コード判定装置、用語意味コード判定モデル学習装置、方法、及びプログラム | |
CN112559711A (zh) | 一种同义文本提示方法、装置及电子设备 | |
KR101983477B1 (ko) | 단락 기반 핵심 개체 식별을 이용한 한국어 주어의 생략 성분 복원 방법 및 시스템 | |
JP2023031294A (ja) | コンピュータ実装方法、コンピュータプログラム、コンピュータシステム(テキスト要素の特異度ランク付け及びその応用) | |
CN114328860A (zh) | 一种基于多模型匹配的交互咨询方法、装置和电子设备 | |
TW201822031A (zh) | 以文字資訊建立圖表索引方法及其電腦程式產品 | |
JP6181890B2 (ja) | 文献解析装置、文献解析方法およびプログラム | |
Lin et al. | Multi-Modal Code Summarization with Retrieved Summary | |
Steinmetz et al. | COALA-A Rule-Based Approach to Answer Type Prediction. | |
Rei et al. | Parser lexicalisation through self-learning | |
Li et al. | A Dense Retrieval System and Evaluation Dataset for Scientific Computational Notebooks | |
Kokkinakis et al. | Recognizing Acronyms and their Definitions in Swedish Medical Texts. | |
Otto et al. | Knowledge extraction from scholarly publications: The GESIS contribution to the rich context competition |
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 |