买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种面向代码检索的查询扩展方法_大连理工大学_201810067067.5 

申请/专利权人:大连理工大学

申请日:2018-01-24

公开(公告)日:2021-01-08

公开(公告)号:CN108491407B

主分类号:G06F16/33(20190101)

分类号:G06F16/33(20190101);G06F16/338(20190101);G06F40/279(20200101);G06F40/242(20200101)

优先权:

专利状态码:有效-授权

法律状态:2021.01.08#授权;2018.09.28#实质审查的生效;2018.09.04#公开

摘要:一种面向代码检索的查询扩展方法,包括:A、语料采集和预处理;B、初次检索获取候选扩展词;C、查询扩展词集提取;D、基于扩展查询的二次检索。本发明基于查询词与扩展词的共现信息和扩展词在代码文件内的分布信息实现有效的面向代码检索的查询扩展,有助于改善现有代码检索中查询与代码片段的匹配问题,提升代码检索中扩展查询的质量和代码检索的整体性能。当将本发明应用于真实代码检索场景时,代码检索的准确率可以达到35.34%,显著提升现有代码检索方法的性能,有助于实现代码检索中查询意图的精确理解。

主权项:1.一种面向代码检索的查询扩展方法,其特征在于,包括以下步骤:A、语料采集和预处理:a1、代码文件语料采集:采集现有代码库中的代码文件,将代码文件以函数定义为单位切分为代码片段,并将采集到的代码片段保存至代码片段语料库中;所述函数定义以具有返回值类型、函数名、参数名的一行为开始,并以该函数定义的大括号结尾为结束;a2、语料预处理:包括代码片段语料预处理和用户查询语料预处理;代码片段语料预处理包括:对代码片段语料库中的代码片段进行词语切分处理;词语切分处理的方法为:将代码片段中连接在一起的单词用空格加以切分,将切分得到的单词进行词干化和去停用词处理,并将处理后的单词以词序列的形式保存为代码片段语料集;用户查询语料处理包括:将用户查询语料进行分词处理得到查询词,对查询词进行词干化和去停用词处理,将处理后的查询词以词序列的形式保存为查询词语料集;B、初次检索获取候选扩展词:以代码片段语料库为检索向量空间建立向量空间模型,将查询词语料集输入向量空间模型中以在代码片段语料库中检索得到与查询词语料集相关的代码片段作为反馈代码片段,并将得到的反馈代码片段根据相似度由高至低保存为检索结果列表的形式;将检索结果列表中排序最为靠前的K个反馈代码片段作为反馈代码片段语料库;根据步骤a2的词语切分处理方法对每个反馈代码片段进行词语切分处理得到候选扩展词;C、查询扩展词集提取:计算每个候选扩展词的权重:包括以下步骤:C1、计算每个反馈代码片段在反馈代码片段语料库中的相对权重,计算方法如下: 其中,d表示反馈代码片段语料库D中任意一个反馈代码片段,ηd表示反馈代码片段d在反馈代码片段语料库中的相对权重;i表示同时出现在反馈代码片段d所在的代码文件filed和反馈代码片段语料库D中的反馈代码片段,ranki和rankd分别表示反馈代码片段i和反馈代码片段d在反馈代码片段语料库D中的排列位置;C2、计算候选扩展词与查询词在反馈代码片段所在的代码文件内的共现频率γq,t,d,其计算方式如下: 其中,j表示反馈代码片段d所在的代码文件filed中的任意一个代码片段,tfq,j和tft,j分别表示在代码片段j中查询词q和候选扩展词t出现的次数,lengthj表示代码片段j中全部词数,mintfq,j,tft,j表示tfq,j和tft,j中的较小值;C3、计算候选扩展词的权重,方法如下: 其中,t表示候选扩展词,Q表示查询词语料集,q是查询词语料集中的任意查询词,idft表示候选扩展词t的逆文档频率,即包含候选扩展词t的代码片段个数的倒数,idfq表示查询词q的逆文档频率,即包含查询词q的代码片段个数的倒数;tft,d和tfq,d表示在反馈代码片段d中候选扩展词t和查询词q出现的次数,N是反馈代码片段d中包含的单词的总数;C4、提取查询扩展词集:将候选扩展词按照其权重由高至低排序,选择排序中前M个候选扩展词加入到查询词语料集中作为查询扩展词集,所述查询扩展词集中的词作为查询扩展词;D、基于扩展查询的二次检索:以代码片段语料库为检索向量空间建立向量空间模型,将所述查询扩展词输入向量空间模型中以在代码片段语料库中检索得到与查询扩展词相关的代码片段作为的检索代码片段结果列表。

