CN110716749B - 一种基于功能相似度匹配的代码搜索方法 - Google Patents
一种基于功能相似度匹配的代码搜索方法 Download PDFInfo
- Publication number
- CN110716749B CN110716749B CN201910828507.9A CN201910828507A CN110716749B CN 110716749 B CN110716749 B CN 110716749B CN 201910828507 A CN201910828507 A CN 201910828507A CN 110716749 B CN110716749 B CN 110716749B
- Authority
- CN
- China
- Prior art keywords
- query
- similarity
- functional
- sim
- score
- 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.)
- Active
Links
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/75—Structural analysis for program understanding
-
- 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/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- 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/38—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- 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)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于功能相似度匹配的代码搜索方法,针对输入是自然语言查询的情况,对代码库中的代码进行功能信息的挖掘,挖掘代码片段的功能注释与功能API这两个特征来度量代码片段和查询语句的功能相似度,结合代码片段的方法名和方法体两个特征,根据不同特征的重要性分配不同的权重,计算查询和与代码片段的总的相似度得分,按照得分高低排序,把搜索结果返回给用户。充分考虑并挖掘了源代码中包含的功能信息,并根据重要性分配权重,使得匹配精度更高。
Description
技术领域
本发明涉及一种基于功能相似度匹配的代码搜索方法,属于软件工程中的代码搜索技术领域。
背景技术
如何提高软件的开发效率是软件工程领域的一个核心问题。随着互联网的发展以及开源软件的流行,代码重用在提高软件开发效率方面变得越来越重要。实用主义的代码重用倾向于找到相关的代码,通过复制粘贴和修改的方式来满足编程需求,定位相关代码的方法称之为代码搜索。代码搜索技术的提高对代码重用起了极大的推动作用,有助于减少开发时间,改进开发质量,降低开发成本。
传统的基于信息检索技术的代码搜索方法主要依赖于源代码和用户查询之间的文本相似度,容易造成词项失配,而导致匹配精度不高或者出现误匹配的情况。此外,用户在进行查询时输入的查询语句往往描述的是希望获得的代码片段所实现的功能,但是由于代码和自然语言属于不同种类的语言,所以传统的匹配方法也很难保证搜索的准确性和有效性。
针对这一问题,本发明考虑通过挖掘源代码的功能信息,使得描述代码片段的特征中尽可能多的携带与源代码的功能相关的信息,然后通过计算查询和代码片段之间的功能相似度作为对基于关键字匹配的原始相似度的补充,并根据不同特征的重要程度为每个特征分配不同的权重,从而更好地与用户输入的自然语言查询进行匹配,提高搜索的精度。
发明内容
本发明正是针对现有技术中存在的问题,提供一种基于功能相似度匹配的代码搜索方法,通过挖掘源代码的功能信息,使得描述代码片段的特征中尽可能多的携带与源代码的功能相关的信息,使得搜索的精度更高。
为了实现上述目的,本发明的基于功能相似度匹配的代码搜索方法,包括如下步骤:
步骤1)对代码库中的源码,以方法为粒度切分,进行简单特征提取,提取每个方法的方法名和方法体两个特征,分别表示方法名和方法体中出现的特征关键字;
步骤2)分析项目源代码,挖掘代码片段的功能信息,提取功能注释和功能API两个特征;
步骤3)输入自然语言查询进行搜索时,为不同的代码特征分配不同的权重,采用余弦相似度算法,分别计算查询语句和代码片段的原始相似度和功能相似度;
步骤4)为原始相似度和功能相似度分配权重并计算最后的总的相似度得分,根据得分高低对搜索结果进行排序返回给用户。
上述方法中,所述步骤2)中提取功能注释的具体流程为:
(a)解析源代码的抽象语法树,提取类注释和方法注释;
(b)对注释中与功能无关的内容进行过滤,过滤掉注释中与参数及返回值介绍相关的内容、与创建者或作者相关的内容、包含网址或者日期相关的内容、描述版权等信息的内容,将剩余的注释信息视为功能信息;
(c)最后得到的方法的功能注释包含了类注释和方法注释两个模块;
上述方法中,步骤2)中提取功能API的具体流程为:
(a)提取当前方法中的API调用列表;
(b)过滤掉其中典型的通用类库的API,如JDK、Log4j等;
(c)将API列表中剩下的API视为功能API,提取对应的类名和方法名;
上述方法中,步骤3)中的原始相似度指的是代码片段中关键字和查询语句中关键字之间的相似度,计算的具体步骤为:
计算查询和方法名的相似度:
计算查询和方法体的相似度:
计算原始相似度得分Score(original)=α·Sim(query,name)+(1-α)·Sim(query,body);
其中V(query)表示查询语句向量,V(name)表示方法名向量,V(body)表示方法体向量,α和(1-α)分别表示Sim(query,name)和Sim(query,body)的权重;
上述方法中,步骤3)中,由于自然语言查询往往描述希望得到的代码片段的功能,而代码片段的功能主要体现在代码的注释以及调用的API信息中,所以通过查询和注释、API之间的相似度来度量功能相似度,具体计算方法为:
计算查询和注释的相似度Sim(query,comment):
方法的功能注释包含两个模块:方法注释和类注释,需要分别计算。
Sim(query,comment)=βSim(query,clascom)+(1-β)Sim(query,methcom);
计算查询和APl信息的相似度:
计算功能相似度得分Score(function)=γ·Sim(query,comment)+(1-γ)·Sim(query,API);
其中V(query)表示查询语句向量,V(clascom)表示类注释向量,V(methcom)表示方法注释向量,V(API)表示API向量,β表示Sim(query,clascom)的权重,(1-β)表示Sim(query,methcom)的权重,γ表示Sim(query,comment)的权重,(1-γ)表示Sim(query,API)的权重;
上述方法中,步骤4)中计算总的相似度得分的具体流程为:
公式:Score=λ·Score(original)+(1-λ)·Score(function);
其中λ、(1-λ)分别表示Score(original)和Score(function)的权重。
本发明方法通过计算查询与代码片段的功能相似度得分对搜索结果进行排序,与现有技术相比,本发明具有以下优点:
(1)现有的技术在进行匹配的时候仅采用关键字匹配的方式,直接将查询语句和代码片段中的关键字进行匹配。本发明考虑了多个不同代码特征分别与查询语句进行匹配,并且根据不同特征的重要程度分配不同的权重来计算最终的相似度得分,计算查询与代码片段相似度的算法更加合理。
(2)考虑到代码和自然语言查询属于不同种类的语言,容易产生词项失配,不能简单地进行关键字匹配,本发明采用功能相似度匹配的方法,对原始的相似度进行补充,挖掘源代码中功能相关的信息,完善了相似度得分的算法,有效地缩小了不同语言之间的差异性。
(3)考虑到用户输入的自然语言查询往往描述的是希望得到的代码所实现的功能,本发明采用功能相似度匹配的方法,把用户的查询语句和代码的功能进行匹配,使得搜索的精度更高。
附图说明
图1是本发明方法的流程图。
图2是本发明的代码特征图,用于说明需要从源代码中获取的多个代码特征。
具体实施方式
下面结合实施例和说明书附图对本发明作进一步的说明。
参见图1和图2,本发明针对传统的基于关键字匹配的代码搜索方式,提出了基于功能相似度的匹配的代码搜索方法。从功能注释和功能API两个维度挖掘源代码的功能信息,并且根据重要程度为不同的代码特征分配不同的权重,从而与查询语句表达的功能进行功能相似度的匹配,作为原始相似度的补充。而且在此基础上,给出了查询和代码之间的功能相似度的计算方式。
一、体系结构:图1给出了基于功能相似度匹配的代码搜索方法的设计体系结构,下面给出两个主要部分的具体说明。
1.源代码的功能信息挖掘
本模块的功能为:挖掘代码库中的源代码包含的功能信息,以支持进一步的搜索的功能相似度匹配。
(1)以分析一个项目源代码为例,首先以方法为粒度进行切分,需要得到的是每个方法对应的功能注释和功能API两个特征;
(2)对于一个方法来说,功能注释包含类注释和方法注释两个模块。首先用抽象语法树解析源代码得到当前方法对应的原始注释和当前方法所在的类对应的原始注释。然后采用如下步骤对得到的原始注释进行过滤:
(a)过滤掉注释中与参数及返回值介绍相关的内容,这些注释以@param和@return开头;
(b)过滤掉函数前注释中与创建者、作者介绍相关的,这些注释包含“createdby”,“author”关键词;
(c)过滤掉函数中注释以TODO、FIXME等引导的注释,后面的代码片段与描述的功能无关或代码存缺陷;
(d)过滤掉包含网址或者日期的注释;
(e)过滤掉文件开始描述版权等信息的注释Copyright/LICENSE;
(f)最后得到的方法的功能性注释包含了类注释和方法注释两个模块;
(3)在软件代码中,除了软件自身定义的类,代码可能依赖于其他外部类库提供的API,例如JDK,JUnit,Log4j等。大多数外部类库API都是编程相关的,与软件的功能无关,因此应当过滤掉。获得功能性API的具体步骤为:
(a)获得当前方法中的API调用列表;
(b)过滤掉其中典型的通用类库的API;
(c)将API列表中剩下的API视为功能API,提取对应的类名和方法名;
2.相似度得分的计算
在上述方法中,挖掘了源代码的功能信息以及原始方法中的关键字信息,得到了4个不同的代码特征。采用现有的相似度计算模型对这4个特征以及查询语句分别进行预处理得到对应的向量。下面利用挖掘的功能信息进行查询和代码间的功能相似度计算,并计算最终的相似度得分。
(1)原始相似度的计算
计算查询和方法名的相似度:
计算查询和方法体的相似度:
计算原始相似度得分Score(original)=α·Sim(query,,name)+(1-α)·Sim(query,body);
其中V(query)表示查询语句向量,V(name)表示方法名向量,V(body)表示方法体向量,α和(1-α)分别表示Sim(query,name)和Sim(query,body)的权重;
(2)功能相似度的计算
计算查询和注释的相似度Sim(query,comment):
方法的功能注释包含两个模块:方法注释和类注释,需要分别计算。
Sim(query,comment)=βSim(query,clascom)+(1-β)Sim(query,,methcom);
计算查询和API信息的相似度:
计算功能相似度得分Score(function)=γ·Sim(query,comment)+(1-γ)·Sim(query,API);
其中V(query)表示查询语句向量,V(clascom)表示类注释向量,V(methcom)表示方法注释向量,V(API)表示API向量,β表示Sim(query,clascom)的权重,(1-β)表示Sim(query,methcom)的权重,γ表示Sim(query,comment)的权重,(1-γ)表示Sim(query,API)的权重;
(3)最终相似度得分的计算
公式:Score=λ·Score(original)+(1-λ)·Score(function);
其中λ、(1-λ)分别表示Score(original)和Score(function)的权重;
二、方法流程
步骤1)对代码库中的源码,以方法为粒度切分,进行简单特征提取,提取每个方法的方法名和方法体两个特征,分别表示方法名和方法体中出现的特征关键字;
步骤2)分析项目源代码,挖掘代码片段的功能信息,提取功能注释和功能API两个特征;
步骤3)输入自然语言查询进行搜索时,为不同的代码特征分配不同的权重,采用余弦相似度算法,分别计算查询语句和代码片段的原始相似度和功能相似度;
步骤4)为原始相似度和功能相似度分配权重并计算最后的总的相似度得分,根据得分高低对搜索结果进行排序返回给用户;
实施例:
为了方便描述,我们假定有如下简化的应用实例:有如下的ExcelWriter类下的write方法:
根据我们前面提到的计算步骤,依次实施:
第一步,进行简单特征提取,提取每个方法的方法名和方法体两个特征:
方法名:该方法为ExcelWriter类下的write方法,提取的方法名为“ExcelWriter.write”;
方法体:将方法中所包含的所有关键字信息作为方法体信息提取:“publicExcelWriter writeListextendsBaseRowModeldataSheetsheetexcelBuilderaddContentdatasheetreturnthis”;
第二步,分析项目源代码,挖掘代码片段的功能信息,提取功能注释和功能API两个特征:
功能注释:过滤掉注释中与功能无关的信息,提取得到的功能注释有以下两个部分:
类注释:“excel writer this tool is used to write data out to a excelvia POI.”
方法注释:“write data to a sheet.”
功能API:采用上述方法过滤掉与功能无关的API,对剩余的API进行补全和提取,如excelBuilder是ExcelBuilder类的一个对象,故提取的API信息为“ExcelBuilder,addContent”;
第三步,采用空间向量模型将查询语句和各个代码特征转化成空间向量,分别计算原始相似度和功能相似度:
首先,使用现有的较为成熟的技术将查询语句和上面得到的各个代码特征进行预处理,并将其表示成空间向量,得到:查询语句向量V(query)、方法名向量V(name)、方法体向量V(body)、类注释向量V(methodcom)、方法注释向量V(clascom)、功能API向量V(API);
为了方便说明,该过程在此简化为如下所示过程:
假设共有10个词(用w1,w2,......,w10表示),分别对上述的6个特征进行词频词频统计得到如下词频表:
接着,计算各个代码特征和查询语句之间的余弦相似度:
查询和方法签名的相似度:
查询和方法体的相似度:
查询和功能注释的相似度由两个部分组成:
查询和类注释的相似度:
查询和方法注释的相似度:
由此得到查询和功能注释的相似度:
Sim(query,comment)=βSim(query,clascom)+(1-β)Sim(query,methcom);
β表示类注释在注释方面占有的权重,(1-β)表示方法注释在注释方面占有的权重。由于方法注释在注释方面的重要性大于类注释,所以1-β的值应大于0.5,根据实际情况分析,在此固定β的值为0.2,Sim(query,comment)=0.822
查询和功能API的相似度:
第四步,为不同的代码特征分配权重,计算最后的总的相似度得分;
首先计算原始相似度得分,这部分由Sim(query,name)和Sim(query,body)组成;
公式:Score(original)=α·Sim(query,name)+(1-α)·Sim(query,body);
其中α和(1-α)分别表示Sim(query,name)和Sim(query,body)的权重;
由于方法体中含有很多与方法的功能无关的信息,会影响搜索的精度,所以通常情况下,方法体在计算相关度中的重要性远小于方法名,在此固定α的值为0.9,Score(original)=0.883;
然后计算功能相似度得分,这部分由Sim(query,comment)和Sim(query,API)组成;
公式:Score(function)=γ·Sim(query,comment)+(1-γ)·Sim(query,API);
其中γ和(1-γ)分别表示Sim(query,comment)和Sim(query,API)的权重;Score(function)=0.868
方法的功能注释和功能API都是描述代码功能的重要特征,但注释描述的信息是更接近于查询语句表达的自然语言,故在此设定γ的值分别为0.6。
最后计算总的相似度得分,这部分由以上得到的Score(original)和Score(function)计算而来;
公式:Score=λ·Score(original)+(1-λ)·Score(function);
其中λ、(1-λ)分别表示Score(original)和Score(function)的权重;
由于功能信息使对方法的补充说明与描述,在计算相似度得分的过程中的贡献度与代码片段中的原始关键字信息相仿,故在此设定λ的值为0.5,计算得到最终相似度得分Score=0.876;
上述实施例仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和等同替换,这些对本发明权利要求进行改进和等同替换后的技术方案,均落入本发明的保护范围。
Claims (1)
1.一种基于功能相似度匹配的代码搜索方法,其特征在于,该方法包括如下步骤:
步骤1)对代码库中的源码,以方法为粒度切分,进行简单特征提取,提取每个方法的方法名和方法体两个特征,分别表示方法名和方法体中出现的特征关键字;
步骤2)分析项目源代码,挖掘代码片段的功能信息,提取功能注释和功能API两个特征;
步骤3)输入自然语言查询进行搜索时,为不同的代码特征分配不同的权重,采用余弦相似度算法,分别计算查询语句和代码片段的原始相似度和功能相似度;
步骤4)为原始相似度和功能相似度分配权重并计算最后的总的相似度得分,根据得分高低对搜索结果进行排序返回给用户;
所述步骤2)中提取功能注释的具体流程为:
(a)解析源代码的抽象语法树,提取类注释和方法注释;
(b)对注释中与功能无关的内容进行过滤,过滤掉注释中与参数及返回值介绍相关的内容、与创建者或作者相关的内容、包含网址或者日期相关的内容、描述版权信息的内容,将剩余的注释信息视为功能信息;
(c)最后得到的方法的功能注释包含了类注释和方法注释两个模块;
所述步骤2)中提取功能API的具体流程为:
(a)提取当前方法中的API调用列表;
(b)过滤掉其中典型的通用类库的API,包括JDK、Log4j;
(c)将API列表中剩下的API视为功能API,提取对应的类名和方法名;
所述步骤3)中,首先采用最常用的相似度计算模型“向量空间模型”将代码和查询分别表示为向量,然后采用余弦相似度算法分别计算原始相似度和功能相似度:
(a)原始相似度的计算的具体步骤为:
计算查询和方法名的相似度:
计算查询和方法体的相似度:
计算原始相似度得分Score(original)=α·Sim(query,name)+(1-α)·Sim(query,body);
其中V(query)表示查询语句向量,V(name)表示方法名向量,V(body)表示方法体向量,α和(1-α)分别表示Sim(query,name)和Sim(query,body)的权重;
(b)功能相似度的计算的具体步骤为:
计算查询和注释的相似度Sim(query,comment):
方法的功能注释包含两个模块:方法注释和类注释,需要分别计算;
Sim(query,comment)=
βSim(query,clascom)+(1-β)Sim(query,methcom);
计算查询和API信息的相似度:
计算功能相似度得分Score(function)=γ·Sim(query,comment)+(1-γ)·Sim(query,API);
其中V(query)表示查询语句向量,V(clascom)表示类注释向量,V(methcom)表示方法注释向量,V(API)表示API向量,β表示Sim(query,clascom)的权重,(1-β)表示Sim(query,methcom)的权重,γ表示Sim(query,comment)的权重,(1-γ)表示Sim(query,API)的权重;
所述步骤4)中计算总的相似度得分方法为:
公式:Score=λ·Score(original)+(1-λ)·Score(function);
其中λ、(1-λ)分别表示Score(original)和Score(function)的权重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910828507.9A CN110716749B (zh) | 2019-09-03 | 2019-09-03 | 一种基于功能相似度匹配的代码搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910828507.9A CN110716749B (zh) | 2019-09-03 | 2019-09-03 | 一种基于功能相似度匹配的代码搜索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110716749A CN110716749A (zh) | 2020-01-21 |
CN110716749B true CN110716749B (zh) | 2023-08-04 |
Family
ID=69209710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910828507.9A Active CN110716749B (zh) | 2019-09-03 | 2019-09-03 | 一种基于功能相似度匹配的代码搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110716749B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913704A (zh) * | 2020-07-30 | 2020-11-10 | 山东浪潮通软信息科技有限公司 | 一种基于VSCode快速开发GSP7脚本的方法及插件工具 |
CN112115362B (zh) * | 2020-09-21 | 2022-01-11 | 中山大学 | 一种基于相似代码识别的编程信息推荐方法及装置 |
CN112328743A (zh) * | 2020-11-03 | 2021-02-05 | 北京嘀嘀无限科技发展有限公司 | 代码搜索方法、装置、可读存储介质和电子设备 |
CN112925563B (zh) * | 2021-02-24 | 2022-01-04 | 南通大学 | 一种面向代码重用的源代码推荐方法 |
CN112966095B (zh) * | 2021-04-06 | 2022-09-06 | 南通大学 | 一种基于jean的软件代码推荐方法 |
CN113761163B (zh) * | 2021-08-18 | 2024-02-02 | 浙江大学 | 基于代码结构语义信息的深度代码搜索方法、系统及装置 |
WO2024031983A1 (zh) * | 2022-08-10 | 2024-02-15 | 华为云计算技术有限公司 | 一种代码管理方法及相关设备 |
CN116974619B (zh) * | 2023-09-22 | 2024-01-12 | 国网电商科技有限公司 | 一种软件物料清单库的构建方法、装置、设备及可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202206A (zh) * | 2016-06-28 | 2016-12-07 | 哈尔滨工程大学 | 一种基于软件聚类的源码功能搜索方法 |
CN108491407A (zh) * | 2018-01-24 | 2018-09-04 | 大连理工大学 | 一种面向代码检索的查询扩展方法 |
CN108717423A (zh) * | 2018-04-24 | 2018-10-30 | 南京航空航天大学 | 一种基于深度语义挖掘的代码段推荐方法 |
CN108717470A (zh) * | 2018-06-14 | 2018-10-30 | 南京航空航天大学 | 一种具有高准确度的代码片段推荐方法 |
CN110188104A (zh) * | 2019-05-30 | 2019-08-30 | 中森云链(成都)科技有限责任公司 | 一种面向K12编程的Python程序代码快速搜索方法 |
-
2019
- 2019-09-03 CN CN201910828507.9A patent/CN110716749B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202206A (zh) * | 2016-06-28 | 2016-12-07 | 哈尔滨工程大学 | 一种基于软件聚类的源码功能搜索方法 |
CN108491407A (zh) * | 2018-01-24 | 2018-09-04 | 大连理工大学 | 一种面向代码检索的查询扩展方法 |
CN108717423A (zh) * | 2018-04-24 | 2018-10-30 | 南京航空航天大学 | 一种基于深度语义挖掘的代码段推荐方法 |
CN108717470A (zh) * | 2018-06-14 | 2018-10-30 | 南京航空航天大学 | 一种具有高准确度的代码片段推荐方法 |
CN110188104A (zh) * | 2019-05-30 | 2019-08-30 | 中森云链(成都)科技有限责任公司 | 一种面向K12编程的Python程序代码快速搜索方法 |
Non-Patent Citations (1)
Title |
---|
李阵等.基于多特征权重分配的源代码搜索优化.计算机应用.2018,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110716749A (zh) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110716749B (zh) | 一种基于功能相似度匹配的代码搜索方法 | |
CN109670022B (zh) | 一种基于语义相似度的Java应用程序接口使用模式推荐方法 | |
US11520800B2 (en) | Extensible data transformations | |
US8073877B2 (en) | Scalable semi-structured named entity detection | |
US11809442B2 (en) | Facilitating data transformations | |
US20210011926A1 (en) | Efficient transformation program generation | |
US11809223B2 (en) | Collecting and annotating transformation tools for use in generating transformation programs | |
US11163788B2 (en) | Generating and ranking transformation programs | |
US20090112845A1 (en) | System and method for language sensitive contextual searching | |
Rupp et al. | Customising geoparsing and georeferencing for historical texts | |
CN108491407B (zh) | 一种面向代码检索的查询扩展方法 | |
CN110413882B (zh) | 信息推送方法、装置及设备 | |
CN110705285B (zh) | 一种政务文本主题词库构建方法、装置、服务器及可读存储介质 | |
CN110781291A (zh) | 一种文本摘要提取方法、装置、服务器及可读存储介质 | |
Ung et al. | Combination of features for vietnamese news multi-document summarization | |
JP5499546B2 (ja) | 重要語抽出方法、装置、プログラム、記録媒体 | |
CN111814025A (zh) | 一种观点提取方法及装置 | |
CN106547753B (zh) | 一种信息分析方法及电子设备 | |
Pamungkas et al. | Performance Improvement of Business Process Similarity Calculation using Word Sense Disambiguation | |
JP7361525B2 (ja) | 用語辞書作成装置、用語辞書作成方法、及びプログラム | |
CN110263341B (zh) | 一种从文本中挖掘和定位个人能力的方法 | |
US20240184798A1 (en) | Extensible data transformations | |
Tong et al. | Towards a novel approach for defect localization based on part-of-speech and invocation | |
CN115328945A (zh) | 数据资产的检索方法、电子设备及计算机可读存储介质 | |
de Jesus et al. | Data Collection Pipeline for Low-Resource Languages: A Case Study on Constructing a Tetun Text Corpus |
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 |