CN111142850A - 一种基于深度神经网络的代码片段推荐方法与装置 - Google Patents
一种基于深度神经网络的代码片段推荐方法与装置 Download PDFInfo
- Publication number
- CN111142850A CN111142850A CN201911334527.7A CN201911334527A CN111142850A CN 111142850 A CN111142850 A CN 111142850A CN 201911334527 A CN201911334527 A CN 201911334527A CN 111142850 A CN111142850 A CN 111142850A
- Authority
- CN
- China
- Prior art keywords
- code
- vector
- neural network
- deep neural
- query
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 25
- 239000013598 vector Substances 0.000 claims abstract description 83
- 238000012549 training Methods 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 6
- 239000012634 fragment Substances 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 2
- 230000000306 recurrent effect Effects 0.000 claims description 2
- 239000000284 extract Substances 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 230000008707 rearrangement Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于深度神经网络的代码片段推荐方法与装置,包括:从收集的代码片段中提取代码元素,包括方法名、参数与返回值、逻辑信息和代码语句,从注释文档中提取描述信息,将代码元素与描述信息共同嵌入到高维向量空间中进行模型训练;对于给定代码库提取其中每个方法的代码元素,使用经过训练的模型计算代码向量;当用户查询到达时,返回与查询向量接近的向量对应代码片段。与现有技术相比,本发明学习源代码和自然语言查询的统一向量表示,以便可以根据它们的向量来检索与查询语义相关的代码段。并且充分考虑了语句顺序、代码结构等各项元素信息,使得推荐的代码片段与查询之间的相似度更高,用户能够更好的使用推荐的代码片段。
Description
技术领域
本发明涉及代码推荐,具体涉及一种基于深度神经网络的代码片段推荐方法与装置。
背景技术
代码片段是指一组代码序列,其能够指导开发人员快速的掌握某一程序接口的使用方式或某一编程任务的实现方法。近年来,代码推荐方向的研究均着重于如何使用信息检索或机器学习的方式来进行代码推荐。这些研究所使用的代码特征相对单一未能充分提取代码携带的信息。以ROSF为例,在数据准备阶段,其首先使用将Java工程切分为多个类文件,之后再将类文件切分多个代码片段。之后,针对每一个代码片段,其使用主题模型、代码度量等方式抽取代码片段的特征。该方法的推荐阶段可细分为两阶段:粗粒度的查询和细粒度的重排。在粗粒度的查询阶段,其首先使用信息检索的方法,将代码文本特征和用户输入的查询进行相似度比较计算,从而得到与用户输入查询最为相关的一组代码片段。而后,在细粒度的重排阶段,针对在第一阶段得到的一组代码片段,使用机器学习的方法,对其进行细粒度的重排,并最终将排序结果返回给用户。
嵌入技术是一种用于学习诸如单词,句子和图像之类的实体的向量表示的技术,使得类似的实体具有彼此接近的向量。一种典型的嵌入技术是词嵌入,该词将词表示为固定长度的向量,以使相似的词在向量空间中彼此接近。同样,一个句子(即单词序列)也可以嵌入为向量。
联合嵌入,也称为多模式嵌入,是一种将异类数据联合嵌入/关联到统一向量空间中的技术,以便在语义上相似的概念跨越两个模式占据空间的附近区域。假设有两个异类数据集X和Y。我们想学习它们之间的相关性,即
f:X→Y
例如,假设X是一组图像,Y是一组自然语言语句,f可以是图像和句子之间的相关性(即图像标题)。由于两个数据源是异构的,因此很难直接发现相关性f。因此,我们需要一座桥梁来连接这两个级别的信息。X和Y的联合嵌入可表示为:
其中φ:X→Rd是将X映射到d维向量空间V的嵌入函数;ψ:Y→Rd是将Y映射到相同向量空间V的嵌入函数;J(·,·)是用于对VX和VY的匹配度进行评分以学习映射函数的相似度测量(例如余弦)。通过联合嵌入,异构数据可以通过其向量轻松关联。
代码语句的顺序信息指的是某一代码片段中各行代码之间的顺序关系。如下面的代码所示:
1 log.error(EMPTY_LINE);
2 log.error(StringBuilder.toString());
3 log.info(″dropping and recreating db″);
这个代码片段中有3行代码,我们将其当前的顺序:第一行语句(″log.error(EMPTY_LINE);″)在第二行语句(″log.error(StringBuilder.toString());″)之前;第二行语句(″log.error(StringBuilder.toString());″)在第三行语句(″log.info(″dropping and recreating db″);″)之前。认为是这个代码片段的顺序信息。因为代码的执行是有序的,即使是相同的代码语句,但是执行顺序的不同也会带来结果和功能的不同。
现有代码推荐技术多使用代码文本与语义信息进行相关推荐,仅使用文本和语义信息进行代码推荐将会造成代码本身的结构信息和顺序信息的丢失,从而造成推荐结果的不准确。
发明内容
发明目的:针对现有技术的不足,本发明的目的在于提供一种基于深度神经网络的代码片段推荐方法与装置,提高推荐的准确性,使用户能够更好的使用推荐的代码片段。
技术方案:为实现上述发明目的,本发明采用如下技术方案:
一种基于深度神经网络的代码片段推荐方法,包括如下步骤:
(1)从收集的代码片段中提取代码元素,并从注释文档中提取第一行作为描述信息,将代码元素与描述信息共同嵌入到向量空间中进行模型训练;所提取的代码元素包含方法名、参数与返回值、逻辑信息以及代码语句四个方面;
(2)对于用户希望从其搜索代码段的给定代码库,提取其中每个方法的代码元素,使用经过训练的模型计算代码向量;
(3)当用户查询到达时,计算出查询的向量表示,返回与查询向量接近的向量对应代码片段。
作为优选,所述代码元素中的参数与返回值的嵌入方法是:根据代码段中参数与返回值的类型及各类型对应的数量采取独热编码将其嵌入为向量,其中参数与返回值在嵌入过程中使用不同的向量维度,通过多层感知机MLP进行模型训练。
作为优选,所述代码元素中的逻辑信息的嵌入方法是:根据代码中是否使用了循环,即根据代码段中是否出现关键词while或for将其表示为不同的向量,通过多层感知机MLP进行模型训练。
作为优选,所述代码元素方法名和代码语句采用独热编码嵌入为向量,通过循环神经网络BiLSTM进行模型训练。
作为优选,所述根据如下公式计算两个代码语句的相似度:
其中,LineSimilarity(CLi,CLj)表示代码语句CLi和CLj之间的相似度;qtn是第n的词牌Tokenn在CLi中出现的次数;tn是Tokenn出现在CLj中的次数;ql是CLi的长度;dl是CLj的长度;avgdl是代码数据库中代码语句的平均长度;N为CLi中词牌的总数量;b、k1、k2是调整因子。
当代码语句相似度高于给定阈值时可将代码语句视为相同,即嵌入为同样的向量。
作为优选,通过全连接层将方法名、参数与返回值、逻辑信息以及代码语句的嵌入向量串联,得到代码片段的向量表示;使用余弦相似度度量代码片段向量与描述向量的相似性。
基于相同的发明构思,本发明提供一种基于深度神经网络的代码推荐装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的基于深度神经网络的代码推荐方法。
有益效果:本发明通过将代码段与自然语言描述共同嵌入到同一个高维向量空间,使得代码段及其描述具有相似的向量表示,从而可以根据向量来获取与自然语言查询在语义上相关的代码片段,并且可以避免查询中不相关关键字带来的干扰。此外,本发明充分考虑了代码的各项元素信息,使得推荐的代码片段与查询之间的相似度更高,用户能够更好的使用推荐的代码片段。
附图说明
图1为本发明实施例中模型结构图。
图2为本发明实施例中工作流图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步说明。
本发明实施例公开的一种基于深度神经网络的代码推荐方法,首先从收集的代码片段中提取代码元素(包括方法名、参数与返回值、逻辑信息和代码语句序列),并从注释文档中提取第一行作为描述信息,将代码元素与描述信息共同嵌入到向量空间中进行模型训练;然后对于用户希望从其搜索代码段的给定代码库,提取其中每个方法的代码元素,使用经过训练的模型计算代码向量;当用户查询到达时,计算出查询的向量表示,返回与查询向量接近的向量对应代码片段。
如图1所示,本发明实施例中涉及的网络模型在结构上主要包括三个部分,代码嵌入部分、描述嵌入部分以及相似性度量部分。
代码嵌入部分中,源代码不只是文本,它还携带了多方面的信息,例如控制流,参数等,充分挖掘代码包含的潜在信息才能获得令人满意的推荐结果。我们在模型中使用了四种代码元素信息:方法名、代码语句顺序、参数返回值以及逻辑信息。对于每个代码段(在方法级别),我们提取这四个方面的信息,各自单独嵌入为向量,然后组合成代表整个代码的单个向量。
考虑输入代码片段C=[M,P,L,Γ],其中是通过一个长度为NM的token序列表示的方法名称;P是代码段中的参数与返回值;L是代码段逻辑信息,即是否包含循环;而Γ={τ1,...,τNΓ}是代码段中的代码语句序列。神经网络通过以下方式进行嵌入:
对于方法名称M,我们将拆分后的token序列通过带有maxpooling的BiLSTM嵌入为向量:
其中,表示神经网络中第t个神经元的输出,m0为空,wt∈Rd是tokenwt的嵌入向量,[a;b]∈R2d表示两个向量a与b的级联,WM∈R2d×d是BiLSTM中可训练参数的矩阵,tanh是BiLSTM的激活函数。方法名因此嵌入为d维向量m。
同样,代码语句序列Γ使用带有maxpooling的BiLSTM嵌入到向量γ中:
对于参数与返回值P,可以通过多层感知器(MLP)进行嵌入,即常规的全连接层:
δ=tanh(WPP)
其中,P∈Rd代表参数与返回值P的嵌入式表示,WP是MLP中可训练参数的矩阵。
逻辑信息通过同样的方法进行嵌入:
ζ=tanh(WLL)
其中L∈Rd代表逻辑信息的嵌入式表示,WL是MLP中可训练参数的矩阵。
最后,将四个方面的向量通过一个全连接层融合为一个向量:
c=tanh(Wc[m;γ;δ;ζ])
其中[m;γ;δ;ζ]表示四个向量的串联,WC是MLP中可训练参数的矩阵。输出向量c代表代码片段最终嵌入成的向量。
在相似性度量部分,我们将计算出经过上面两个步骤获得的代码向量与描述向量之间的相似性。我们使用余弦相似度进行测量,定义为:
其中c和d分别是代码的向量和描述。相似度越高,代码与描述越相关。
总体而言,通过该模型将一个代码描述对作为输入并预测其余弦相似度cos(c,d)。
如图2所示,工具使用包括三个主要阶段:离线训练,离线代码嵌入和在线代码搜索。
在离线训练阶段,模型需要大规模的训练语料库,其中包含代码元素和相应的描述,即<方法名,参数与返回值,逻辑信息,代码语句序列,描述>组。我们使用带有注释文档的Java方法构建训练组,它们来自GitHub上的开源项目。对于每个Java方法,我们都使用方法声明作为代码元素,并使用其注释文档的第一句话作为其自然语言描述。根据Javadoc指南,第一句话通常是方法的摘要。收集了注释代码段的语料库之后,我们按以下方式提取方法名,参数与返回值,逻辑信息,代码语句序列,描述:
方法名提取:对于每个Java方法,我们都提取其名称,然后根据驼峰命名法将名称解析为一系列token。例如,方法名称listFiles将被解析为list和files。通过独热编码将每个token转化为向量。
参数与返回值提取:提取代码片段中的参数与返回值,由于代码片段中数据类型数量较少,我们可以通过一个向量来表示,向量的每个维度表示该类型的参数或返回值数量,其中参数与返回值占用不同的维度。
逻辑信息提取:对于逻辑信息,我们只需判断代码片段中是否出现了循环关键字即while或for,据此嵌入为对应向量。例如,若出现循环则用全1向量表示,否则用全0向量。
代码语句序列提取:对代码库中的所有提取出的代码行,去除没有意义的如“{”、“}”后,根据如下公式计算所有代码语句之间的相似度:
其中,LineSimilarity(CLi,CLj)表示代码语句CLi和CLj之间的相似度;qtn是第n的词牌Tokenn在CLi中出现的次数;tn是Tokenn出现在CLj中的次数;ql是CLi的长度;dl是CLj的长度;avgdl是代码数据库中代码语句的平均长度;N为CLi中词牌的总数量;b、k1、k2是调整因子。
当代码语句相似度高于给定阈值时可将代码语句视为相同,即拥有同样的向量表示,使用独热编码完成所有代码行的嵌入。
描述提取:为了提取文档注释,我们使用Eclipse JDT编译器从Java方法解析抽象语法树,然后从中提取Java文档注释。
完成以上步骤后,我们将每个训练实例构造为三元组C,D+,D-:对于每个代码段C,都有一个正确的描述D+和的错误描述D-(D-将从所有D+的集合中随机选择一个)。在对C,D+,D-三元组进行训练时,模型可以预测C,D+和C,D-对的余弦相似度,并最大程度地降低排名损失:
其中θ表示模型参数,包括BiLSTM与MLP中的参数矩阵WM、WΓ、WP、WL、Wc、WD。P表示训练数据集,ε表示常数余量。c,d+和d-分别是C,D+和D-的嵌入向量。本发明实验中使用固定的0.05作为ε值。直观上,排名损失会促使代码段与其正确描述之间的余弦相似度上升,而代码段与错误描述之间的余弦相似度下降。
在离线代码嵌入阶段,对于用户希望从其搜索代码段的给定代码库,工具提取搜索代码库中每个Java方法的代码元素,并使用经过训练的模型计算并存储代码向量。
在在线搜索期间,当开发人员输入自然语言查询时,首先将查询嵌入到向量中,然后估算查询向量和所有离线代码嵌入过程中嵌入的代码向量之间的余弦相似度。最后,返回向量与查询向量最相似的前K(K可由系统设定)个代码段作为搜索结果。
基于相同的发明构思,本发明实施例提供一种基于深度神经网络的代码推荐装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被加载至处理器时实现上述的基于深度神经网络的代码推荐方法。
Claims (7)
1.一种基于深度神经网络的代码推荐方法,其特征在于,包括如下步骤:
(1)从收集的代码片段中提取代码元素,并从注释文档中提取第一行作为描述信息,将代码元素与描述信息共同嵌入到向量空间中进行模型训练;所提取的代码元素包含方法名、参数与返回值、逻辑信息以及代码语句四个方面;
(2)对于用户希望从其搜索代码段的给定代码库,提取其中每个方法的代码元素,使用经过训练的模型计算代码向量;
(3)当用户查询到达时,计算出查询的向量表示,返回与查询向量接近的向量对应代码片段。
2.根据权利要求1所述的基于深度神经网络的代码推荐方法,其特征在于,所述代码元素中的参数与返回值的嵌入方法是:根据代码段中参数与返回值的类型及各类型对应的数量采取独热编码将其嵌入为向量,其中参数与返回值在嵌入过程中使用不同的向量维度,通过多层感知机MLP进行模型训练。
3.根据权利要求1所述的基于深度神经网络的代码推荐方法,其特征在于,所述代码元素中的逻辑信息的嵌入方法是:根据代码段中是否使用了循环,将其表示为不同的向量,通过多层感知机MLP进行模型训练。
4.根据权利要求1所述的基于深度神经网络的代码推荐方法,其特征在于,所述代码元素中方法名和代码语句采用独热编码嵌入为向量,通过循环神经网络BiLSTM进行模型训练。
6.根据权利要求1所述的基于深度神经网络的代码推荐方法,其特征在于,通过全连接层将方法名、参数与返回值、逻辑信息以及代码语句的嵌入向量串联,得到代码片段的向量表示;使用余弦相似度度量代码片段向量与描述向量的相似性。
7.一种基于深度神经网络的代码推荐装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被加载至处理器时实现根据权利要求1-6任一项所述的一种基于深度神经网络的代码推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334527.7A CN111142850B (zh) | 2019-12-23 | 2019-12-23 | 一种基于深度神经网络的代码片段推荐方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911334527.7A CN111142850B (zh) | 2019-12-23 | 2019-12-23 | 一种基于深度神经网络的代码片段推荐方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111142850A true CN111142850A (zh) | 2020-05-12 |
CN111142850B CN111142850B (zh) | 2021-05-25 |
Family
ID=70519351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911334527.7A Active CN111142850B (zh) | 2019-12-23 | 2019-12-23 | 一种基于深度神经网络的代码片段推荐方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111142850B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328743A (zh) * | 2020-11-03 | 2021-02-05 | 北京嘀嘀无限科技发展有限公司 | 代码搜索方法、装置、可读存储介质和电子设备 |
CN112507065A (zh) * | 2020-11-18 | 2021-03-16 | 电子科技大学 | 一种基于注释语义信息的代码搜索方法 |
CN115017294A (zh) * | 2022-05-31 | 2022-09-06 | 武汉大学 | 代码搜索方法 |
US11500619B1 (en) | 2021-05-24 | 2022-11-15 | International Business Machines Corporation | Indexing and accessing source code snippets contained in documents |
CN116048454A (zh) * | 2023-03-06 | 2023-05-02 | 山东师范大学 | 一种基于迭代对比学习的代码重排方法及系统 |
US11645054B2 (en) | 2021-06-03 | 2023-05-09 | International Business Machines Corporation | Mapping natural language and code segments |
CN116719520A (zh) * | 2023-08-07 | 2023-09-08 | 支付宝(杭州)信息技术有限公司 | 代码生成方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108717470A (zh) * | 2018-06-14 | 2018-10-30 | 南京航空航天大学 | 一种具有高准确度的代码片段推荐方法 |
CN108717423A (zh) * | 2018-04-24 | 2018-10-30 | 南京航空航天大学 | 一种基于深度语义挖掘的代码段推荐方法 |
US20190026091A1 (en) * | 2017-07-20 | 2019-01-24 | International Business Machines Corporation | Cognitive expected program code installation result assessment |
US20190079752A1 (en) * | 2017-09-08 | 2019-03-14 | Devfactory Fz-Llc | Library Model Addition |
CN109634594A (zh) * | 2018-11-05 | 2019-04-16 | 南京航空航天大学 | 一种考虑代码语句顺序信息的代码片段推荐方法 |
CN109992266A (zh) * | 2017-12-29 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 一种界面元素的处理方法和装置 |
CN110162703A (zh) * | 2019-05-13 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 内容推荐方法、训练方法、装置、设备及存储介质 |
CN110569030A (zh) * | 2018-06-06 | 2019-12-13 | 富士通株式会社 | 代码推荐方法及装置 |
-
2019
- 2019-12-23 CN CN201911334527.7A patent/CN111142850B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190026091A1 (en) * | 2017-07-20 | 2019-01-24 | International Business Machines Corporation | Cognitive expected program code installation result assessment |
US20190079752A1 (en) * | 2017-09-08 | 2019-03-14 | Devfactory Fz-Llc | Library Model Addition |
CN109992266A (zh) * | 2017-12-29 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 一种界面元素的处理方法和装置 |
CN108717423A (zh) * | 2018-04-24 | 2018-10-30 | 南京航空航天大学 | 一种基于深度语义挖掘的代码段推荐方法 |
CN110569030A (zh) * | 2018-06-06 | 2019-12-13 | 富士通株式会社 | 代码推荐方法及装置 |
CN108717470A (zh) * | 2018-06-14 | 2018-10-30 | 南京航空航天大学 | 一种具有高准确度的代码片段推荐方法 |
CN109634594A (zh) * | 2018-11-05 | 2019-04-16 | 南京航空航天大学 | 一种考虑代码语句顺序信息的代码片段推荐方法 |
CN110162703A (zh) * | 2019-05-13 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 内容推荐方法、训练方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
LEI AI; ZHIQIU HUANG; WEIWEI LI; YU ZHOU; YAOSHEN YU: "SENSORY: Leveraging Code Statement Sequence Information for Code Snippets", 《2019 IEEE 43RD ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE (COMPSAC)》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328743A (zh) * | 2020-11-03 | 2021-02-05 | 北京嘀嘀无限科技发展有限公司 | 代码搜索方法、装置、可读存储介质和电子设备 |
CN112507065A (zh) * | 2020-11-18 | 2021-03-16 | 电子科技大学 | 一种基于注释语义信息的代码搜索方法 |
CN112507065B (zh) * | 2020-11-18 | 2022-07-12 | 电子科技大学 | 一种基于注释语义信息的代码搜索方法 |
US11500619B1 (en) | 2021-05-24 | 2022-11-15 | International Business Machines Corporation | Indexing and accessing source code snippets contained in documents |
US11645054B2 (en) | 2021-06-03 | 2023-05-09 | International Business Machines Corporation | Mapping natural language and code segments |
CN115017294A (zh) * | 2022-05-31 | 2022-09-06 | 武汉大学 | 代码搜索方法 |
CN116048454A (zh) * | 2023-03-06 | 2023-05-02 | 山东师范大学 | 一种基于迭代对比学习的代码重排方法及系统 |
CN116719520A (zh) * | 2023-08-07 | 2023-09-08 | 支付宝(杭州)信息技术有限公司 | 代码生成方法及装置 |
CN116719520B (zh) * | 2023-08-07 | 2023-11-17 | 支付宝(杭州)信息技术有限公司 | 代码生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111142850B (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111142850B (zh) | 一种基于深度神经网络的代码片段推荐方法与装置 | |
Hu et al. | Improved lexically constrained decoding for translation and monolingual rewriting | |
CN111159223B (zh) | 一种基于结构化嵌入的交互式代码搜索方法及装置 | |
Huang et al. | The factual inconsistency problem in abstractive text summarization: A survey | |
Qin et al. | A survey on text-to-sql parsing: Concepts, methods, and future directions | |
CN117076653B (zh) | 基于思维链及可视化提升上下文学习知识库问答方法 | |
CN104933039B (zh) | 面向资源缺乏语言的实体链接系统 | |
AU2020103004A4 (en) | Method to build a document semantic and entity relationship model | |
Xian et al. | Self-guiding multimodal LSTM—when we do not have a perfect training dataset for image captioning | |
Li et al. | Learning to answer programming questions with software documentation through social context embedding | |
Bögel¹ et al. | Collaborative Text Annotation Meets Machine Learning: heureCLÉA, a Digital Heuristics of Narrative. | |
CN112347781A (zh) | 生成或修改表示输入数据内的关系的本体 | |
Chen et al. | Knowledge graphs meet multi-modal learning: A comprehensive survey | |
CN116661852B (zh) | 一种基于程序依赖图的代码搜索方法 | |
Jaech et al. | Match-tensor: a deep relevance model for search | |
CN112860879A (zh) | 一种基于联合嵌入模型的代码推荐方法 | |
EP4133385A1 (en) | System and method for performing a search in a vector space based search engine | |
Abdar et al. | A review of deep learning for video captioning | |
CN116737979A (zh) | 基于上下文引导多模态关联的图像文本检索方法及系统 | |
JP2024091709A (ja) | 文作成装置、文作成方法および文作成プログラム | |
Guo et al. | Prompting gpt-3.5 for text-to-sql with de-semanticization and skeleton retrieval | |
Ruas et al. | LasigeBioTM at CANTEMIST: Named Entity Recognition and Normalization of Tumour Morphology Entities and Clinical Coding of Spanish Health-related Documents. | |
CN114491209A (zh) | 基于互联网信息抓取的企业业务标签挖掘的方法和系统 | |
CN117765450A (zh) | 一种视频语言理解方法、装置、设备及可读存储介质 | |
Mesmia et al. | ASRextractor: a tool extracting semantic relations between Arabic named entities |
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 |