全文数据:一种面向代码检索的查询扩展方法技术领域[0001]本发明涉及代码检索和查询扩展,尤其是一种面向代码检索的查询扩展方法。背景技术[0002]近年来,随着开源软件项目和工具的广泛普及和应用,基于现有开源项目的改进或再开发逐渐成为软件研发的重要支撑,代码检索作为再开发中代码复用的必要环节变得越来越重要。代码检索旨在根据用户提供的关键词或查询,在指定的代码库中搜索实现某一功能的代码片段,为用户提供相关代码片段的排序列表,供用户从中选择最符合其功能需求的代码片段,用于软件开发或者自身学习,通过代码复用大大缩减软件研发的周期,提高软件开发效率。[0003]有效的代码检索能够很大程度上节约研发人员的研发时间,有效提高其工作效率。然而随着开源项目数量的与日倶增,代码片段数量呈指数级增长,为研发人员获取相关代码片段带来巨大难题,如何根据指定查询从海量的代码片段中检索出相关代码片段得到信息检索相关研究人员的广泛关注,而如何将现有最为有效的检索技术应用于代码检索成为一个新的挑战。[0004]代码检索任务与通用领域信息检索任务的区别主要体现在检索对象的不同,代码检索所涉及的对象是代码片段,而代码片段具有语法规则固定、专业程度高和逻辑性强等特点。因此,直接将现有检索技术直接应用于代码检索往往很难获得理想的效果,需要根据代码的特点和规范有针对性地改进现有技术,用以提升代码检索的性能。在代码检索中用户提交的查询通常只包含若干描述代码功能的关键词,这些查询很难清晰地表明用户的信息需求,并高效匹配与之相关的代码片段,因此查询扩展技术是改善代码检索性能最为有效的技术之一。发明内容[0005]本发明的目的是提供一种用于提升扩展查询的质量和代码检索的性能的面向代码检索的查询扩展方法。[0006]本发明解决现有技术问题所采用的技术方案:一种面向代码检索的查询扩展方法,包括以下步骤:[0007]A、语料采集和预处理:[0008]al、代码文件语料采集:采集现有代码库中的代码文件,将代码文件以函数定义为单位切分为代码片段,并将采集到的代码片段保存至代码片段语料库中;所述函数定义以具有返回值类型、函数名、参数名的一行为开始,并以该函数定义的大括号结尾为结束;[0009]a2、语料预处理:包括代码片段语料预处理和用户查询语料预处理;代码片段语料预处理包括:对代码片段语料库中的代码片段进行词语切分处理;词语切分处理的方法为:将代码片段中连接在一起的单词用空格加以切分,将切分得到的单词进行词干化和去停用词处理,并将处理后的单词以词序列的形式保存为代码片段语料集;用户查询语料处理包括:将用户查询语料进行分词处理得到查询词,对查询词进行词干化和去停用词处理,将处理后的查询词以词序列的形式保存为查询词语料集;[0010]B、初次检索获取候选扩展词:以代码片段语料库为检索向量空间建立向量空间模型,将查询词语料集输入向量空间模型中以在代码片段语料库中检索得到与查询词语料集相关的代码片段作为反馈代码片段,并将得到的反馈代码片段根据相似度由高至低保存为检索结果列表的形式;将检索结果列表中排序最为靠前的K个反馈代码片段作为反馈代码片段语料库;根据步骤a2的词语切分处理方法对每个反馈代码片段进行词语切分处理得到候选扩展词;[0011]C、查询扩展词集提取:计算每个候选扩展词的权重:包括以下步骤:[0012]C1、计算每个反馈代码片段在反馈代码片段语料库中的相对权重,计算方法如下:[0013][0014]其中,d表示反馈代码片段语料库D中任意一个反馈代码片段,rid表示反馈代码片段d在反馈代码片段语料库中的相对权重;i表示同时出现在反馈代码片段d所在的代码文件filed和反馈代码片段语料库D中的反馈代码片段,rank⑴和rank⑹分别表示反馈代码片段i和反馈代码片段d在反馈代码片段语料库D中的排列位置;[0015]C2、计算候选扩展词与查询词在反馈代码片段所在的代码文件内的共现频率γq,t,d,其计算方式如下:[0016][0017]其中,j表示反馈代码片段d所在的代码文件filed中的任意一个代码片段,tfq,j和tft,j分别表示在代码片段j中查询词q和候选扩展词t出现的次数,lengthj表示代码片段j中全部词数,mintfq,j,tft,j表示tfq,j和tft,j中的较小值;[0018]C3、计算候选扩展词的权重,方法如下:[0019][0020]其中,t表示候选扩展词,Q表示查询词语料集,q是查询词语料集中的任意查询词,idf⑴表示候选扩展词t的逆文档频率,即包含候选扩展词t的代码片段个数的倒数,tft,d和tfq,d表示在反馈代码片段d中候选扩展词t和查询词q出现的次数,N是反馈代码片段d中包含的单词的总数;[0021]C4、提取查询扩展词集:[0022]将候选扩展词按照其权重由高至低排序,选择排序中前M个候选扩展词加入到查询词语料集中作为查询扩展词集,所述查询扩展词集中的词作为查询扩展词;[0023]D、基于扩展查询的二次检索:以代码片段语料库为检索向量空间建立向量空间模型,将所述查询扩展词输入向量空间模型中以在代码片段语料库中检索得到与查询扩展词相关的代码片段作为的检索代码片段结果列表。[0024]步骤B中,K为20。[0025]所述用户查询语料为以自然语言描述的与代码相关的语句。[0026]所述向量空间模型中,将组成查询词语料集、查询扩展词集与代码片段语料库的各元素均以词典维度的向量形式表示为查询向量、扩展查询向量及代码片段向量,所述各元素为:经过词干化和去停用词处理的查询词、查询扩展词及代码片段;其中,查询向量、扩展查询向量及代码片段向量中各向量维度的权重值为对应词的TFIDF值,所述对应词为各元素中所包含的词语;其计算方式为:[0027][0028]其中,Num表示代码片段语料库中代码片段的总数,doc⑴表示包含对应词t的代码片段数量,d表示代码片段语料库中任意一个代码片段,tft,d表示在代码片段d中对应词t出现的次数,length⑹表示代码片段d中总词数;[0029]通过TFIDF⑴将所有代码片段语料库中的代码片段表示为词典维度的向量,计算查询向量、扩展查询向量与各个代码片段向量的余弦相似度,以得到用户查询语料与各个代码片段的相似度得分,并根据相似度得分由高至低对代码片段进行排序。[0030]本发明的有益效果在于:本发明基于查询词与扩展词的共现信息和扩展词在代码文件内的分布信息实现有效的面向代码检索的查询扩展,有助于改善现有代码检索中查询与代码片段的匹配问题,提升代码检索中扩展查询的质量和代码检索的整体性能。当将本发明应用于真实代码检索场景时,代码检索的准确率可以达到35.34%,显著提升现有代码检索方法的性能,有助于实现代码检索中查询意图的精确理解。附图说明[0031]图1是本发明的流程图。具体实施方式[0032]以下结合附图及具体实施方式对本发明进行说明:[0033]如图1所示,一种面向代码检索的查询扩展方法,包括以下步骤:[0034]A、语料采集和预处理:[0035]al、代码文件语料采集:采集现有的在线开源代码库Github中的Java语言编写的代码文件,将代码文件以函数定义为单位切分为代码片段,并将采集到的代码片段保存至代码片段语料库中;其中,函数定义以具有返回值类型、函数名、参数名的一行为开始,并以该函数定义的大括号结尾为结束;这里的函数具体指如代码程序中的Function或者Method。由于在实际的代码程序中一个函数对应着一个子功能的实现,因此,以此为单位有利于相关代码片段的重复使用,是代码重构环节的基本单位。[0036]a2、语料预处理:包括代码片段语料预处理和用户查询语料预处理;代码片段语料预处理包括:对代码片段语料库中的代码片段进行词语切分处理;词语切分处理的方法为:将代码片段中连接在一起的单词用空格加以切分例如将RehearsalAudioRecorder切分为RehearsalAudioRecorder,将切分得到的单词进行词干化和去停用词处理,并将处理后的单词以词序列的形式保存为代码片段语料集,以便于后续检索和匹配;用户查询语料处理包括:将用户查询语料进行分词处理,得到查询词,对查询词进行词干化和去停用词处理,将处理后的查询词以词序列的形式保存为查询词语料集,便于后续检索和匹配;[0037]其中,本发明中的用户查询语料具体为采用自然语言描述的与代码相关的问题语句。为模拟真实检索场景,本发明采集在线社区问答网站StackOverFlow上的问题语句作为用户查询语料,用户查询语料均采用自然语言描述。本发明的检索的目标是检索出最符合查询描述的代码片段。在语料预处理过程中,将用户查询语料进行分词处理,得到查询词,并对查询词进行词干化处理和去停用词。[0038]B、初次检索获取候选扩展词:以代码片段语料库为检索向量空间建立经典的向量空间模型,将查询词语料集输入向量空间模型中以在代码片段语料库中检索得到与查询词语料集相关的代码片段作为反馈代码片段,并将得到的反馈代码片段根据相似度由高至低保存为检索结果列表的形式;然后将检索结果列表中排序最为靠前的20个反馈代码片段作为反馈代码片段语料库;根据步骤a2的词语切分处理方法对每个反馈代码片段进行词语切分处理得到候选扩展词;其中,向量空间模型VSM是信息检索中的经典方法,可以用以计算查询与各个代码片段的文本相似度,并可根据相似度由高至低给出代码片段的排序序列。[0039]由于查询词语料集中通常仅包含少量关键词,检索结果很难覆盖全部相关代码片段,因此本发明的核心在于找出与用户查询语料最相关的一些词,补充和完善查询以提高检索准确率,即查询扩展词集提取。[0040]C、查询扩展词集提取:计算每个候选扩展词的权重时需要考虑两方面因素:一是候选扩展词与查询词共同出现的频率,二是候选扩展词在代码片段中的重要程度。将所获的候选扩展词权重作为选择最终扩展词的依据,将候选扩展词按照权重由高至低排序,选择排序列表中前M个词作为扩展词,加入到查询词语料集中,构成查询扩展词集。[0041]包括以下步骤:[0042]Cl、计算每个反馈代码片段在反馈代码片段语料库中的相对权重,计算方法如下:[0043][0044]其中,d表示反馈代码片段语料库D中任意一个反馈代码片段,rid表示反馈代码片段d在反馈代码片段语料库中的相对权重;i表示同时出现在反馈代码片段d所在的代码文件filed和反馈代码片段语料库D中的反馈代码片段,rank⑴和rank⑹分别表示反馈代码片段i和反馈代码片段d在反馈代码片段语料库D中的排列位置;[0045]C2、计算候选扩展词与查询词在反馈代码片段所在的代码文件内的共现频率γq,t,d,其计算方式如下:[0046][0047]其中,j表示反馈代码片段d所在的代码文件filed中的任意一个代码片段,tfq,j和tft,j分别表示在代码片段j中查询词q和候选扩展词t出现的次数,lengthj表示代码片段j中全部词数,mintfq,j,tft,j表示tfq,j和tft,j中的较小值;[0048]C3、计算候选扩展词的权重,方法如下:[0049][0050]其中,t表示候选扩展词,Q表示查询词语料集,q是查询词语料集中的任意查询词,idf⑴表示候选扩展词t的逆文档频率,即包含候选扩展词t的代码片段个数的倒数,tft,d和tfq,d表示在反馈代码片段d中候选扩展词t和查询词词q出现的次数,N是反馈代码片段d中包含的单词的总数;[0051]C4、提取查询扩展词集:[0052]将候选扩展词按照权重由高至低排序,选择排序中前M个候选扩展词加入到查询词语料集中作为查询扩展词集。[0053]得到的查询扩展词集用来对用户查询语料进行补充和完善。[0054]其中,步骤C的整体设计思路如下:[0055]首先,计算候选扩展词与查询词的共现分值,其计算方式为:[0056][0057]其中,t表示任意候选扩展词,Q表示查询词语料集,q是查询词语料集中的任意查询词,idf⑴表示候选扩展词t的逆文档频率,即包含候选扩展词t的代码片段个数的倒数,tft,d和tfq,d表示在反馈代码片段d中候选扩展词t和查询词词q出现的次数,N是反馈代码片段d中包含的单词的总数。该公式用于计算候选扩展词与查询词的共现分值。在此基础上,为进一步考虑代码片段信息,根据出现在不同代码文件中的片段在反馈代码片段集合中的分布情况,对反馈代码片段进行加权。在加权过程中考虑两方面因素,一方面是同一个代码文件中包含的反馈代码片段的个数;另一方面是包含在指定文件中代码片段在整个反馈代码片段集合中的排列位置。反馈代码片段在整个反馈文档集合中的相对权重计算方式如下:[0058][0059]其中,d表示反馈代码片段语料库D中任意一个反馈代码片段,rid表示反馈代码片段d在反馈代码片段语料库中的相对权重;i表示同时出现在反馈代码片段d所在的代码文件filed和反馈代码片段语料库D中的反馈代码片段,rank⑴和rank⑹分别表示反馈代码片段i和反馈代码片段d在反馈代码片段语料库D中的排列位置。在此基础上,本发明进一步考虑代码片段所在文件内扩展词与查询词的共现信息,其计算方式如下:[0060][0061]其中,j表示反馈代码片段d所在的代码文件filed中的任意一个代码片段,tfq,j和tft,j分别表示在代码片段j中查询词q和候选扩展词t出现的次数,lengthj表示代码片段j中全部词数,mintfq,j,tft,j表示tfq,j和tft,j中的较小值。最后,将上述反馈代码片段权重和基于代码文件的词共现信息融入扩展词共现公式,作为最终的候选扩展词权重计算方法,如下所示:[0062][0063]D、基于扩展查询的二次检索:以代码片段语料库为检索向量空间建立向量空间模型,将查询扩展词集输入向量空间模型中以在代码片段语料库中检索得到与查询扩展词集相关的代码片段作为的检索代码片段结果列表。[0064]针对查询词语料集“recordaudiosound”,经过本发明可得到如下查询扩展词集“recordaudiosoundbuffermediarecordingsizegetcontextrecorder”,该查询扩展词集在很大程度上丰富用户查询语料的语义内涵,实现更为精准的查询理解,改善代码检索性能。[0065]需要说明的是:本发明在B、初次检索获取候选扩展词和D、基于扩展查询的二次检索中均用到了常规的向量空间模型,即将组成查询词语料集、查询扩展词集与代码片段语料库的各元素(即:经过词干化和去停用词处理的查询词、查询扩展词及代码片段均以词典维度的向量形式表示为查询向量、扩展查询向量及代码片段向量,其中,查询向量、扩展查询向量及代码片段向量中各维度的权重值为对应词项的TFIDF值,上述向量维度均为词典维度,因此,对应词就是词典中全部的词(即对应词为各元素中所包含的词语),根据下面的计算公式,经过词干化和去停用词处理的查询词、查询扩展词及代码片段中出现的词可以得到对应的TFIDF值,而查询、扩展查询及代码片段中没有出现的词由于计算结果是tf等于0,TFIDF值也就等于0,所以下面的公式可以计算全部词的TFIDF值其计算方式为:[0066][0067]其中,Num表示代码片段语料库中代码片段的总数,doc⑴表示包含查询词t的代码片段数量,d表示代码片段语料库中任意一个代码片段,tft,d表示在代码片段d中查询词t出现的次数,length⑹表示代码片段d中总词数。通过该公式可以将所有代码片段语料库中的代码片段表示为词典维度的向量,进而通过计算查询向量和各个代码片段向量的余弦相似度,可以得到用户查询语料与各个代码片段的相似度得分,根据得分由高至低对代码片段排序。[0068]以上内容是结合具体的优选技术方案对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

权利要求:1.一种面向代码检索的查询扩展方法,其特征在于,包括以下步骤:A、语料采集和预处理:al、代码文件语料采集:采集现有代码库中的代码文件,将代码文件以函数定义为单位切分为代码片段,并将采集到的代码片段保存至代码片段语料库中;所述函数定义以具有返回值类型、函数名、参数名的一行为开始,并以该函数定义的大括号结尾为结束;a2、语料预处理:包括代码片段语料预处理和用户查询语料预处理;代码片段语料预处理包括:对代码片段语料库中的代码片段进行词语切分处理;词语切分处理的方法为:将代码片段中连接在一起的单词用空格加以切分,将切分得到的单词进行词干化和去停用词处理,并将处理后的单词以词序列的形式保存为代码片段语料集;用户查询语料处理包括:将用户查询语料进行分词处理得到查询词,对查询词进行词干化和去停用词处理,将处理后的查询词以词序列的形式保存为查询词语料集;B、初次检索获取候选扩展词:以代码片段语料库为检索向量空间建立向量空间模型,将查询词语料集输入向量空间模型中以在代码片段语料库中检索得到与查询词语料集相关的代码片段作为反馈代码片段,并将得到的反馈代码片段根据相似度由高至低保存为检索结果列表的形式;将检索结果列表中排序最为靠前的K个反馈代码片段作为反馈代码片段语料库;根据步骤a2的词语切分处理方法对每个反馈代码片段进行词语切分处理得到候选扩展词;C、查询扩展词集提取:计算每个候选扩展词的权重:包括以下步骤:Cl、计算每个反馈代码片段在反馈代码片段语料库中的相对权重,计算方法如下:其中,d表示反馈代码片段语料库D中任意一个反馈代码片段,rid表示反馈代码片段d在反馈代码片段语料库中的相对权重;i表示同时出现在反馈代码片段d所在的代码文件file⑹和反馈代码片段语料库D中的反馈代码片段,rank⑴和rank⑹分别表示反馈代码片段i和反馈代码片段d在反馈代码片段语料库D中的排列位置;C2、计算候选扩展词与查询词在反馈代码片段所在的代码文件内的共现频率γq,t,d,其计算方式如下:其中,j表示反馈代码片段d所在的代码文件file⑹中的任意一个代码片段,tfq,j和tft,j分别表示在代码片段j中查询词q和候选扩展词t出现的次数,lengthj表示代码片段j中全部词数,mintfq,j,tft,j表示tfq,j和tft,j中的较小值;C3、计算候选扩展词的权重,方法如下:其中,t表示候选扩展词,Q表示查询词语料集,q是查询词语料集中的任意查询词,idf⑴表示候选扩展词t的逆文档频率,即包含候选扩展词t的代码片段个数的倒数,tft,d和tfq,d表示在反馈代码片段d中候选扩展词t和查询词q出现的次数,N是反馈代码片段d中包含的单词的总数;C4、提取查询扩展词集:将候选扩展词按照其权重由高至低排序,选择排序中前M个候选扩展词加入到查询词语料集中作为查询扩展词集,所述查询扩展词集中的词作为查询扩展词;D、基于扩展查询的二次检索:以代码片段语料库为检索向量空间建立向量空间模型,将所述查询扩展词输入向量空间模型中以在代码片段语料库中检索得到与查询扩展词相关的代码片段作为的检索代码片段结果列表。2.根据权利要求1所述的一种面向代码检索的查询扩展方法,其特征在于,步骤B中,K为20。3.根据权利要求1所述的一种面向代码检索的查询扩展方法,其特征在于,所述用户查询语料为以自然语言描述的与代码相关的语句。4.根据权利要求1所述的一种面向代码检索的查询扩展方法,其特征在于,所述向量空间模型中,将组成查询词语料集、查询扩展词集与代码片段语料库的各元素均以词典维度的向量形式表示为查询向量、扩展查询向量及代码片段向量,所述各元素为:经过词干化和去停用词处理的查询词、查询扩展词及代码片段;其中,查询向量、扩展查询向量及代码片段向量中各向量维度的权重值为对应词的TFIDF值,所述对应词为各元素中所包含的词语;其计算方式为:其中,Num表示代码片段语料库中代码片段的总数,doct表示包含对应词t的代码片段数量,d表示代码片段语料库中任意一个代码片段,tft,d表示在代码片段d中对应词t出现的次数,length⑹表示代码片段d中总词数;通过TFIDFt将所有代码片段语料库中的代码片段表示为词典维度的向量,计算查询向量、扩展查询向量与各个代码片段向量的余弦相似度,以得到用户查询语料与各个代码片段的相似度得分,并根据相似度得分由高至低对代码片段进行排序。

百度查询: 大连理工大学 一种面向代码检索的查询扩展方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。