CN112860879A - 一种基于联合嵌入模型的代码推荐方法 - Google Patents
一种基于联合嵌入模型的代码推荐方法 Download PDFInfo
- Publication number
- CN112860879A CN112860879A CN202110251408.6A CN202110251408A CN112860879A CN 112860879 A CN112860879 A CN 112860879A CN 202110251408 A CN202110251408 A CN 202110251408A CN 112860879 A CN112860879 A CN 112860879A
- Authority
- CN
- China
- Prior art keywords
- code
- model
- question
- vector
- joint embedding
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/313—Selection or weighting of terms for indexing
-
- 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/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于联合嵌入模型的代码推荐方法,包括:S1、从GitHub帖子的评论中提取对问题的补充性问题;S2、将<问题,补充性问题>用来训练sequence‑to‑sequence模型,并保存为问题提升模型;S3、从GitHub上收集带有注释的Java开源项目数据集,并对其预处理;S4、建立联合嵌入模型,进行向量化处理;S5、从GitHub中收集至少有20个stars的Java开源项目来构建代码库,将所有的代码段嵌入到向量中;S6、将查询问题输入到问题提升模型中,将得到的结果输入到联合嵌入模型中进行向量化;S7、计算查询问题的向量和代码向量的相似度得分来推荐Top‑k代码段。本发明解决了自然语言查询中反映的高级意图与源代码中低级实现细节之间不匹配的问题,以及深度学习方法中缺乏不可扩展性的问题。
Description
技术领域
本发明属于信息检索技术领域,具体涉及一种基于联合嵌入模型的代码推荐方法,主要用于解决在软件开发中向用户推荐代码段的问题。
背景技术
为了实现程序功能,开发人员可以通过搜索大量的代码库来重用以前编写的代码片段。然而随着互联网相关技术的不断发展,从海量数据中找到有价值的信息变得越来越困难,用户面临严重的信息过载问题。为了使开发人员从耗时的软件开发中解脱出来,提出了根据软件需求自动生产源代码的方法,即代码检索技术。代码检索技术在帮助软件开发人员在给定用户查询(例如,描述检索特定代码片段的功能的简短自然语言文本)的可用开源数据库中检索现有代码片段方面发挥了关键作用。
目前已经提出了很多代码搜索方法,其中大多数是基于信息检索技术的,也有基于深度学习的方法被提出从自然语言描述中生产源代码的。基于信息检索技术的代码搜索方法的一个基本问题是源代码和自然语言查询是异构的,自然语言查询中反映的高级意图与源代码中低级实现细节之间是不匹配的;基于深度学习翻译的方法是在相当小、缺乏多样性、与实际软件需求显著不同的数据集上进行评的,不具有可扩展性。
发明内容
本发明要解决的技术问题是提供一种基于联合嵌入模型的代码推荐方法,能够有效地帮助软件开发人员通过文本查询来搜索和重用以前编写的代码段,具有较高的精确率和效率。
为解决上述技术问题,本发明的实施例提供一种基于联合嵌入模型的代码推荐方法,包括如下步骤:
S1、从GitHub帖子的评论中提取对问题的补充性问题;
S2、将<问题,补充性问题>用来训练sequence-to-sequence模型,并保存为问题提升模型;
S3、从GitHub上收集带有注释的Java开源项目数据集,并对其预处理;
S4、建立联合嵌入模型,将数据集进行向量化处理;
S5、从GitHub中收集至少有20个stars的Java开源项目来构建代码库,然后将所有的代码段嵌入到向量中;
S6、将查询问题输入到问题提升模型中,然后将得到的结果输入到联合嵌入模型中进行向量化;
S7、计算查询问题的向量和代码向量的相似度得分来推荐Top-k代码段。
其中,步骤S1中,所述补充性问题的定义为:在一篇文章的评论中的问题,该问题是给定帖子的缺失信息,从GitHub帖子的评论中提取对问题的补充性问题。
其中,步骤S2中,sequence-to-sequence模型的主流是编码器-解码器架构,编码器是一个两层双向LSTM网络,解码器是一个单层LSTM网络,在训练时,解码器将前一个词嵌入向量和前一个状态作为输入,并将其连接生成LSTM网络输入。
其中,步骤S3的具体步骤为:首先注释选取第一句话,在收集了注释代码片段的语料库之后,提取方法名、API序列、token和注释元组,其中,
方法名提取:对于每个Java方法,提取它的名称并将其解析为tokens序列;
API序列提取:使用Eclipse JDT编译器解析AST并遍历AST来提取API序列,API序列如下所示:对于每个构造函数调用new C(),生成C.new并将其添加到API序列中;对于每个方法调用o.m(),其中o是类C的一个实例,生成C.m并将其附加到API序列;对于while(s1){s2;}这样的循环语句,生成一个序列a1-a2,其中a1和a2分别是从语句s1和s2中提取的API序列;
token提取:要从Java方法提取tokens,要标记化方法体,使用camel case分类每个token并删除重复的token,同时删除停止词(如:and in)和Java关键词;
注释提取:使用Eclipse JDT编译器从Java方法解析AST,并从AST提取JavaDoc注释。
其中,步骤S4包括如下步骤:
S4.1、建立联合嵌入模型:联合嵌入,将异构数据(如代码和自然语言描述)联合嵌入/关联到统一向量空间,使得语义上相似的概念在相同的空间附近占据;
S4.2、训练联合嵌入模型:使用大量带有文档注释的Java方法段作为训练语料库,在训练时,将每个训练实例构造为<C,D+,D->:对于每个代码片段C,有一个正确描述D+,和一个错误描述D-,每训练一组<C,D+,D->,都会预测<C,D+>,<C,D->的余弦相似性并最小化the ranking loss,目的就是让代码片段与其正确描述之间的余弦相似性上升,而代码片段与其错误描述之间的余弦相似性下降。
进一步,所述联合嵌入模型分为三个部分:
(1)将源代码嵌入向量的代码嵌入网络:提取源代码方法名、API序列和token三个方面的信息,每一个单独嵌入成向量,然后组合成一个表示整个代码的向量;
(2)描述嵌入网络:使用RNN将自然语言描述嵌入到向量中;
(3)衡量代码和描述之间的相似度。
其中,步骤S5的具体步骤为:从GitHub中收集至少有20个stars的Java开源项目来构建代码库,然后通过联合嵌入模型以离线的方式将代码库中的所有代码段嵌入到向量中。
其中,步骤S6的具体步骤为:开发人员输入一个自然语言查询,首先自然语言查询会作为问题提升模型的输入,输出为提升过后的问题,然后结果作为联合嵌入模型的输入,联合嵌入模型使用RNN将其嵌入到向量中。
其中,步骤S7的具体步骤为:联合嵌入模型计算查询向量和步骤S5所述的代码库中所有代码段向量之间的余弦相似度,余弦相似度计算公式如下:
其中,a为代码段向量,b为查询向量;
最后根据余弦相似度分数高低返回与查询向量最相似的前K个代码段作为搜索结果。
本发明的上述技术方案的有益效果如下:本发明提供了一种基于联合嵌入模型的代码推荐方法,解决了自然语言查询中反映的高级意图与源代码中低级实现细节之间不匹配的问题,以及深度学习方法中缺乏不可扩展性的问题。
附图说明
图1为本发明的总体框架图;
图2为本发明中问题提升模型的示意图;
图3为本发明中联合嵌入模型的示意图;
图4为本发明中离线训练算法流程图;
图5为本发明中在线推荐算法流程图;
图6为本发明中输入查询示意图;
图7为本发明的结果推荐图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明提供一种基于联合嵌入模型的代码推荐方法,包括如下步骤:
S1、从GitHub帖子的评论中提取对问题的补充性问题;
在GitHub中,专家们经常对帖子的评论提出补充性问题,以便他们理解问题并帮助发帖者。将“补充性问题”定义为:在一篇文章的评论中的问题,该问题是给定帖子的缺失信息,从GitHub帖子的评论中提取对问题的补充性问题。
S2、将<问题,补充性问题>用来训练sequence-to-sequence模型,并保存为问题提升模型。sequence-to-sequence模型的主流是编码器-解码器架构,编码器是一个两层双向LSTM网络,解码器是一个单层LSTM网络,在训练时,解码器将前一个词嵌入向量和前一个状态作为输入,并将其连接生成LSTM网络输入。
S3、从GitHub上收集带有注释的Java开源项目数据集,并对其预处理;具体步骤为:首先注释选取第一句话,因为第一句话一般是对该方法的总结。在收集了注释代码片段的语料库之后,提取方法名、API序列、token和注释等元组,其中,
方法名提取:对于每个Java方法,提取它的名称并将其解析为tokens序列;例如,方法名listFiles将被解析为list和files。
API序列提取:使用Eclipse JDT编译器解析AST并遍历AST来提取API序列,API序列如下所示:对于每个构造函数调用new C(),生成C.new并将其添加到API序列中;对于每个方法调用o.m(),其中o是类C的一个实例,生成C.m并将其附加到API序列;对于while(s1){s2;}这样的循环语句,生成一个序列a1-a2,其中a1和a2分别是从语句s1和s2中提取的API序列。
token提取:要从Java方法提取tokens,要标记化方法体,使用camel case分类每个token并删除重复的token,同时删除停止词(如:and in)和Java关键词,因为它们经常出现在源代码中,而且没有区别。
注释提取:为了提取Java注释,使用Eclipse JDT编译器从Java方法解析AST,并从AST提取JavaDoc注释。
S4、建立联合嵌入模型,将数据集进行向量化处理;包括如下步骤:
S4.1、建立联合嵌入模型:联合嵌入,是一种将异构数据(如代码和自然语言描述)联合嵌入/关联到统一向量空间,使得语义上相似的概念在相同的空间附近占据。联合嵌入模型分为三个部分:
(1)将源代码嵌入向量的代码嵌入网络:提取源代码方法名、API序列和token三个方面的信息,每一个单独嵌入成向量,然后组合成一个表示整个代码的向量;
(2)描述嵌入网络:使用RNN将自然语言描述嵌入到向量中;
(3)衡量代码和描述之间的相似度。
S4.2、训练联合嵌入模型:使用大量带有文档注释的Java方法段作为训练语料库,在训练时,将每个训练实例构造为<C,D+,D->:对于每个代码片段C,有一个正确描述D+,和一个错误描述D-,每训练一组<C,D+,D->,都会预测<C,D+>,<C,D->的余弦相似性并最小化the ranking loss,目的就是让代码片段与其正确描述之间的余弦相似性上升,而代码片段与其错误描述之间的余弦相似性下降。
S5、从GitHub中收集至少有20个stars的Java开源项目来构建代码库,然后将所有的代码段嵌入到向量中。具体步骤为:从GitHub中收集至少有20个stars的Java开源项目来构建代码库,然后通过联合嵌入模型以离线的方式将代码库中的所有代码段嵌入到向量中。
S6、将查询问题输入到问题提升模型中,然后将得到的结果输入到联合嵌入模型中进行向量化。具体步骤为:开发人员输入一个自然语言查询,首先自然语言查询会作为问题提升模型的输入,输出为提升过后的问题,然后结果作为联合嵌入模型的输入,联合嵌入模型使用RNN将其嵌入到向量中。
S7、计算查询问题的向量和代码向量的相似度得分来推荐Top-k代码段。具体步骤为:联合嵌入模型计算查询向量和步骤S5所述的代码库中所有代码段向量之间的余弦相似度,余弦相似度计算公式如下:
其中,a为代码段向量,b为查询向量;
最后根据余弦相似度分数高低返回与查询向量最相似的前K个代码段作为搜索结果。
下面结合说明书附图进一步阐述本发明的技术方案。
本发明的总体框架如图1所示,其遵循两个阶段的过程:问题提升和代码推荐。在问题提升中给出一个问题,首先提出一个补充性的问题,以此来促进该问题的提升。在代码推荐时,通过联合嵌入模型计算出相似性分数来对候选代码进行排序。
问题提升的任务是为问题自动生成一个补充性问题,使用sequence-to-sequence模型,如图2所示。从GitHub帖子的评论中提取对问题的补充性问题,首先通过提取对问题的所有评论,删除对答案的评论来构造一个问题评论集。然后,对于问题评论集中的每个评论,采用NLTK包将评论分解为多个句子。然后使用sentence tokenization方法将每个句子分隔成一个标记和符号列表。如果提取的标记包含问号标记‘?’,把这个句子删节到问号‘?’来作为问题的补充性问题。然后将提取到的<问题,补充性问题>数据集用来训练sequence-to-sequence模型,并保存为问题提升模型。
建立联合嵌入模型,如图3所示。联合嵌入,是一种将异构数据(如代码和自然语言描述)联合嵌入/关联到统一向量空间的技术,使得语义上相似的概念在相同的空间附近占据。这就弥补了问题和答案之间的空白性。从GitHub上收集带有注释的Java开源项目数据集,并对其预处理。
进一步,离线训练的算法流程如图4所示。在线推荐的算法流程如图5所示。
用户在系统上输入一个查询问题:“read an xml object”,如图6所示。点击查询,得到代码推荐结果,如图7所示,返回的代码推荐结果是准确的,符合软件开发人员的期望。此外,此发明不仅可搜索与查询问题具有匹配关键字的代码段,而且还推荐那些没有匹配关键字但语义相关的代码段,这一点很重要,因为它显著地增加了搜索范围,尤其是当代码库很小的时候。
本发明的目标是提高在GitHub上的代码搜索的性能,因此训练和搜索都是在GitHub语料库上执行的,然而这可能造成训练和搜索代码库之间存在重叠的威胁,为了减轻这种威胁,训练和搜索的代码库被构造成显著不同的。训练代码库只包含具有相应描述的代码,而搜索的代码库是孤立的,包含所有的代码(包括那些没有描述的代码)。这种重叠的过度拟合造成的威胁并不严重,因为我们的训练代码库考虑了Github上绝大多数的代码
本发明仅考虑了结果的语义向量来推荐代码段,在未来的工作中,可以作出一些改进,可以在在发明中考虑更多的代码特性(如代码上下文),以进一步使结果更精确。
本发明解决了自然语言查询中反映的高级意图与源代码中低级实现细节之间不匹配的问题,以及深度学习方法中缺乏不可扩展性的问题。
Claims (9)
1.一种基于联合嵌入模型的代码推荐方法,其特征在于,包括如下步骤:
S1、从GitHub帖子的评论中提取对问题的补充性问题;
S2、将<问题,补充性问题>用来训练sequence-to-sequence模型,并保存为问题提升模型;
S3、从GitHub上收集带有注释的Java开源项目数据集,并对其预处理;
S4、建立联合嵌入模型,将数据集进行向量化处理;
S5、从GitHub中收集至少有20个stars的Java开源项目来构建代码库,然后将所有的代码段嵌入到向量中;
S6、将查询问题输入到问题提升模型中,然后将得到的结果输入到联合嵌入模型中进行向量化;
S7、计算查询问题的向量和代码向量的相似度得分来推荐Top-k代码段。
2.根据权利要求1所述的基于联合嵌入模型的代码推荐方法,其特征在于,步骤S1中,所述补充性问题的定义为:在一篇文章的评论中的问题,该问题是给定帖子的缺失信息,从GitHub帖子的评论中提取对问题的补充性问题。
3.根据权利要求1所述的基于联合嵌入模型的代码推荐方法,其特征在于,步骤S2中,sequence-to-sequence模型的主流是编码器-解码器架构,编码器是一个两层双向LSTM网络,解码器是一个单层LSTM网络,在训练时,解码器将前一个词嵌入向量和前一个状态作为输入,并将其连接生成LSTM网络输入。
4.根据权利要求1所述的基于联合嵌入模型的代码推荐方法,其特征在于,步骤S3的具体步骤为:首先注释选取第一句话,在收集了注释代码片段的语料库之后,提取方法名、API序列、token和注释元组,其中,
方法名提取:对于每个Java方法,提取它的名称并将其解析为tokens序列;
API序列提取:使用Eclipse JDT编译器解析AST并遍历AST来提取API序列,API序列如下所示:对于每个构造函数调用new C(),生成C.new并将其添加到API序列中;对于每个方法调用o.m(),其中o是类C的一个实例,生成C.m并将其附加到API序列;对于while(s1){s2;}这样的循环语句,生成一个序列a1-a2,其中a1和a2分别是从语句s1和s2中提取的API序列;
token提取:要从Java方法提取tokens,要标记化方法体,使用camel case分类每个token并删除重复的token,同时删除停止词和Java关键词;
注释提取:使用Eclipse JDT编译器从Java方法解析AST,并从AST提取JavaDoc注释。
5.根据权利要求1所述的基于联合嵌入模型的代码推荐方法,其特征在于,步骤S4包括如下步骤:
S4.1、建立联合嵌入模型:联合嵌入,将异构数据联合嵌入/关联到统一向量空间,使得语义上相似的概念在相同的空间附近占据;
S4.2、训练联合嵌入模型:使用大量带有文档注释的Java方法段作为训练语料库,在训练时,将每个训练实例构造为<C,D+,D->:对于每个代码片段C,有一个正确描述D+,和一个错误描述D-,每训练一组<C,D+,D->,都会预测<C,D+>,<C,D->的余弦相似性并最小化theranking loss,目的就是让代码片段与其正确描述之间的余弦相似性上升,而代码片段与其错误描述之间的余弦相似性下降。
6.根据权利要求5所述的基于联合嵌入模型的代码推荐方法,其特征在于,所述联合嵌入模型分为三个部分:
(1)将源代码嵌入向量的代码嵌入网络:提取源代码方法名、API序列和token三个方面的信息,每一个单独嵌入成向量,然后组合成一个表示整个代码的向量;
(2)描述嵌入网络:使用RNN将自然语言描述嵌入到向量中;
(3)衡量代码和描述之间的相似度。
7.根据权利要求1所述的基于联合嵌入模型的代码推荐方法,其特征在于,步骤S5的具体步骤为:从GitHub中收集至少有20个stars的Java开源项目来构建代码库,然后通过联合嵌入模型以离线的方式将代码库中的所有代码段嵌入到向量中。
8.根据权利要求1所述的基于联合嵌入模型的代码推荐方法,其特征在于,步骤S6的具体步骤为:开发人员输入一个自然语言查询,首先自然语言查询会作为问题提升模型的输入,输出为提升过后的问题,然后结果作为联合嵌入模型的输入,联合嵌入模型使用RNN将其嵌入到向量中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110251408.6A CN112860879A (zh) | 2021-03-08 | 2021-03-08 | 一种基于联合嵌入模型的代码推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110251408.6A CN112860879A (zh) | 2021-03-08 | 2021-03-08 | 一种基于联合嵌入模型的代码推荐方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112860879A true CN112860879A (zh) | 2021-05-28 |
Family
ID=75994776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110251408.6A Pending CN112860879A (zh) | 2021-03-08 | 2021-03-08 | 一种基于联合嵌入模型的代码推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860879A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761162A (zh) * | 2021-08-18 | 2021-12-07 | 浙江大学 | 一种基于上下文感知的代码搜索方法 |
CN114237621A (zh) * | 2021-12-20 | 2022-03-25 | 重庆大学 | 一种基于细粒度共注意机制的语义代码搜索方法 |
CN114385781A (zh) * | 2021-11-30 | 2022-04-22 | 北京凯睿数加科技有限公司 | 基于语句模型的接口文件推荐方法、装置、设备和介质 |
CN115017294A (zh) * | 2022-05-31 | 2022-09-06 | 武汉大学 | 代码搜索方法 |
CN115221310A (zh) * | 2022-09-20 | 2022-10-21 | 北京大学 | 一种基于知识图谱的开源应用自动化推荐方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506414A (zh) * | 2017-08-11 | 2017-12-22 | 武汉大学 | 一种基于长短期记忆网络的代码推荐方法 |
CN110750240A (zh) * | 2019-08-28 | 2020-02-04 | 南京航空航天大学 | 一种基于序列到序列模型的代码片段推荐方法 |
-
2021
- 2021-03-08 CN CN202110251408.6A patent/CN112860879A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506414A (zh) * | 2017-08-11 | 2017-12-22 | 武汉大学 | 一种基于长短期记忆网络的代码推荐方法 |
CN110750240A (zh) * | 2019-08-28 | 2020-02-04 | 南京航空航天大学 | 一种基于序列到序列模型的代码片段推荐方法 |
Non-Patent Citations (3)
Title |
---|
LIMING NIE 等: "《Query Expansion Based on Crowd Knowledge for Code Search》", 《IEEE TRANSACTIONS ON SERVICES COMPUTING》 * |
XIAODONG GU 等: "《Deep Code Search》", 《2018 ACM/IEEE 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING》 * |
王飞 等: "《代码知识图谱构建及智能化软件开发方法研究》", 《软件学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761162A (zh) * | 2021-08-18 | 2021-12-07 | 浙江大学 | 一种基于上下文感知的代码搜索方法 |
CN113761162B (zh) * | 2021-08-18 | 2023-12-05 | 浙江大学 | 一种基于上下文感知的代码搜索方法 |
CN114385781A (zh) * | 2021-11-30 | 2022-04-22 | 北京凯睿数加科技有限公司 | 基于语句模型的接口文件推荐方法、装置、设备和介质 |
CN114237621A (zh) * | 2021-12-20 | 2022-03-25 | 重庆大学 | 一种基于细粒度共注意机制的语义代码搜索方法 |
CN115017294A (zh) * | 2022-05-31 | 2022-09-06 | 武汉大学 | 代码搜索方法 |
CN115017294B (zh) * | 2022-05-31 | 2023-05-09 | 武汉大学 | 代码搜索方法 |
CN115221310A (zh) * | 2022-09-20 | 2022-10-21 | 北京大学 | 一种基于知识图谱的开源应用自动化推荐方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lin et al. | Traceability transformed: Generating more accurate links with pre-trained bert models | |
CN112860879A (zh) | 一种基于联合嵌入模型的代码推荐方法 | |
Qin et al. | A survey on text-to-sql parsing: Concepts, methods, and future directions | |
Chang et al. | A survey of web information extraction systems | |
Yan et al. | Named entity recognition by using XLNet-BiLSTM-CRF | |
US20040243554A1 (en) | System, method and computer program product for performing unstructured information management and automatic text analysis | |
US20040243645A1 (en) | System, method and computer program product for performing unstructured information management and automatic text analysis, and providing multiple document views derived from different document tokenizations | |
US20040243560A1 (en) | System, method and computer program product for performing unstructured information management and automatic text analysis, including an annotation inverted file system facilitating indexing and searching | |
US20210350125A1 (en) | System for searching natural language documents | |
Yıldırım et al. | Mastering Transformers: Build state-of-the-art models from scratch with advanced natural language processing techniques | |
Nguyen et al. | Exploiting syntactic and semantic information for relation extraction from wikipedia | |
CN112328800A (zh) | 自动生成编程规范问题答案的系统及方法 | |
Reusch et al. | TU_DBS in the ARQMath Lab 2021, CLEF. | |
Choi et al. | Source code summarization using attention-based keyword memory networks | |
CN111831624A (zh) | 数据表创建方法、装置、计算机设备及存储介质 | |
CN111339272A (zh) | 代码缺陷报告检索方法及装置 | |
Tang et al. | Automatic semantic annotation using machine learning | |
CN117421392B (zh) | 一种基于词级对齐的代码搜索方法及装置 | |
US20240168728A1 (en) | Identification of relevant code block within relevant software package for a query | |
Tatar | Automating information extraction task for Turkish texts | |
Prata et al. | Detection of Domain-Specific Hypernyms Using Named Entity Recognition and Extraction | |
Cuculovic | Modeling and optimization of an online publishing application | |
Consuegra-Ayala et al. | UH-MatCom at eHealth-KD Challenge 2020: Deep-Learning and Ensemble Models for Knowledge Discovery in Spanish Documents | |
Shidha et al. | Chem Text Mining-An Outline | |
CN118259886A (zh) | 一种基于检索增强和温度损失的api序列推荐方法及装置 |
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 |