CN112507065A - 一种基于注释语义信息的代码搜索方法 - Google Patents
一种基于注释语义信息的代码搜索方法 Download PDFInfo
- Publication number
- CN112507065A CN112507065A CN202011296561.2A CN202011296561A CN112507065A CN 112507065 A CN112507065 A CN 112507065A CN 202011296561 A CN202011296561 A CN 202011296561A CN 112507065 A CN112507065 A CN 112507065A
- Authority
- CN
- China
- Prior art keywords
- code
- vector
- sample
- warehouse
- text
- 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
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/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- 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/338—Presentation of query results
-
- 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/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- 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)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biomedical Technology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于注释语义信息的代码搜索方法,所述搜索方法包括从收集的代码仓库中得到存储为“自然语言描述,函数代码”形式的代码样本,对代码样本进行数据处理后通过神经网络模型编码器进行编码,并对神经网络模型进行训练;通过神经网络模型编码器将代码仓库中的所有代码函数和用户的输入转化为向量形式并构建代码向量仓库,计算代码向量仓库中与用户输入转化后的向量最接近的多个代码向量,并返回对应的代码作为检索结果。本发明的优点在于:使用代码内部本身带有的注释信息作为自然语言标注,减少的需要人工标注这一工作量,可以实现大规模的数据生成。其次采用了Transformer神经网络等进行语义特征提取,解决了传统的关键词匹配需要一一对应的缺点。
Description
技术领域
本发明涉及代码搜索技术领域,尤其涉及一种基于注释语义信息的代码搜索方法。
背景技术
在软件的开发过程中,开发人员需要花费很多时间去代码仓库中检索代码进行代码复用或者作为参考。改进代码仓库的搜索功能可以提升开发人员的开发效率,以便提升软件开发效率。
早期以及目前的代码搜索技术依旧是基于传统的信息检索技术,例如使用Luence等搜索工具。这些现有工具采用的方法是对搜索句子和代码片段进行关键字匹配,其主要方式利用倒排搜索:首先对代码片段进行分词切块,记录这些词语对应的代码片段,然后对用户输入的查询语句中的词语查询包含这些词语的代码片段,然后作为结果显示给返回给搜索者。
传统的关键词搜索方法依旧将代码视为自然语言的一种,认为代码中的关键词和用户的关键词是一致。但是实际上,代码编写人员在代码的编写上可能包含了连词、缩写或者随机命名等语法改编。因此如果用户的关键词并不能与代码中的关键词直接匹配,其结果会变得非常糟糕。此外用户的搜索语句也会更接近自然语言,往往其中添加了一些语法中的助词或者介词,使其语义的信息与代码片段并不强相关,现有的方案在搜索的时候欠缺一定程度的语义理解。
发明内容
本发明的目的在于克服现有技术的缺点,提供了一种基于注释语义信息的代码搜索方法,使用已有的代码仓库数据构建自然语言描述与代码样本,利用神经网络模型完成具备语义信息的代码搜索任务,解决了现有代码搜索方法存在的不足。
本发明的目的通过以下技术方案来实现:一种基于注释语义信息的代码搜索方法,所述搜索方法包括:
从收集的代码仓库中得到存储为“自然语言描述,函数代码”形式的代码样本,对代码样本进行数据处理后通过神经网络模型编码器进行编码,并对神经网络模型进行训练;
通过神经网络模型编码器将代码仓库中的所有代码函数和用户的输入转化为向量形式并构建代码向量仓库,计算代码向量仓库中与用户输入转化后的向量最接近的多个代码向量,并返回对应的代码作为检索结果。
进一步地,所述从收集的代码仓库中得到存储为“自然语言描述,函数代码”形式的代码样本,对代码样本进行数据处理后通过神经网络模型编码器进行编码,并对神经网络模型进行训练包括:
收集现有的代码仓库提取代码片段,将具备函数注释的函数代码作为一个样本,并存储为“自然语言描述,函数代码”形式;
清理样本数据,将代码样本中的自然语言描述,函数代码部分文本进行清理,使用移除非法字符或拆分令牌或构建新词的方法构建令牌token列表形式;
采用替换“自然语言描述,函数代码”形式中对应部分为其他样本对应部分的方法构造新的代码样本,其中,发生替换的样本为负样本,没有发生替换的样本为正样本;
使用两个Transformer神经网络模型编码器E1和E2分别对“自然语言描述,函数代码”形式的代码样本进行编码,编码为向量形式即自然描述的向量Vq和代码的向量Vc;
训练神经网络模型,使得正样本的自然语言描述的向量Vq和代码的向量Vc无限的接近,负样本无限的远离,采用余弦相似度作为衡量向量接近程度,并通过反向传播调整模型参数。
进一步地,所述通过神经网络模型编码器将代码仓库中的所有代码函数和用户的输入转化为向量形式并构建代码向量仓库,计算代码向量仓库中与用户输入转化后的向量最接近的多个代码向量,并返回对应的代码作为检索结果包括:
将代码仓库中的所有代码函数采用编码器E2转化为向量形式进行存储,构建代码向量仓库R;
用户搜索代码仓库时,将用户的输入使用编码器E1转化为向量形式,计算代码向量仓库R中与用户输入向量最接近的N个代码向量,返回其对应的代码作为检索结果。
进一步地,所述清理样本数据,将代码样本中的自然语言描述,函数代码部分文本进行清理,使用移除非法字符或拆分令牌或构建新词的方法构建令牌token列表形式包括:
基于空格、括号和控制符将文本分为小块token形式,对于以注释符号开头的token进行移除,字符串token采用特殊标记进行替换;
对每一个token根据常见的代码命名方式进行切分,产生更细粒度的token;
重新组合token以空格形式进行拼接为文本形式;
采用BPE方法进行数据压缩与编码,生成新的token。
进一步地,所述使用两个Transformer神经网络模型编码器E1和E2分别对“自然语言描述,函数代码”形式的代码样本进行编码,编码为向量形式即自然描述的向量Vq和代码的向量Vc包括:
对文本的token列表的长度进行判断,并根据对比其与指定长度M或超过指定长度M的关系后对文本进行处理;
将token映射为一个随机初始化的N维向量形式,则文本被表示为一个M×N的矩阵;
将矩阵输入一个语义提取网络Transformer中,Transformer网络的输出为M×K维矩阵,表示提取的语义矩阵;
使用池化的方法将语义矩阵转换为一个1×K维向量形式,该向量可以认为是这个文本的稠密向量表示。
进一步地,所述对文本的token列表的长度进行判断,并根据对比其与指定长度M或超过指定长度M的关系后对文本进行处理包括:
如果文本的token列表长度未达到指定长度M,则对未达到的文本补充特殊token“[PAD]”使其达到要求;
如果文本的token列表长度唱过指定长度M,则对超过指定长度M的token列表进行截断使其长度只有M。
进一步地,所述训练神经网络模型,使得正样本的自然语言描述的向量Vq和代码的向量Vc无限的接近,负样本无限的远离,采用余弦相似度作为衡量向量接近程度,并通过反向传播调整模型参数包括:
根据偏差计算模型参数的梯度,使用反向传播法修改模型参数。
本发明具有以下优点:一种基于注释语义信息的代码搜索方法,使用代码内部本身带有的注释信息作为自然语言标注,减少的需要人工标注这一工作量,可以实现大规模的数据生成。其次采用了Transformer神经网络等进行语义特征提取,解决了传统的关键词匹配需要一一对应的缺点。最后使用了向量搜索的方法进行作为最终的服务方案,本方法可以通过简单高效的实现使得该发明快速应用于实际的生产环境中。
附图说明
图1为本发明的样本生成与模型训练的示意图;
图2为本发明编码的示意图;
图3为本发明神经网络框架的示意图;
图4为用户搜索流程示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的保护范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本发明做进一步的描述。
如图1所示,本发明涉及一种基于注释语义信息的代码搜索方法,使用已有的代码仓库数据构建自然语言描述与代码样本,利用神经网络模型完成具备语义信息的代码搜索任务,其具体包括以下内容:
S1、收集现有的私人代码仓库或者公开代码仓库,提取代码片段,将具备函数注释的函数代码作为一个样本,存储为“自然语言描述,函数代码”形式,采用两个文本文件分别存储,对应的自然语言描述和函数代码各自被压缩为一行文本,分别存储在两个文件的对应行;实现采集数据并进行存储。
S2、清理样本数据,将样本中的自然语言描述,函数代码部分文本进行清理,使用移除非法字符、拆分令牌、构建新词等方法构造成令牌token列表形式;实现对数据的清理。
进一步地,代码文本清理具体包括以下步骤,以代码片段“if flagA==1:print(‘hello world’)#如果标志为1,打印文本”为例:
S21、基于空格、括号、控制符等将文本分为小块token形式,对于以注释符号开头的token进行移除、字符串token采用特殊标记“[STR]”进行替换,例子被替换为“if flagAprint[STR]”;
S22、对每一个token,根据常见的代码命名方式(蛇形法与驼峰法)进行切分,产生更细粒度的token,例子被拆分为“if”、“flag”、“A”、“print”、“[STR]”五个token;
S23、重新组合token以空格形式进行拼接为文本形式,例子变为“if flag Aprint[STR]”;
S24、采用BPE(Byte Pair Encoding)方法进行数据压缩与编码,生成新的token。该方法可以有效地平衡词汇表大小,并提取出潜在的字符模式,上一步骤中的“if”和“flag”在整个词典中大量组合出现,因此会进行合并,最终例子变为“if#flag”、“A”、“print”、“[STR]”四个token。
S3、采用随机替换的方法补充样本,采用替换<自然语言描述,函数代码>中的对应部分为其他样本对应部分的方法构造新的样本。发生替换的样本称为负样本,没有发生替换的样本称为正样本,经过对比实验,正负样本比例设置为一比四时,可以在后续步骤获得较好效果;实现训练样本的构建。
S4、使用两个Transformer神经网络模型编码器E1、E2分别对自然语言描述和函数代码进行编码,编码为向量形式即自然语言描述的向量Vq和代码的向量Vc;通过神经网络对样本进行处理。
进一步地,如图2所示,编码器编码具体包括以下步骤:
S41、对文本的token列表判断其是否达到指定长度M或超过长度,对于未达到的文本补充特殊token“[PAD]”使其达到要求,对于超过长度的token列表进行截断使其长度只有M;
S42、将token映射为一个随机初始化的N维向量形式,则该文本可以被表示为一个M×N的矩阵;
S43、将矩阵输入一个语义提取网络Transformer中,Transformer网络的输出为M×K维矩阵,表示提取的语义矩阵;
S44、使用池化的方法将语义矩阵转为一个1×K维向量形式,该向量可以认为是这个文本的稠密向量表示。
S5、训练神经网络模型,使得正样本的自然语言描述的向量Vq和代码的向量Vc尽可能接近,负样本尽可能远离。采用余弦相似度作为衡量向量接近程度,并通过反向传播调整模型参数。实现训练神经网络,调整网络参数。
进一步地,如图3所示,神经网络训练具体包括以下步骤:
S51、计算自然语言描述的向量Vq和代码的向量Vc的余弦相似度。其公式为:
S52、正样本的余弦相似度应该接近于1,负样本接近于-1。使用交叉熵函数判断模型的偏差:
S53、根据偏差计算模型参数的梯度,使用反向传播法修改模型参数。
以上步骤为线下预训练部分,训练好后如果不更新则不需要再次进行相关操作。
如图4所示,以下步骤为线上服务阶段;
S6、将代码仓库中的所有代码函数采用E2转化为向量形式进行存储,构建代码向量仓库R,出于性能优化考虑,可采用一些高性能向量存储方式进行存储,例如KD Tree等;实现使用神经网络将代码仓库的代码转换为向量进行存储。
S7、用户搜索代码仓库时,将用户的输入使用E1转化为向量形式,计算代码向量仓库R中与用户输入向量最接近的N个代码向量,返回其对应的代码作为检索结果。
进一步地,本发明用于语义特征提取的模型并不局限于Transformer模型,其他RNN,1D-CNN等可以用于语义提取的网络均可。相似性判断并不局限于余弦相似度,也可以采用其他的相似度算法例如度量学习等。构建代码向量存储时所用的方法也并不局限于KD树,例如annoy、faiss等方法也可以完成相似的工作。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (7)
1.一种基于注释语义信息的代码搜索方法,其特征在于:所述搜索方法包括:
从收集的代码仓库中得到存储为“自然语言描述,函数代码”形式的代码样本,对代码样本进行数据处理后通过神经网络模型编码器进行编码,并对神经网络模型进行训练;
通过神经网络模型编码器将代码仓库中的所有代码函数和用户的输入转化为向量形式并构建代码向量仓库,计算代码向量仓库中与用户输入转化后的向量最接近的多个代码向量,并返回对应的代码作为检索结果。
2.根据权利要求1所述的一种基于注释语义信息的代码搜索方法,其特征在于:所述从收集的代码仓库中得到存储为“自然语言描述,函数代码”形式的代码样本,对代码样本进行数据处理后通过神经网络模型编码器进行编码,并对神经网络模型进行训练包括:
收集现有的代码仓库提取代码片段,将具备函数注释的函数代码作为一个样本,并存储为“自然语言描述,函数代码”形式;
清理样本数据,将代码样本中的自然语言描述,函数代码部分文本进行清理,使用移除非法字符或拆分令牌或构建新词的方法构建令牌token列表形式;
采用替换“自然语言描述,函数代码”形式中对应部分为其他样本对应部分的方法构造新的代码样本,其中,发生替换的样本为负样本,没有发生替换的样本为正样本;
使用两个Transformer神经网络模型编码器E1和E2分别对“自然语言描述,函数代码”形式的代码样本进行编码,编码为向量形式即自然描述的向量Vq和代码的向量Vc;
训练神经网络模型,使得正样本的自然语言描述的向量Vq和代码的向量Vc无限的接近,负样本无限的远离,采用余弦相似度作为衡量向量接近程度,并通过反向传播调整模型参数。
3.根据权利要求2所述的一种基于注释语义信息的代码搜索方法,其特征在于:所述通过神经网络模型编码器将代码仓库中的所有代码函数和用户的输入转化为向量形式并构建代码向量仓库,计算代码向量仓库中与用户输入转化后的向量最接近的多个代码向量,并返回对应的代码作为检索结果包括:
将代码仓库中的所有代码函数采用编码器E2转化为向量形式进行存储,构建代码向量仓库R;
用户搜索代码仓库时,将用户的输入使用编码器E1转化为向量形式,计算代码向量仓库R中与用户输入向量最接近的N个代码向量,返回其对应的代码作为检索结果。
4.根据权利要求2所述的一种基于注释语义信息的代码搜索方法,其特征在于:所述清理样本数据,将代码样本中的自然语言描述,函数代码部分文本进行清理,使用移除非法字符或拆分令牌或构建新词的方法构建令牌token列表形式包括:
基于空格、括号和控制符将文本分为小块token形式,对于以注释符号开头的token进行移除,字符串token采用特殊标记进行替换;
对每一个token根据常见的代码命名方式进行切分,产生更细粒度的token;
重新组合token以空格形式进行拼接为文本形式;
采用BPE方法进行数据压缩与编码,生成新的token。
5.根据权利要求4所述的一种基于注释语义信息的代码搜索方法,其特征在于:所述使用两个Transformer神经网络模型编码器E1和E2分别对“自然语言描述,函数代码”形式的代码样本进行编码,编码为向量形式即自然描述的向量Vq和代码的向量Vc包括:
对文本的token列表的长度进行判断,并根据对比其与指定长度M或超过指定长度M的关系后对文本进行处理;
将token映射为一个随机初始化的N维向量形式,则文本被表示为一个M×N的矩阵;
将矩阵输入一个语义提取网络Transformer中,Transformer网络的输出为M×K维矩阵,表示提取的语义矩阵;
使用池化的方法将语义矩阵转换为一个1×K维向量形式,该向量可以认为是这个文本的稠密向量表示。
6.根据权利要求5所述的一种基于注释语义信息的代码搜索方法,其特征在于:所述对文本的token列表的长度进行判断,并根据对比其与指定长度M或超过指定长度M的关系后对文本进行处理包括:
如果文本的token列表长度未达到指定长度M,则对未达到的文本补充特殊token“[PAD]”使其达到要求;
如果文本的token列表长度唱过指定长度M,则对超过指定长度M的token列表进行截断使其长度只有M。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011296561.2A CN112507065B (zh) | 2020-11-18 | 2020-11-18 | 一种基于注释语义信息的代码搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011296561.2A CN112507065B (zh) | 2020-11-18 | 2020-11-18 | 一种基于注释语义信息的代码搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112507065A true CN112507065A (zh) | 2021-03-16 |
CN112507065B CN112507065B (zh) | 2022-07-12 |
Family
ID=74956946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011296561.2A Active CN112507065B (zh) | 2020-11-18 | 2020-11-18 | 一种基于注释语义信息的代码搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112507065B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761163A (zh) * | 2021-08-18 | 2021-12-07 | 浙江大学 | 基于代码结构语义信息的深度代码搜索方法、系统及装置 |
CN113886520A (zh) * | 2021-08-26 | 2022-01-04 | 广东工业大学 | 一种基于图神经网络的代码检索方法、系统及计算机可读存储介质 |
CN113901177A (zh) * | 2021-10-27 | 2022-01-07 | 电子科技大学 | 一种基于多模态属性决策的代码搜索方法 |
US11240266B1 (en) * | 2021-07-16 | 2022-02-01 | Social Safeguard, Inc. | System, device and method for detecting social engineering attacks in digital communications |
CN114186017A (zh) * | 2021-11-02 | 2022-03-15 | 武汉大学 | 基于多维度匹配的代码搜索方法 |
CN115202732A (zh) * | 2022-06-27 | 2022-10-18 | 深圳市互通创新科技有限公司 | 一种智能软件开发辅助系统及使用方法 |
CN115562679A (zh) * | 2022-12-05 | 2023-01-03 | 广州市保伦电子有限公司 | 一种基于Java语言的自动生成代码的方法及服务器 |
CN115577075A (zh) * | 2022-10-18 | 2023-01-06 | 华中师范大学 | 一种基于关系图卷积网络的深度代码搜索方法 |
CN116661852A (zh) * | 2023-04-06 | 2023-08-29 | 华中师范大学 | 一种基于程序依赖图的代码搜索方法 |
CN117112851A (zh) * | 2023-10-24 | 2023-11-24 | 北京航空航天大学 | 一种基于后交互机制的代码搜索方法 |
CN117349453A (zh) * | 2023-12-04 | 2024-01-05 | 武汉大学 | 一种基于扩展代码的深度学习代码搜索模型的加速方法 |
WO2024031983A1 (zh) * | 2022-08-10 | 2024-02-15 | 华为云计算技术有限公司 | 一种代码管理方法及相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202206A (zh) * | 2016-06-28 | 2016-12-07 | 哈尔滨工程大学 | 一种基于软件聚类的源码功能搜索方法 |
EP3483747A1 (en) * | 2017-11-13 | 2019-05-15 | Accenture Global Solutions Limited | Preserving and processing ambiguity in natural language |
CN110059164A (zh) * | 2018-01-11 | 2019-07-26 | 国际商业机器公司 | 用于对话系统的语义表示和实现 |
CN111142850A (zh) * | 2019-12-23 | 2020-05-12 | 南京航空航天大学 | 一种基于深度神经网络的代码片段推荐方法与装置 |
CN111159223A (zh) * | 2019-12-31 | 2020-05-15 | 武汉大学 | 一种基于结构化嵌入的交互式代码搜索方法及装置 |
CN111191002A (zh) * | 2019-12-26 | 2020-05-22 | 武汉大学 | 一种基于分层嵌入的神经代码搜索方法及装置 |
-
2020
- 2020-11-18 CN CN202011296561.2A patent/CN112507065B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202206A (zh) * | 2016-06-28 | 2016-12-07 | 哈尔滨工程大学 | 一种基于软件聚类的源码功能搜索方法 |
EP3483747A1 (en) * | 2017-11-13 | 2019-05-15 | Accenture Global Solutions Limited | Preserving and processing ambiguity in natural language |
CN110059164A (zh) * | 2018-01-11 | 2019-07-26 | 国际商业机器公司 | 用于对话系统的语义表示和实现 |
CN111142850A (zh) * | 2019-12-23 | 2020-05-12 | 南京航空航天大学 | 一种基于深度神经网络的代码片段推荐方法与装置 |
CN111191002A (zh) * | 2019-12-26 | 2020-05-22 | 武汉大学 | 一种基于分层嵌入的神经代码搜索方法及装置 |
CN111159223A (zh) * | 2019-12-31 | 2020-05-15 | 武汉大学 | 一种基于结构化嵌入的交互式代码搜索方法及装置 |
Non-Patent Citations (3)
Title |
---|
SAKSHAM SACHDEV等: "retrieval on source code:a neural code search", 《MAPL 2018:PROCEEDING OF THE 2ND ACM SIGPLAN INTERNATIONAL WORKSHOP ON MACHINE LEARNING AND PROGRAMMING LANGUAGES》 * |
张开乐: "基于机器学习的代码搜索方法综述", 《无线通信技术》 * |
陆龙龙等: "CodeSearcher:基于自然语言功能描述的代码查询", 《计算机科学》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11240266B1 (en) * | 2021-07-16 | 2022-02-01 | Social Safeguard, Inc. | System, device and method for detecting social engineering attacks in digital communications |
CN113761163B (zh) * | 2021-08-18 | 2024-02-02 | 浙江大学 | 基于代码结构语义信息的深度代码搜索方法、系统及装置 |
CN113761163A (zh) * | 2021-08-18 | 2021-12-07 | 浙江大学 | 基于代码结构语义信息的深度代码搜索方法、系统及装置 |
CN113886520A (zh) * | 2021-08-26 | 2022-01-04 | 广东工业大学 | 一种基于图神经网络的代码检索方法、系统及计算机可读存储介质 |
CN113886520B (zh) * | 2021-08-26 | 2024-05-14 | 广东工业大学 | 一种基于图神经网络的代码检索方法、系统及计算机可读存储介质 |
CN113901177A (zh) * | 2021-10-27 | 2022-01-07 | 电子科技大学 | 一种基于多模态属性决策的代码搜索方法 |
CN113901177B (zh) * | 2021-10-27 | 2023-08-08 | 电子科技大学 | 一种基于多模态属性决策的代码搜索方法 |
CN114186017A (zh) * | 2021-11-02 | 2022-03-15 | 武汉大学 | 基于多维度匹配的代码搜索方法 |
CN114186017B (zh) * | 2021-11-02 | 2024-02-27 | 武汉大学 | 基于多维度匹配的代码搜索方法 |
CN115202732A (zh) * | 2022-06-27 | 2022-10-18 | 深圳市互通创新科技有限公司 | 一种智能软件开发辅助系统及使用方法 |
CN115202732B (zh) * | 2022-06-27 | 2023-08-08 | 苏州唐人数码科技有限公司 | 一种智能软件开发辅助系统及使用方法 |
WO2024031983A1 (zh) * | 2022-08-10 | 2024-02-15 | 华为云计算技术有限公司 | 一种代码管理方法及相关设备 |
CN115577075A (zh) * | 2022-10-18 | 2023-01-06 | 华中师范大学 | 一种基于关系图卷积网络的深度代码搜索方法 |
CN115577075B (zh) * | 2022-10-18 | 2024-03-12 | 华中师范大学 | 一种基于关系图卷积网络的深度代码搜索方法 |
CN115562679A (zh) * | 2022-12-05 | 2023-01-03 | 广州市保伦电子有限公司 | 一种基于Java语言的自动生成代码的方法及服务器 |
CN116661852B (zh) * | 2023-04-06 | 2023-12-08 | 华中师范大学 | 一种基于程序依赖图的代码搜索方法 |
CN116661852A (zh) * | 2023-04-06 | 2023-08-29 | 华中师范大学 | 一种基于程序依赖图的代码搜索方法 |
CN117112851A (zh) * | 2023-10-24 | 2023-11-24 | 北京航空航天大学 | 一种基于后交互机制的代码搜索方法 |
CN117112851B (zh) * | 2023-10-24 | 2024-04-02 | 北京航空航天大学 | 一种基于后交互机制的代码搜索方法 |
CN117349453A (zh) * | 2023-12-04 | 2024-01-05 | 武汉大学 | 一种基于扩展代码的深度学习代码搜索模型的加速方法 |
CN117349453B (zh) * | 2023-12-04 | 2024-02-23 | 武汉大学 | 一种基于扩展代码的深度学习代码搜索模型的加速方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112507065B (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112507065B (zh) | 一种基于注释语义信息的代码搜索方法 | |
CN109918666B (zh) | 一种基于神经网络的中文标点符号添加方法 | |
CN107451126B (zh) | 一种近义词筛选方法及系统 | |
CN112101028B (zh) | 一种多特征双向门控领域专家实体抽取方法及系统 | |
JP2005505869A (ja) | 文字ストリングの識別 | |
CN111402092B (zh) | 一种基于多层次语义解析的法律法规检索系统 | |
CN111061882A (zh) | 一种知识图谱构建方法 | |
CN116151132B (zh) | 一种编程学习场景的智能代码补全方法、系统及储存介质 | |
CN113221559B (zh) | 利用语义特征的科技创新领域中文关键短语抽取方法及系统 | |
CN111814477B (zh) | 一种基于争议焦点实体的争议焦点发现方法、装置及终端 | |
CN111625621A (zh) | 一种文档检索方法、装置、电子设备及存储介质 | |
CN113190656A (zh) | 一种基于多标注框架与融合特征的中文命名实体抽取方法 | |
CN111813923A (zh) | 文本摘要方法、电子设备及存储介质 | |
CN111090994A (zh) | 一种面向中文网络论坛文本的事件地点归属省份识别方法 | |
CN113515619A (zh) | 一种基于显著性信息门控机制的关键词生成方法 | |
CN114266256A (zh) | 一种领域新词的提取方法及系统 | |
CN114757184B (zh) | 实现航空领域知识问答的方法和系统 | |
CN112818698A (zh) | 一种基于双通道模型的细粒度的用户评论情感分析方法 | |
CN115687567A (zh) | 一种不需要标注数据的短文本搜索相似长文本方法 | |
CN115033773A (zh) | 一种基于在线搜索辅助的中文文本纠错方法 | |
CN111008277B (zh) | 一种自动文本摘要方法 | |
Ma et al. | Joint pre-trained Chinese named entity recognition based on bi-directional language model | |
CN115203236A (zh) | 基于模板检索的文本到sql生成方法 | |
CN113312903B (zh) | 一种5g移动业务产品词库的构建方法及系统 | |
Liu et al. | Probabilistic ensemble learning for vietnamese word segmentation |
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 |