CN108459874A - 融合深度学习和自然语言处理的代码自动化摘要方法 - Google Patents

融合深度学习和自然语言处理的代码自动化摘要方法 Download PDF

Info

Publication number
CN108459874A
CN108459874A CN201810177984.9A CN201810177984A CN108459874A CN 108459874 A CN108459874 A CN 108459874A CN 201810177984 A CN201810177984 A CN 201810177984A CN 108459874 A CN108459874 A CN 108459874A
Authority
CN
China
Prior art keywords
api
code
information
natural language
annotation
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
CN201810177984.9A
Other languages
English (en)
Other versions
CN108459874B (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201810177984.9A priority Critical patent/CN108459874B/zh
Publication of CN108459874A publication Critical patent/CN108459874A/zh
Application granted granted Critical
Publication of CN108459874B publication Critical patent/CN108459874B/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/73Program documentation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Stored Programmes (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种融合深度学习和自然语言处理的代码自动化摘要方法,流程如下:同时进入S1和S5,S1和S5并行处理;S1、搜集开源社区中的高质量开源项目;S2、抽取开源项目中的API及对应的API注释信息,同时转S3和S4,S3和S4同时并行处理;S3、过滤掉API描述中的无用信息,转S6;S4、对所有的API信息生成关键描述短语,转S6;S5、获取互联网中热门的第三方API;S6、将API及对应的自然语言注释信息作为训练数据,利用抽取的第三方API信息和API对应的关键短语信息,通过深度神经网络训练得到代码自动摘要模型,该模型可以用来为待预测的API代码片段生成自动化摘要信息。本发明能够快速准确地为开源项目中API代码片段生成关联的自然语言描述。

Description

融合深度学习和自然语言处理的代码自动化摘要方法
技术领域
本发明涉及软件协同开发领域,具体涉及一种融合深度学习和自然语言处理的代码自动化摘要方法。
背景技术
目前协同开发社区(如GitHub)中托管了大量的开源项目,同时吸引了大量来自世界各地的贡献者参与到项目贡献中。但是由于项目贡献者编码风格迥异,能力参差不齐,加之并不是所有的开源项目都注重代码注释的全面性和准确性,因此存在这样的情况,即大量优质开源项目代码规模庞大,但代码注释率很低。
缺少代码注释对于大众参与的协同开发来说会直接影响到开发者对于开源项目模块功能的理解,一方面会阻碍外围开发者参与到开源项目的贡献中,我们以GitHub为例,在该社区中外围开发者占据了绝大部分,但实际从代码提交贡献来看,外围开发者所占的比例却不是特别高。另一方面会降低软件复用效率,缺少代码对应的自然语言描述会导致相关代码无法被检索到,目前的检索工具都倾向于将源代码本身作为被检索的文本,但由于不同开发者的编程习惯不同,加之代码中变量和函数的命名非常自由,因此很难按照功能描述搜索到对应的代码片段;同时通过对StackOverflow这样的知识分享社区的调研,我们发现,存在大量关于开源项目代码片段具体功能描述的问题,这说明即使检索到了相关代码,对于大量软件使用者和代码复用者来说,理解代码也是非常困难的。
目前类似GitHub这样的代码托管平台中没有自动生成代码自然语言描述的方法,依赖于代码贡献者人工添加对应的标注信息,但实际上很多开发者为了展现个人水平、获得大众认可,倾向于添加开发人员信息这样的无语义标注,同时为了明确项目本身遵循的规范,许多开源项目的源文件中存在大量许可证相关信息。大量无用的注释信息不仅不能对代码的功能理解带来帮助,同时还会导致语音的混淆,阻碍关键信息的挖掘。虽然利用可以通过人工的方式进行标注,但这样的工作费时费力,同时也不是大众贡献者想要在平台中贡献的东西。因此自动化代码摘要方法不仅可以解决无人标注的问题,而且可以快速生成代码注释,进而在一定程度上提升代码和自然语言描述的关联程度,帮助大众贡献者理解代码,提升贡献和复用效率。
发明内容
为了实现上述目的,本发明提供一种融合深度学习和自然预言处理的代码自动化摘要方法,包括如下步骤:
同时进入S1和S5,S1和S5并行处理:
S1通过协同开发社区搜集热门的开源项目,利用开源社区自身评价指标,如:fork、watch、star,找到热门项目,进而通过网络爬虫自动下载需要的项目代码仓库;
S2对于获取到的热门开源代码仓库,通过代码分析工具,抽取代码中的自定义API信息以及对应的API注释信息,同时在源代码中抽取出所有API的声明源码;然后,同时转S3和S4,S3和S4同时并行处理;
S3对于S2中得到的API注释信息,过滤掉其中无用和质量较差的注释,得到模型训练数据,转S6;
S4对于S2中得到的API声明源码,利用自然语言处理方法对API声明进行处理,得到API描述关键短语列表,转S6;
S5利用官方文档和第三方库托管站点,爬取热门的第三方API库,之后抽取出其中的API形成第三方API列表,进入S6;
S6将S3得到的API以及对应的API注释信息作为模型训练数据,利用S4得到的API关键短语列表和S5的第三方API列表,基于Attention的编解码机器翻译网络训练得到代码自动摘要模型。
作为本发明技术方案的进一步改进,所述步骤S1包括:
S1.1在协同开发社区GitHub中,利用fork、watch、star信息,计算项目的热度,给出所有项目的热度排序;
S1.2按照项目热门程度,下载热度前X的相关开源项目,通过网络爬虫自动下载需要的项目代码仓库;X为自然数,取值由开发者权衡性能、开销后给出,优选为1500。
作为本发明技术方案的进一步改进,所述步骤S2包括:
S2.1对于获取到的热门开源代码仓库,利用代码分析工具抽取代码中的API及对应的注释信息;
S2.2同时在源代码中抽取出所有API的声明。
作为本发明技术方案的进一步改进,所述步骤S3包括:
S3.1对于S2中得到的API注释信息,利用正则表达式过滤API注释信息中的作者信息和许可证信息;
S3.2设置阈值,即长度大于等于2的动名词短语的简单组合,筛选掉过滤后文本内容较短的API注释信息。
作为本发明技术方案的进一步改进,所述步骤S4包括:
S4.1对于所有的API声明源码,利用特拉华大学Emily Hill提出的软件使用模型SWUM(software word usage model)(Emily Hill等,软件使用模型SWUM及其在java源代码搜索中的应用.[Introducinga model of software word usage and its useinsearching java source code].ICSE'2010),通过自然语言处理、词性分析得到API描述的关键短语;
S4.2根据生成短语的长度,去除无效的短语描述,最终得到API描述关键短语列表。
作为本发明技术方案的进一步改进,所述步骤S5包括:
S5.1根据需求编程语言的官方文档爬取官方给出的底层API信息,包括:API调用对应的路径,API名称及对应的注释信息;
S5.2根据需求编程语言的第三方库托管站点爬取流行的第三方库,通过代码分析工具分析出库中所有API的路径及对应的注释信息;
S5.3将S5.1和S5.2中的所有API信息进行整合形成第三方API列表。
作为本发明技术方案的进一步改进,所述步骤S6包括:
S6.1根据S3得到的模型训练数据、S4得到的API关键短语以及S5得到的第三方API列表,生成模型训练中数据检索需要的词汇表;
S6.2将模型训练数据、API关键短语和第三方API列表进行整合,查找训练数据中第三方API以及关键的短语信息,利用S6.1中得到的检索词汇表,通过空间向量模型(Vector Space Model,VSM)生成对应的数值描述向量;
S6.3利用基于Attention的编解码循环神经网络,通过S6.2得到的数值描述向量来训练得到代码自动摘要模型,该模型可以用来对待预测的API代码片段生成摘要信息。
与现有技术相比,本发明具有以下有益效果:
1、本发明针对开源项目中缺少注释信息的情况,提出了一种融合深度学习和自然语言处理的代码自动化摘要方法。该方法对于增加开源项目代码注释率,帮助开发者理解开源项目,进而快速产生贡献,提升开源项目活跃度有很大帮助。
2、本发明提出了评价开源项目活跃度的综合指标,利用协同开发社区中fork、watch、star数,通过加权的方法得到合适的软件排名,辅助评判热门开源项目。
3、本发明提出了过滤开源项目中API对应的无用注释信息的方法,对开源软件中自定义的API通过已有的“SWUM”方法进行处理,得到对应的短语描述。对开源项目中使用的底层API和热门的第三方API,通过查询我们事先爬取和解析到的第三方API列表来完成检索和数值对应,进而,融合自然语言处理和深度学习进行代码自动化摘要。
附图说明
图1本发明融合深度学习和自然语言处理的代码自动化摘要方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明具体实施方法提供一种基于混合相似度的大众贡献合并请求重复性探测方法,如图1所示,该方法包括如下步骤:
同时进入S1和S5,S1和S5并行处理:
S1、开源项目热度计算
对于开源社区(以GitHub为例),该方法综合考虑了多个流行度指标提出了综合热度计算方法。这里我们默认所有的流行度指标没有相关性。
为了将所有流行度指标统一考虑,我们这里对每个指标利用最大值和最小值进行归一化。为了防止每个指标中值过大的影响,我们这里将所有的流行度指标取对数。最终将每个指标的结果相乘得到最终的热度值。
S2、API及注释信息的抽取
对于从开源项目源代码中抽取注释信息,这里我们利用GitHub中javaparser用户的“javaparser”项目来处理我们的开源项目,从中抽取API详细信息(包括:API源代码,API名称、返回值、参数,以及API的所属项目和相对路径),以及该API对应的注释信息。然后,同时转S3和S4,S3和S4同时并行处理;
S3、去除注释信息中的噪音信息
对于从开源项目中抽取到的API对应的注释信息,该方法执行标准的预处理过程,包括获取关键注释信息,去除包含特殊符号的注释信息。通过对数据的人工分析,发现存在很多规律性注释情况。同时为了保证深度学习模型训练的质量,我们这里使用较为宽泛的去除噪音注释的方法,保证剩余的纯净摘要信息的有效性。
首先,在我们抽取到的注释中找到第一行的注释信息,利用回车换行符“\n”进行分割。
之后我们去除掉注释块的星型符号“*”,这个注释是Java注释块分行中特有的符号描述。
然后我们找到描述文本中的第一句话,这里我们假定开源项目中的注释信息都是英文。我们首先通过正则表达式“r[^\d]\.\s+”找到正常的英文结束符号,因为存在“1.”这样的分点介绍的注释信息,因此我们在正则表达式中保证结束符号之前不为数字。之后找到注释中第一个匹配到这个正则表达是的下标(index),如果没有找到下标,返回None;如果找到了则返回注释信息开始到index后面的一个字符(因为正则表达式中匹配到了结束符“.”前面的一个字符)。
然后我们需要去除掉特殊符号,这里我们认为除了连接符“-”和下划线“_”外,其余的都算特殊符号。因为在英文描述中,存在用连接符表示一个单词的情况;同时在代码命名规范中,下划线有效的命名字符集合中的组成元素。这里我们去除掉了连接两个句子的逗号“,”,这是因为并不是所有情况下逗号连接的两个句子都是有效的功能性描述,例如:存在“For build multiple DruidDataSource,detail see document”这样的注释信息,其中后半句是非功能性文本描述;同时存在“For issue#1796,use Spring Environment byspecify configuration properties prefix to build DruidDataSource”这样的注释信息,其中前半句是非功能性文本描述。我们将这些情况都去除掉是为了保证训练数据中注释信息的有效性。
最后,我们去除掉过于简短的文本注释信息,因为这样的注释信息缺乏实际的意义。这里我们认为两个及以上单词的注释信息为有效注释信息。因为对于自然语言描述中“动词+名词”的描述形式最为简短,最少两个单词才能反映当前API的实际动作和作用对象。
S4、抽取API关键短语信息
对于开源项目中的源代码,我们利用已有的“SWUM”技术来抽取API及API对应的关键短语,这里我们通过存储API所属项目,相对路径以及API名称、参数来唯一确定一个API,进而可以与S2中得到的API信息形成一一对应关系。
S5、获取第三方API列表
对于第三方API,我们通过爬虫技术,爬取maven repository中最热门的jar包,这里我们爬取到了3501个第三方jar包。之后我们再加上JDK本身,构成我们的第三方jar包列表。之后,我们通过GitHub中gousiosg用户托管的“java-callgraph”项目,利用其中的jar包静态分析代码,抽取出了所有jar包中class文件里面的API详细信息(包括:API所在的类名、包名,API的名称、返回值、参数,以及API对应的public、private、protected、default状态),从而形成我们的第三方API列表。
S6、深度学习模型训练
对于在已有数据上训练深度学习模型,这里我们使用的是2016年Iyer等人提出的CODE-NN方法,该方法在传统机器翻译模型上进行了改进,利用增加了注意力机制的LSTM模型,一定程度上避免了文本过程导致摘要生成效果不好的问题。我们在此基础上进行了改进,主要是数据预处理部分。
首先,我们将所有的代码以及第三方API列表中的API以及自然语言描述进行综合,形成统一的词汇表。
之后,对于训练样本中的API,如果当前API存在第三方API的调用,我们就用词汇表中对应的数值替代;对于自定义API的调用,我们使用“SWUM”方法处理得到的信息,并用词汇表中对应关键短语的数值表示替换;对于其他普通的表达式,我们就通过词汇表中已经存在的词汇对应的数值进行替换;如果没有找到对应的词汇,用词汇表中的“UNK”(位置词汇)进行统一替换。经过上述操作后,我们就可以得到API源代码的数值描述向量。
对于训练样本中API对应的注释,我们也可以用相同的方法维护一个词汇表,并将其转换为数值描述向量。
最后,将训练样本对的数值描述向量作为输入和输出训练得到自动化摘要模型。
综上所述,本发明提出的融合深度学习和自然语言处理的代码自动化摘要方法对于增加开源项目代码注释率,帮助开发者理解开源项目,进而快速产生贡献,提升开源项目活跃度有很大帮助。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素”。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (7)

1.一种融合深度学习和自然语言处理的代码自动化摘要方法,其特征在于,包括以下步骤:
同时进入S1和S5,S1和S5并行处理:
S1、通过协同开发社区搜集热门的开源项目,利用开源社区自身评价指标,如:fork、watch、star,找到热门项目,进而通过网络爬虫自动下载需要的项目代码仓库;
S2、对于获取到的热门开源代码仓库,通过代码分析工具,抽取代码中的自定义API信息以及对应的API注释信息,同时在源代码中抽取出所有API的声明源码;然后,同时转S3和S4,S3和S4同时并行处理;
S3、对于S2中得到的API注释信息,过滤掉其中无用和质量较差的注释,得到模型训练数据,转S6;
S4、对于S2中得到的API声明源码,利用自然语言处理方法对API声明进行处理,得到API描述关键短语列表,转S6;
S5、利用官方文档和第三方库托管站点,爬取热门的第三方API库,之后抽取出其中的API形成第三方API列表,进入S6;
S6、将S3得到的API以及对应的API注释信息作为模型训练数据,利用S4得到的API关键短语列表和S5的第三方API列表,基于Attention的编解码机器翻译网络训练得到代码自动摘要模型。
2.根据权利要求1所述的融合深度学习和自然语言处理的代码自动化摘要方法,其特征在于,所述步骤S1包括:
S1.1、在协同开发社区GitHub中,利用fork、watch、star信息,计算项目的热度,给出所有项目的热度排序;
S1.2、按照项目热门程度,下载热度前X的相关开源项目,通过网络爬虫自动下载需要的项目代码仓库;X为自然数,取值由开发者权衡性能、开销后给出,优选为1500。
3.根据权利要求1所述的融合深度学习和自然语言处理的代码自动化摘要方法,其特征在于,所述步骤S2包括:
S2.1、对于获取到的热门开源代码仓库,利用代码分析工具抽取代码中的API及对应的注释信息;
S2.2、同时在源代码中抽取出所有API的声明。
4.根据权利要求1所述的融合深度学习和自然语言处理的代码自动化摘要方法,其特征在于,所述步骤S3包括:
S3.1、对于S2中得到的API注释信息,利用正则表达式过滤API注释信息中的作者信息和许可证信息;
S3.2、设置阈值,即长度大于等于2的动名词短语的简单组合,筛选掉过滤后文本内容较短的API注释信息。
5.根据权利要求1所述的融合深度学习和自然语言处理的代码自动化摘要方法,其特征在于,所述步骤S4包括:
S4.1、对于所有的API声明源码,利用软件使用模型SWUM方法,通过自然语言处理、词性分析得到API描述的关键短语;
S4.2、根据生成短语的长度,去除无效的短语描述,最终得到API描述关键短语列表。
6.根据权利要求1所述的融合深度学习和自然语言处理的代码自动化摘要方法,其特征在于,所述步骤S5包括:
S5.1、根据需求编程语言的官方文档爬取官方给出的底层API信息,包括:API调用对应的路径,API名称及对应的注释信息;
S5.2、根据需求编程语言的第三方库托管站点爬取流行的第三方库,通过代码分析工具分析出库中所有API的路径及对应的注释信息;
S5.3、将S5.1和S5.2中的所有API信息进行整合形成第三方API列表。
7.根据权利要求1所述的融合深度学习和自然语言处理的代码自动化摘要方法,其特征在于,所述步骤S6包括:
S6.1、根据S3得到的模型训练数据、S4得到的API关键短语以及S5得到的第三方API列表,生成模型训练中数据检索需要的词汇表;
S6.2、将模型训练数据、API关键短语和第三方API列表进行整合,查找训练数据中第三方API以及关键的短语信息,利用S6.1中得到的检索词汇表,通过空间向量模型生成对应的数值描述向量;
S6.3、利用基于Attention的编解码循环神经网络,通过S6.2得到的数值描述向量来训练得到代码自动摘要模型,该模型可以用来对待预测的API代码片段生成摘要信息。
CN201810177984.9A 2018-03-05 2018-03-05 融合深度学习和自然语言处理的代码自动化摘要方法 Active CN108459874B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810177984.9A CN108459874B (zh) 2018-03-05 2018-03-05 融合深度学习和自然语言处理的代码自动化摘要方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810177984.9A CN108459874B (zh) 2018-03-05 2018-03-05 融合深度学习和自然语言处理的代码自动化摘要方法

Publications (2)

Publication Number Publication Date
CN108459874A true CN108459874A (zh) 2018-08-28
CN108459874B CN108459874B (zh) 2021-03-26

Family

ID=63217138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810177984.9A Active CN108459874B (zh) 2018-03-05 2018-03-05 融合深度学习和自然语言处理的代码自动化摘要方法

Country Status (1)

Country Link
CN (1) CN108459874B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109635302A (zh) * 2018-12-17 2019-04-16 北京百度网讯科技有限公司 一种训练文本摘要生成模型的方法和装置
CN109783079A (zh) * 2018-12-21 2019-05-21 南京航空航天大学 一种基于程序分析和循环神经网络的代码注释生成方法
CN110413307A (zh) * 2019-07-26 2019-11-05 网易(杭州)网络有限公司 代码功能的关联方法、装置及电子设备
CN110795077A (zh) * 2019-09-26 2020-02-14 北京你财富计算机科技有限公司 一种基于人工智能的软件开发方法、装置及电子设备
CN111061864A (zh) * 2019-12-23 2020-04-24 中国人民解放军国防科技大学 基于特征提取的开源社区Fork摘要自动生成方法、系统及介质
CN111399900A (zh) * 2020-03-10 2020-07-10 山东汇贸电子口岸有限公司 一种基于python与正则表达式的API文档自动生成方法及系统
CN111522581A (zh) * 2020-04-22 2020-08-11 山东师范大学 一种增强型代码注释自动生成方法及系统
CN111797242A (zh) * 2020-06-29 2020-10-20 哈尔滨工业大学 一种基于代码知识图谱和知识迁移的代码摘要生成方法
CN111857728A (zh) * 2020-07-22 2020-10-30 中山大学 一种代码摘要生成方法和装置
CN112182338A (zh) * 2020-11-02 2021-01-05 国网北京市电力公司 托管平台的监控方法和装置
CN113064633A (zh) * 2021-03-26 2021-07-02 山东师范大学 一种代码摘要自动生成方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291304A (zh) * 2008-06-13 2008-10-22 清华大学 可移植的网络信息共享方法
CN104991858A (zh) * 2015-06-12 2015-10-21 扬州大学 一种面向代码修改的概要及标签自动生成方法
US20170032117A1 (en) * 2015-07-09 2017-02-02 Synopsys, Inc. Identifying Software Components in a Software Codebase
CN107133079A (zh) * 2017-05-25 2017-09-05 中国人民解放军国防科学技术大学 一种基于问题报告的软件语义摘要自动生成方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291304A (zh) * 2008-06-13 2008-10-22 清华大学 可移植的网络信息共享方法
CN104991858A (zh) * 2015-06-12 2015-10-21 扬州大学 一种面向代码修改的概要及标签自动生成方法
US20170032117A1 (en) * 2015-07-09 2017-02-02 Synopsys, Inc. Identifying Software Components in a Software Codebase
CN107133079A (zh) * 2017-05-25 2017-09-05 中国人民解放军国防科学技术大学 一种基于问题报告的软件语义摘要自动生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李文鹏等: "基于LDA的软件代码主题摘要自动生成方法", 《计算机科学》 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109635302B (zh) * 2018-12-17 2022-06-10 北京百度网讯科技有限公司 一种训练文本摘要生成模型的方法和装置
CN109635302A (zh) * 2018-12-17 2019-04-16 北京百度网讯科技有限公司 一种训练文本摘要生成模型的方法和装置
CN109783079A (zh) * 2018-12-21 2019-05-21 南京航空航天大学 一种基于程序分析和循环神经网络的代码注释生成方法
WO2019223804A1 (zh) * 2018-12-21 2019-11-28 南京航空航天大学 一种基于程序分析和循环神经网络的代码注释生成方法
CN110413307A (zh) * 2019-07-26 2019-11-05 网易(杭州)网络有限公司 代码功能的关联方法、装置及电子设备
CN110413307B (zh) * 2019-07-26 2023-11-24 网易(杭州)网络有限公司 代码功能的关联方法、装置及电子设备
CN110795077A (zh) * 2019-09-26 2020-02-14 北京你财富计算机科技有限公司 一种基于人工智能的软件开发方法、装置及电子设备
CN111061864A (zh) * 2019-12-23 2020-04-24 中国人民解放军国防科技大学 基于特征提取的开源社区Fork摘要自动生成方法、系统及介质
CN111061864B (zh) * 2019-12-23 2022-10-18 中国人民解放军国防科技大学 基于特征提取的开源社区Fork摘要自动生成方法、系统及介质
CN111399900A (zh) * 2020-03-10 2020-07-10 山东汇贸电子口岸有限公司 一种基于python与正则表达式的API文档自动生成方法及系统
CN111522581A (zh) * 2020-04-22 2020-08-11 山东师范大学 一种增强型代码注释自动生成方法及系统
CN111797242A (zh) * 2020-06-29 2020-10-20 哈尔滨工业大学 一种基于代码知识图谱和知识迁移的代码摘要生成方法
CN111797242B (zh) * 2020-06-29 2023-04-07 哈尔滨工业大学 一种基于代码知识图谱和知识迁移的代码摘要生成方法
CN111857728B (zh) * 2020-07-22 2021-08-31 中山大学 一种代码摘要生成方法和装置
CN111857728A (zh) * 2020-07-22 2020-10-30 中山大学 一种代码摘要生成方法和装置
CN112182338A (zh) * 2020-11-02 2021-01-05 国网北京市电力公司 托管平台的监控方法和装置
CN113064633A (zh) * 2021-03-26 2021-07-02 山东师范大学 一种代码摘要自动生成方法及系统

Also Published As

Publication number Publication date
CN108459874B (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
CN108459874A (zh) 融合深度学习和自然语言处理的代码自动化摘要方法
CN106202382B (zh) 链接实体方法和系统
De Melo et al. MENTA: Inducing multilingual taxonomies from Wikipedia
JP6309644B2 (ja) スマート質問回答の実現方法、システム、および記憶媒体
CN103544255B (zh) 基于文本语义相关的网络舆情信息分析方法
Hulpus et al. Unsupervised graph-based topic labelling using dbpedia
CN101231661B (zh) 对象级知识挖掘的方法和系统
CN100405371C (zh) 一种提取新词的方法和系统
CN111651198B (zh) 代码摘要自动化生成方法及装置
CN104133877B (zh) 软件标签的生成方法和装置
Ruan et al. DeepLink: Recovering issue-commit links based on deep learning
CN102609427A (zh) 舆情垂直搜索分析系统及方法
US11263062B2 (en) API mashup exploration and recommendation
Huo et al. Semparser: A semantic parser for log analytics
Abebe et al. Extraction of domain concepts from the source code
TW201804345A (zh) 基於結構化網路知識的自動中文本體庫建構方法、系統及電腦可讀媒體
Bhardwaj et al. Web scraping using summarization and named entity recognition (ner)
CN112580331A (zh) 政策文本的知识图谱构建方法及系统
CN112000929A (zh) 一种跨平台数据分析方法、系统、设备及可读存储介质
Dulceanu et al. PhotoshopQuiA: A corpus of non-factoid questions and answers for why-question answering
Cheng et al. MISDA: web services discovery approach based on mining interface semantics
Uszkoreit et al. From Strings to Things SAR-Graphs: A New Type of Resource for Connecting Knowledge and Language.
CN104965902A (zh) 一种富集化url的识别方法和装置
Lee et al. A comment-driven approach to API usage patterns discovery and search
CN112966169A (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