1.一种基于代码描述文本的技术特征关键词抽取方法,其特征在于,包括:对代码描述文本预处理;
文本编码阶段;
构建语义关联图;
在语义关联图上采用随机游走算法得到候选关键词权重;
融合词汇权重和词汇知识得到每个候选关键词的分数;
依据分数进行倒排序,抽取前k个候选关键词作为代码技术特征关键词;
其中,所述代码描述文本预处理阶段生成输出信息,即生成候选关键词集合;
其中,所述文本编码是指,采用预训练BERT模块对候选关键词进行语义编码,分别生成候选关键词向量;
其中,将共现词汇和依存关系相结合构建语义关联图,在语义关联图上采用随机游走算法得到候选关键词权重;
所述文本编码阶段包括:采用预训练模型BERT计算所述语义关联图中边的权重wij,在公式(V)(VI)中,evi表示第i个候选关键词的预训练BERT词向量;cos是余弦相似度函数,wij是语义关联图中vi和vj之间边的权重;
依据文本编码阶段得到的候选关键词向量,依据候选关键词向量的余弦相似度值得到候选关键词相似度矩阵Sn×n,矩阵Sn×n是一个对称矩阵,并且对角线上的元素全部取0,设定所有候选关键词的初始权重B0为该候选关键词的tfidf值,通过迭代计算得到趋于正常和稳定的权重值:(VIII)
(IX)
在公式(VIII)(IX)(X)中,Sn×n表示候选关键词相似度矩阵;wij是语义关联图中vi和vj之间边的权重;B0中的元素为所有候选关键词的初始权重;Bi表示第i轮计算后所有候选关键词的权重;Bi‑1表示第i‑1次计算后所有候选关键词的权重;tfidf(vi,x)表示第i个候选关键词的tfidf值,只有当Bi与Bi‑1的差值非常小且接近于零时达到收敛,收敛后得到所有候选关键词的权重值:在公式(XI)中,∣x∣表示代码描述文本x中包含的候选关键词个数;∣vi∈x∣表示代码描述文本x中包含第i个候选关键词的个数;
在公式(XII)中,idf(vi)表示第i个候选关键词vi在整个代码描述文本集合X中的逆向文档频率;∣X∣表示代码描述文本集中包含的代码描述文本数量;∣vi∈X∣表示包含第i个候选关键词的代码描述文本数量;
在公式(XIII)中,tf(vi,x)表示第i个候选关键词vi在代码描述文本x中的词频;tfidf(vi,x)表示第i个候选关键词基于统计方法的分数。
2.根据权利要求1所述的一种基于代码描述文本的技术特征关键词抽取方法,其特征在于,所述代码描述文本预处理包括:对代码描述文本的句子进行分词和词性标注处理,从句子中去除无意义的符号和停用词,最终,将预处理后的词作为候选关键词。
3.根据权利要求1所述的一种基于代码描述文本的技术特征关键词抽取方法,其特征在于,所述构建语义关联图包括:基于候选关键词构建语义关联图G,语义关联图G中的节点vi表示候选关键词,将共现词汇和依存关系相结合构建语义关联图的边E,边的权重为候选关键词预训练BERT词向量的余弦相似度W:在公式(I)(II)(III)(IV)中,V表示候选关键词集合;vi第i个候选关键词;n表示候选关键词的数量;Preprocessing函数是对上述代码描述文本预处理步骤(1)‑(3)的具体实现,x表示代码描述文本;
E表示候选关键词存在的边集合;wij表示候选关键词vi和vj的权重,即语义关联图中vi和vj之间边的权重;W表示边权重集合;
G表示语义关联图。
4.根据权利要求1所述的一种基于代码描述文本的技术特征关键词抽取方法,其特征在于,所述在语义关联图上采用随机游走算法得到候选关键词权重计算公式如下:在公式(VII)中,WS(vi)为候选关键词vi的权重;d为阻尼系数;In(vi)表示vi指向的候选关键词集合;out(vj)表示vj指向的候选关键词集合;vk表示vj指向的候选关键词集合中任意一个元素;wjk是语义关联图中vj和vk之间边的权重;WS(vj)表示第i‑1次迭代后节点vj的权重。
5.根据权利要求1所述的一种基于代码描述文本的技术特征关键词抽取方法,其特征在于,依据分数进行倒排序,抽取前k个关键词作为代码技术特征关键词的具体步骤包括:融合基于随机游走算法得到的每个候选关键词的权重WS(vi)与候选关键词的tfidf值,得到候选关键词分数Score(vi);候选关键词分数的计算如公式(XIV)所示:在公式(XIV)中,Score(vi)表示每一个候选关键词的分数;
依据分数由大到小对候选关键词进行排序,抽取前k个作为代码技术特征关键词。
6.一种加载有如权利要求1‑5任意一项所述方法的系统,其特征在于,包括:算法用户上传代码功能、文本编码阶段处理模块、构建语义关联图阶段处理模块、融合词汇权重和词汇知识阶段处理模块、输出前k个技术特征关键词模块。
7.根据权利要求6所述系统,其特征在于,所述系统还包括基于关键词的代码检索模块:将抽取出的所述技术特征关键词作为代码的索引,使用技术特征关键词进行代码检索。
8.一种利用如权利要求1‑5任意一项所述方法的应用方法,其特征在于:从代码描述文本中抽取出的技术特征关键词既和代码描述文本相关,又相对于已有技术特征关键词具有特异性,将技术特征关键词作为代码索引,进而实现基于关键词的代码检索。