CN114912449B - 基于代码描述文本的技术特征关键词抽取方法与系统 - Google Patents

基于代码描述文本的技术特征关键词抽取方法与系统 Download PDF

Info

Publication number
CN114912449B
CN114912449B CN202210838242.2A CN202210838242A CN114912449B CN 114912449 B CN114912449 B CN 114912449B CN 202210838242 A CN202210838242 A CN 202210838242A CN 114912449 B CN114912449 B CN 114912449B
Authority
CN
China
Prior art keywords
keywords
candidate
code
keyword
description 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.)
Active
Application number
CN202210838242.2A
Other languages
English (en)
Other versions
CN114912449A (zh
Inventor
龚斌
宁祥东
孙宇清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University
Original Assignee
Shandong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong University filed Critical Shandong University
Priority to CN202210838242.2A priority Critical patent/CN114912449B/zh
Publication of CN114912449A publication Critical patent/CN114912449A/zh
Application granted granted Critical
Publication of CN114912449B publication Critical patent/CN114912449B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

一种基于代码描述文本的技术特征关键词抽取方法与系统,属于自然语言处理的技术领域。本发明综合考虑语义、句法和词汇特异性等代码技术特征相关信息,采用词汇知识和句子句法知识的融合分析方法,将共现词汇和依存关系相结合构建语义关联图;采用预训练模型BERT作为文本编码器,提取文本抽象语义信息;采用随机游走算法计算词汇权重,以捕获词汇之间的长距离语义依赖关系,兼顾关键词的重要性和特异性。

Description

基于代码描述文本的技术特征关键词抽取方法与系统
技术领域
本发明公开一种基于代码描述文本的技术特征关键词抽取方法与系统,属于自然语言处理的技术领域。
背景技术
开源平台为科研人员提供了分享和交流代码的环境,越来越多的深度学习模型和代码在开源平台分享,营造了可复用代码的生态环境,其中,描述代码实现功能和使用技术的关键词、函数调用结构、函数名和损失函数等均提供了重要的代码技术特征。现有GitHub和Gitee平台均提供了依据关键词检索代码的功能,其中,关键词的相关性有助于提高代码检索的准确率,关键词的特异性有助于帮助用户探索新出现的代码,因此,基于关键词的代码检索不仅要考虑查询关键词和代码描述文本的相关性,还要考虑技术特征关键词的特异性。相关性指抽取出的技术特征关键词能够代表代码使用的技术和实现的功能,特异性指抽取出的技术特征关键词相对于已有技术特征关键词的显著程度,例如技术特征关键词“元宇宙”第一次被提及时,那么这个关键词相对于现存关键词更显著。
目前主流的文本关键词抽取方法可以分为三类:基于统计特征的关键词抽取方法、基于图排序的关键词抽取方法和基于主题模型的关键词抽取方法。
基于统计特征的关键词抽取方法主要依据词频、词长和词性等统计指标对候选关键词排序,例如Campos等人发表的:Ricardo Campos, Vítor Mangaravite, ArianPasquali et al. YAKE! Keywordextraction from single documents using multiplelocal features[J]. Information Sciences, 2020, 509: 257-289.使用单词词性、在描述文本中出现的位置等指标为候选关键词设置不同的权重。这一类方法运行速度快,选择的特征易于理解。但是这类方法不能提取深层次的文本抽象语义信息,抽象语义信息是对文本内容的高度概括,有助于提高关键词抽取模型的性能。同时,特征选择过多会导致过拟合,特征选择较少会导致模型没有效果。
基于图排序的关键词抽取方法将候选关键词视为节点,按照规则建立节点之间边,采用随机游走算法在词图上计算候选关键词的权重,例如中国专利文献CN114065758A公开一种基于超图随机游走的文档关键词抽取方法,通过超图的拓扑结构对文档进行结构化建模,根据TF-IDF值和位置信息值为节点和超边加权,通过随机游走的迭计算每个节点重要性得分,该方法主要关注关键词与文本的相关性,但是没有考虑相对于已有关键词的特异性。
基于主题模型的关键词抽取方法将候选关键词分配给文本包含的主题,选择每个主题下权重最大的词作为关键词,例如中国专利文献CN111859961A公开了一种基于改进TopicRank算法的文本关键词抽取方法,对候选关键词进行聚类生成主题,利用图模型获取每个主题的分值,该方法有效改进TopicRank算法抽取关键词的效果,提高抽取关键词的准确率,但是无法提取文本抽象语义信息,抽象语义信息是对文本内容的高度概括,有助于提高关键词抽取模型的性能。
除此之外,在本技术领域中曾出现过针对基于代码结构的代码检索:例如,中国专利文献CN113761163A公开了一种基于代码结构语义信息的深度代码搜索方法、系统及装置,包括从目标软件项目中提取代码文件中的方法级代码和相关注释,形成数据集;训练分词模型生成代码搜索数据集;预处理代码搜索数据集,将方法级代码解析为抽象语法树,遍历抽象语法树并提取API序列;构建深度代码搜索模型,包括代码结构信息编码模块、代码语义信息编码模块、信息融合模块、自然语言编码模块;使用预处理后的数据集,优化深度代码搜索模型;利用深度代码搜索模型,从代码搜索数据集中获得与自然语言查询对应的方法级代码。本发明的方法能够有效提升代码搜索模型对于代码结构语义信息以及自然语言描述文本的理解能力,提高代码搜索系统的搜索效果与性能。该文献综合考虑了代码结构和文本语义,但是该文献所述方法构建抽象语法树的代价很大。
中国专利文献CN111159223A提供了一种基于结构化嵌入的交互式代码搜索方法,首先从收集的原始数据中抽取出软件存储库以及代码-描述匹配对的模型语料,然后对代码存储库及模型语料的分词,接着采用预设工具构建预训练的结构化嵌入;接下来抽取高质量模型语料并划分;然后构建依次包含特征抽取模块、交互注意力抽取模块和相似度匹配模块的交互式代码搜索模型NICS,并设置训练网络的合页损失函数;再将预训练结构化词嵌入加载至交互式代码搜索NICS模型,并对NICS模型进行训练,最后利用训练好的NICS模型对待处理的查询进行预测,获得与查询对应的代码搜索结果。本发明可以有效地检索代码片段,并在所有基准测试中取得最先进的性能。基于结构语义的代码检索通常是基于有监督方法,需要依赖于大规模人工标记的训练数据,但是如本文献所述大规模的训练数据是不容易得到的。
中国专利文献CN113449076A提供一种基于全局信息和局部信息的代码搜索嵌入方法及装置。本发明中设计了一个共享的线性层和卷积层接在ON-LSTM后面,利用共享的网络参数,能够将“双塔”ON-LSTM模型输出后的顺序信息融合增强,加强对全局信息的利用;巧妙地应用ON-LSTM的结构特性,选择其中的结构信息并使用CNN增强,通过曼哈顿距离的计算,加强对局部信息的利用;通过将各个模块输出的交互向量、结构向量、全局信息向量拼接成特征向量,再计算相似度,平衡全局信息和局部信息。该文献所述方法将代码视为文本进行处理,应用ON-LSTM加强了对全局和局部信息的利用。由于代码描述文本中基本包含了代码所实现功能和使用技术的重要信息,但该方法没有考虑代码描述文本与查询条件的关系。
中国专利文献CN111191002A公开了一种基于分层嵌入的神经代码搜索方法,包括收集代码搜索数据集;对收集的代码搜索数据集进行预处理;对预处理后的语料数据进行结构化分词以及比例划分;构建依次包含内部信息编码模块、交互信息编码模块、相似度匹配模块的分层嵌入神经代码搜索模型HECS,并设置训练网络的合页损失函数;对HECS设置初始化参数,并利用训练集来训练拟合HECS模型的参数,直到在验证集上迭代预设次直到合页损失函数收敛,得到训练好的HECS模型;利用训练好的HECS模型对待处理的查询进行预测,获得与查询对应的代码搜索结果。本发明的方法可以更好地捕获查询与矢量空间中相应代码段之间的相似性,提高模型的搜索和预测性能。基于结构语义的代码检索通常是基于有监督方法,需要依赖于大规模人工标记的训练数据,但是这种大规模的训练数据是不容易得到的。
综上,针对上述现有技术中存在的技术问题,本技术领域需要一种方法,即从代码描述文本中抽取出的技术特征关键词既和代码描述文本相关,又相对于已有技术特征关键词具有特异性,将技术特征关键词作为代码索引,进而实现基于关键词的代码检索,提高代码的可复用性。
发明内容
针对现有技术存在的不足,本发明公开一种基于代码描述文本的技术特征关键词抽取方法。
本发明还公开一种加载有上述方法的系统。
本发明还公开实现上述方法的程序产品。
本发明还公开一种加载有上述方法的计算机可读存储介质。
本发明公开一种利用上述方法的应用方法。
发明概述
本发明所述一种基于代码描述文本的技术特征关键词抽取方法,旨在:综合考虑语义、句法和词汇特异性等代码技术特征相关信息,采用词汇知识和句子句法知识的融合分析方法,将共现词汇和依存关系相结合构建语义关联图;采用预训练模型BERT作为文本编码器,提取文本抽象语义信息;采用随机游走算法计算词汇权重,以捕获词汇之间的长距离语义依赖关系,兼顾关键词的重要性和特异性。
技术术语解释:
1、技术特征:包括描述代码实现功能和使用技术的关键词;函数调用结构;函数名;内置类名称;损失函数等信息。
2、相关性:抽取出的技术特征关键词与代码描述文本的相关性,即技术特征关键词能够代表代码使用的技术和实现的功能。
3、重要性:抽取出的技术特征关键词集合中技术特征关键词按照权重大小排序,重要性是指抽取出的技术特征关键词在集合中排列顺序的重要程度。
4、特异性:抽取出的技术特征关键词相对于已有技术特征关键词的显著程度。
本发明详细的技术方案如下:
一种基于代码描述文本的技术特征关键词抽取方法,其特征在于,包括:
对代码描述文本预处理;
文本编码阶段;
构建语义关联图;
在语义关联图上采用随机游走算法得到候选关键词权重;
融合词汇权重和词汇知识得到每个候选关键词的分数;
依据分数进行倒排序,抽取前k个候选关键词作为代码技术特征关键词。
其中,所述代码描述文本预处理阶段生成输出信息,即生成候选关键词集合;
其中,所述文本编码是指,采用预训练BERT模块对候选关键词进行语义编码,分别生成候选关键词向量;
其中,将共现词汇和依存关系相结合构建语义关联图,在语义关联图上采用随机游走算法得到候选关键词权重。
根据本发明优选的,所述代码描述文本预处理包括:
对代码描述文本的句子进行分词和词性标注处理,从句子中去除无意义的符号和停用词,最终,将预处理后的词作为候选关键词。
根据本发明优选的,所述对代码描述文本预处理的步骤如下:
(1)删除无意义的符号;其中,所述无意义的符号是指标点符号,将代码描述文本的句子分词时会出现标点符号,因此,这些无意义的标点符号都将被删除;
(2)删除停用词;其中,所述停用词是指常规网站提供的停用词列表,然后将这些停用词从候选关键词中删除,例如,使用百度提供的停用词列表;
(3)保留相关词性的词,根据词性仅将词长度大于等于2的名词、形容词和动词作为候选关键词。
根据本发明优选的,所述构建语义关联图包括:
将代码描述文本x经过预处理后得到候选关键词集合V,基于候选关键词构建语义关联图G,语义关联图G中的节点v i 表示候选关键词,将共现词汇和依存关系相结合构建语义关联图的边E,边的权重为候选关键词预训练BERT词向量的余弦相似度W,语义关联图G是一个无向加权图:
Figure 374934DEST_PATH_IMAGE001
Figure 854457DEST_PATH_IMAGE002
Figure 556834DEST_PATH_IMAGE003
Figure 498638DEST_PATH_IMAGE004
在公式(I)(II)(III)(IV)中,V表示候选关键词集合;v i i个候选关键词;n表示候选关键词的数量;Preprocessing函数是对上述代码描述文本预处理步骤(1)-(3)的具体实现,x表示代码描述文本;
E表示候选关键词存在的边集合;w ij 表示候选关键词v i v j 的权重,即语义关联图中v i v j 之间边的权重;W表示边权重集合;
G表示语义关联图。
根据本发明优选的,所述文本编码阶段包括:本发明采用预训练模型BERT计算所述语义关联图中边的权重w ij
Figure 944663DEST_PATH_IMAGE005
Figure 544272DEST_PATH_IMAGE006
在公式(V)(VI)中,e vi 表示第i个候选关键词的预训练BERT词向量;cos是余弦相似度函数,w ij 是语义关联图中v i v j 之间边的权重。
根据本发明优选的,所述在语义关联图上采用随机游走算法得到候选关键词权重计算公式如下:
Figure 276605DEST_PATH_IMAGE007
在公式(VII)中,WS(v i )为候选关键词v i 的权重;d为阻尼系数,阻尼系数过大会导致迭代次数增加,阻尼系数过小会导致算法没有明显效果,一般取值为0.85;In(v i )表示v i 指向的候选关键词集合;out(v j 表示v j 指向的候选关键词集合;v k 表示v j 指向的候选关键词集合中任意一个元素;w jk 是语义关联图中v j v k 之间边的权重;WS(v j )表示第i-1次迭代后节点v j 的权重。
为了更好的解释在语义关联图上采用随机游走算法计算候选关键词权重的过程,对此对计算过程进行详细说明:所述在语义关联图上计算候选关键词权重的过程是一个马尔科夫过程,这里是在语义关联图上采用随机游走算法计算候选关键词权重的过程的详细说明,即详细公式(VII)的计算过程。
根据本发明优选的,依据文本编码阶段得到的候选关键词向量,依据候选关键词向量的余弦相似度值得到候选关键词相似度矩阵S n×n ,矩阵S n×n 是一个对称矩阵,并且对角线上的元素全部取0,设定所有候选关键词的初始权重B 0 为该候选关键词的tfidf值,通过迭代计算得到趋于正常和稳定的权重值:
Figure 594453DEST_PATH_IMAGE008
(VIII)
Figure 578590DEST_PATH_IMAGE009
(IX)
Figure 908071DEST_PATH_IMAGE010
在公式(VIII)(IX)(X)中,S n×n 表示候选关键词相似度矩阵;w ij 是语义关联图中v i v j 之间边的权重;B 0 中的元素为所有候选关键词的初始权重;B i 表示第i轮计算后所有候选关键词的权重;B i-1 表示第i-1次计算后所有候选关键词的权重;tfidf(v i ,x)表示第i个候选关键词的tfidf值,只有当B i B i-1 的差值非常小且接近于零时达到收敛,收敛后得到所有候选关键词的权重值:
Figure 952251DEST_PATH_IMAGE011
在公式(XI)中,∣x∣表示代码描述文本x中包含的候选关键词个数;∣v i ∈x∣表示代码描述文本x中包含第i个候选关键词的个数;
Figure 616450DEST_PATH_IMAGE012
在公式(XII)中,idf(v i )表示第i个候选关键词v i 在整个代码描述文本集合X中的逆向文档频率;∣X∣表示代码描述文本集中包含的代码描述文本数量;∣v i ∈X∣表示包含第i个候选关键词的代码描述文本数量;
Figure 404278DEST_PATH_IMAGE013
在公式(XIII)中,tf(v i ,x)表示第i个候选关键词v i 在代码描述文本x中的词频;
tfidf(v i ,x)表示第i个候选关键词基于统计方法的分数,以兼顾关键词的特异性,以衡量候选关键词相对于代码描述文本和代码描述文本集的重要程度;其中tf表示词频,idf表示逆向文档频率。
根据本发明优选的,依据分数进行倒排序,抽取前k个关键词作为代码技术特征关键词的具体步骤包括:
融合基于随机游走算法得到的每个候选关键词的权重WS(v i )与候选关键词的tfidf值,得到候选关键词分数Score(v i );为了更准确的抽取代码描述文本中的专业词汇,本发明依据GitHub平台提供的代码主题,创建了一个专业词汇列表,如果候选关键词是专业词汇,那么该候选关键词的权重相对于其他候选关键词被设置为一个最大值,候选关键词分数的计算如公式(XIV)所示:
Figure 978478DEST_PATH_IMAGE014
在公式(XIV)中,Score(v i )表示每一个候选关键词的分数;
依据分数由大到小对候选关键词进行排序,抽取前k个作为代码技术特征关键词。
一种加载有上述方法的系统,其特征在于,包括:算法用户上传代码功能、文本编码阶段处理模块、构建语义关联图阶段处理模块、融合词汇权重和词汇知识阶段处理模块、输出前k个技术特征关键词模块。
根据本发明优选的,所述系统还包括基于关键词的代码检索模块:针对基于用户需求的代码检索问题,基于本发明设计和实现了面向技术特征的代码检索系统,将抽取出的所述技术特征关键词作为代码的索引,用户在系统中基于关键词的代码检索模块使用技术特征关键词进行代码检索,例如,A用户在系统上传代码时,依据A用户的代码描述文本,抽取出的技术特征关键词为“知识图谱”,那么B用户在系统中基于关键词的代码检索模块点击“知识图谱”超链接后,即可检索出与知识图谱相关的代码,其包括A用户上传的代码。
一直实现上述方法的程序产品,其特征在于,包括:所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令用于执行上述的方法。
一种加载有上述方法的计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现本发明记载的任一项所述方法的步骤。
一种利用上述方法的应用方法:从代码描述文本中抽取出的技术特征关键词既和代码描述文本相关,又相对于已有技术特征关键词具有特异性,将技术特征关键词作为代码索引,进而实现基于关键词的代码检索。本应用方法无需标记语料库对关键词抽取模型进行训练,且抽取出的技术特征关键词具有相关性和特异性,以提高代码的可复用性。
本发明的技术效果:
1、相较于传统方法,本发明所使用的关键词抽取方法,不需要标记语料库对关键词抽取模型进行训练,且从代码描述文本中抽取出的技术特征关键词既和代码描述文本相关,又相对于已有技术特征关键词具有特异性。
2、相较于传统方法,本发明在构建语义关联图阶段使用了依存句法知识,以捕获词汇之间的长距离语义依赖关系,并且采用词汇TF-IDF值和句子依存句法知识的融合分析方法,兼顾关键词的重要性和特异性。
3、相较于传统方法,本发明采用了预训练BERT对文本进行语义编码,可以提取文本抽象语义信息。
附图说明
图1是本发明一种基于代码描述文本的技术特征关键词抽取方法流程图;
图2是本发明基于代码描述文本的技术特征关键词抽取模型框架图。
具体实施方式
下面结合实施例和说明书附图做详细的说明,但不限于此。
如图1、图2所示。
实施例1
一种基于代码描述文本的技术特征关键词抽取方法,包括:
对代码描述文本预处理;
文本编码阶段;
构建语义关联图;
在语义关联图上采用随机游走算法得到候选关键词权重;
融合词汇权重和词汇知识得到每个候选关键词的分数;
依据分数进行倒排序,抽取前k个候选关键词作为代码技术特征关键词。
其中,所述代码描述文本预处理阶段生成输出信息,即生成候选关键词集合;
其中,所述文本编码是指,采用预训练BERT模块对候选关键词进行语义编码,分别生成候选关键词向量;其中,优选的,所述BERT模块是基于以下技术文献实现的:JacobDevlin, Ming-Wei Chang, Kenton Lee et al. BERT: Pre-training of deepbidirectional transformers for language understanding[C]. Proceedings of the2019 Conference of the North American Chapter of the Association forComputational Linguistics: Human Language Technologies. 2019: 4171-4186;
其中,将共现词汇和依存关系相结合构建语义关联图,在语义关联图上采用随机游走算法得到候选关键词权重;其中,优选的,依存关系是基于以下技术文献实现的:DanqiChen, Christopher D. Manning. A fast and accurate dependency parser usingneural networks[C]. Proceedings of the 2014 Conference on Empirical Methodsin Natural Language Processing. 2014: 740-750;所述随机游走算法是基于以下技术文献实现的:Roi Blanco, Christina Lioma. Graph-based term weighting forinformation retrieval[J]. Information Retrieval, 2012, 15(1): 54-92。
所述代码描述文本预处理包括:
对代码描述文本的句子进行分词和词性标注处理,从句子中去除无意义的符号和停用词,最终,将预处理后的词作为候选关键词。
所述对代码描述文本预处理的步骤如下:
(1)删除无意义的符号;其中,所述无意义的符号是指标点符号,将代码描述文本的句子分词时会出现标点符号,因此,这些无意义的标点符号都将被删除;
(2)删除停用词;其中,所述停用词是指常规网站提供的停用词列表,然后将这些停用词从候选关键词中删除,例如,使用百度提供的停用词列表;
(3)保留相关词性的词,根据词性仅将词长度大于等于2的名词、形容词和动词作为候选关键词。
所述构建语义关联图包括:
将代码描述文本x经过预处理后得到候选关键词集合V,基于候选关键词构建语义关联图G,语义关联图G中的节点v i 表示候选关键词,将共现词汇和依存关系相结合构建语义关联图的边E,边的权重为候选关键词预训练BERT词向量的余弦相似度W,语义关联图G是一个无向加权图:
Figure 193559DEST_PATH_IMAGE001
Figure 328743DEST_PATH_IMAGE002
Figure 920261DEST_PATH_IMAGE003
Figure 348969DEST_PATH_IMAGE004
在公式(I)(II)(III)(IV)中,V表示候选关键词集合;v i i个候选关键词;n表示候选关键词的数量;Preprocessing函数是对上述代码描述文本预处理步骤(1)-(3)的具体实现,x表示代码描述文本;
E表示候选关键词存在的边集合;w ij 表示候选关键词v i v j 的权重,即语义关联图中v i v j 之间边的权重;W表示边权重集合;
G表示语义关联图。
所述文本编码阶段包括:本发明采用预训练模型BERT计算所述语义关联图中边的权重w ij
Figure 594005DEST_PATH_IMAGE005
Figure 373742DEST_PATH_IMAGE006
在公式(V)(VI)中,e vi 表示第i个候选关键词的预训练BERT词向量;cos是余弦相似度函数,w ij 是语义关联图中v i v j 之间边的权重。
实施例2
如实施例1所述的一种基于代码描述文本的技术特征关键词抽取方法,所述在语义关联图上采用随机游走算法得到候选关键词权重计算公式如下:
Figure 503372DEST_PATH_IMAGE015
在公式(VII)中,WS(v i )为候选关键词v i 的权重;d为阻尼系数,阻尼系数过大会导致迭代次数增加,阻尼系数过小会导致算法没有明显效果,一般取值为0.85;In(v i )表示v i 指向的候选关键词集合;out(v j 表示v j 指向的候选关键词集合;v k 表示v j 指向的候选关键词集合中任意一个元素;w jk 是语义关联图中v j v k 之间边的权重;WS(v j )表示第i-1次迭代后节点v j 的权重。
为了更好的解释在语义关联图上采用随机游走算法计算候选关键词权重的过程,对此对计算过程进行详细说明:所述在语义关联图上计算候选关键词权重的过程是一个马尔科夫过程,这里是在语义关联图上采用随机游走算法计算候选关键词权重的过程的详细说明,即详细公式(VII)的计算过程。
依据文本编码阶段得到的候选关键词向量,依据候选关键词向量的余弦相似度值得到候选关键词相似度矩阵S n×n ,矩阵S n×n 是一个对称矩阵,并且对角线上的元素全部取0,设定所有候选关键词的初始权重B 0 为该候选关键词的tfidf值,通过迭代计算得到趋于正常和稳定的权重值:
Figure 396373DEST_PATH_IMAGE008
(VIII)
Figure 218836DEST_PATH_IMAGE009
(IX)
Figure 79344DEST_PATH_IMAGE010
在公式(VIII)(IX)(X)中,S n×n 表示候选关键词相似度矩阵;w ij 是语义关联图中v i v j 之间边的权重;B 0 中的元素为所有候选关键词的初始权重;B i 表示第i轮计算后所有候选关键词的权重;B i-1 表示第i-1次计算后所有候选关键词的权重;tfidf(v i ,x)表示第i个候选关键词的tfidf值,只有当B i B i-1 的差值非常小且接近于零时达到收敛,收敛后得到所有候选关键词的权重值:
Figure 12665DEST_PATH_IMAGE011
在公式(XI)中,∣x∣表示代码描述文本x中包含的候选关键词个数;∣v i ∈x∣表示代码描述文本x中包含第i个候选关键词的个数;
Figure 150386DEST_PATH_IMAGE012
在公式(XII)中,idf(v i )表示第i个候选关键词v i 在整个代码描述文本集合X中的逆向文档频率;∣X∣表示代码描述文本集中包含的代码描述文本数量;∣v i ∈X∣表示包含第i个候选关键词的代码描述文本数量;
Figure 243282DEST_PATH_IMAGE016
在公式(XIII)中,tf(v i ,x)表示第i个候选关键词v i 在代码描述文本x中的词频;
tfidf(v i ,x)表示第i个候选关键词基于统计方法的分数,以兼顾关键词的特异性,以衡量候选关键词相对于代码描述文本和代码描述文本集的重要程度;其中tf表示词频,idf表示逆向文档频率。
依据分数进行倒排序,抽取前k个关键词作为代码技术特征关键词的具体步骤包括:
融合基于随机游走算法得到的每个候选关键词的权重WS(v i )与候选关键词的tfidf值,得到候选关键词分数Score(v i );为了更准确的抽取代码描述文本中的专业词汇,本发明依据GitHub平台提供的代码主题,创建了一个专业词汇列表,如果候选关键词是专业词汇,那么该候选关键词的权重相对于其他候选关键词被设置为一个最大值,候选关键词分数的计算如公式(XIV)所示:
Figure 732033DEST_PATH_IMAGE014
在公式(XIV)中,Score(v i )表示每一个候选关键词的分数;
依据分数由大到小对候选关键词进行排序,抽取前k个作为代码技术特征关键词。
实施例3
一种加载有上述方法的系统,包括:算法用户上传代码功能、文本编码阶段处理模块、构建语义关联图阶段处理模块、融合词汇权重和词汇知识阶段处理模块、输出前k个技术特征关键词模块。
实施例4
如实施例3所述系统,还包括基于关键词的代码检索模块:针对基于用户需求的代码检索问题,基于本发明设计和实现了面向技术特征的代码检索系统,将抽取出的所述技术特征关键词作为代码的索引,用户在系统中基于关键词的代码检索模块使用技术特征关键词进行代码检索,例如,A用户在系统上传代码时,依据A用户的代码描述文本,抽取出的技术特征关键词为“知识图谱”,那么B用户在系统中基于关键词的代码检索模块点击“知识图谱”超链接后,即可检索出与知识图谱相关的代码,其包括A用户上传的代码。
实施例5
一种实现如实施例1-4所述方法的程序产品,包括:所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令用于执行上述的方法。
实施例6
一种加载有如实施例1-4所述方法的计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明记载的任一项所述方法的步骤。
实施例7
一种利用如实施例1-4所述方法的应用方法:从代码描述文本中抽取出的技术特征关键词既和代码描述文本相关,又相对于已有技术特征关键词具有特异性,将技术特征关键词作为代码索引,进而实现基于关键词的代码检索。
如图2所示,根据实施例1-7的具体应用场景,用户上传代码时,利用本发明所述方法,以问答系统的代码为例,其抽取技术特征关键词的方法如下:
首先进行代码描述文本的输入x
“基于知识图谱的智能问答系统”
对代码描述文本进行预处理:
得到候选关键词集合V={基于/知识/图谱/智能/问答/系统}
在文本编码阶段,采用预训练BERT模型作为文本编码器:
得到e v2 =[0.3521,-0.0019,-0.5734,…,0.7176]
构建语义关联图G:
将共现词汇和依存关系相结合构建语义关联图的边E,如图2所示,依存句法分析结果中“基于”和“系统”之间存在一条依存边,图中节点表示候选关键词,边的权重为候选关键词预训练BERT词向量的余弦相似度w ij
得到E={(基于,图谱),(知识,图谱),(智能,问答),(问答,系统),(基于,系统),(基于,知识),(智能,系统)},w 12 =0.22,w 23 =0.86,G=(V,E,W)。
融合词汇权重和词汇知识得到每个候选关键词的分数:
在语义关联图上采用随机游走的算法得到候选关键词的权重WS(v)=[0.63,0.64,0.92,0.61,0.81,0.69]
使用TF-IDF计算模块得到候选关键词的TF-IDF值tfidf(v,x)=[0.24,0.62,0.53,0.32,0.76,0.87]
融合词汇权重和词汇知识得到每个候选关键词的分数Score(v)=[0.15,0.40,0.49,0.20,0.62,0.60]
倒排序:
依据候选关键词的分数进行倒排序,使用2-gram语言模型得到前3个关键词为:“问答系统”、“知识图谱”和“智能问答”。将其作为问答系统代码的技术特征关键词。
代码检索:
用户在代码检索中点击“问答系统”超链接后,即可检索出与知识图谱相关的代码。

Claims (8)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210838242.2A CN114912449B (zh) 2022-07-18 2022-07-18 基于代码描述文本的技术特征关键词抽取方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210838242.2A CN114912449B (zh) 2022-07-18 2022-07-18 基于代码描述文本的技术特征关键词抽取方法与系统

Publications (2)

Publication Number Publication Date
CN114912449A CN114912449A (zh) 2022-08-16
CN114912449B true CN114912449B (zh) 2022-09-30

Family

ID=82772993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210838242.2A Active CN114912449B (zh) 2022-07-18 2022-07-18 基于代码描述文本的技术特征关键词抽取方法与系统

Country Status (1)

Country Link
CN (1) CN114912449B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116228985B (zh) * 2023-03-17 2023-10-20 合肥泰瑞数创科技有限公司 基于多维图像编码的建筑物室内语义模型的构建方法及系统
CN116702786B (zh) * 2023-08-04 2023-11-17 山东大学 融合规则和统计特征的中文专业术语抽取方法和系统
CN117112916A (zh) * 2023-10-25 2023-11-24 蓝色火焰科技成都有限公司 一种基于车联网的金融信息查询方法、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112257453A (zh) * 2020-09-23 2021-01-22 昆明理工大学 融合关键词和语义特征的汉越文本相似度计算方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268230B (zh) * 2014-09-28 2017-09-15 福州大学 一种基于异质图随机游走的中文微博客观点探测方法
CN106682172A (zh) * 2016-12-28 2017-05-17 江苏大学 一种基于关键词的文献研究热点推荐方法
CN111078838B (zh) * 2019-12-13 2023-08-18 北京小米智能科技有限公司 关键词提取方法、关键词提取装置及电子设备
CN111310475B (zh) * 2020-02-04 2023-03-10 支付宝(杭州)信息技术有限公司 词义消歧模型的训练方法及装置
CN111611807B (zh) * 2020-05-18 2022-12-09 北京邮电大学 一种基于神经网络的关键词提取方法、装置及电子设备
CN114065758B (zh) * 2021-11-22 2024-04-19 杭州师范大学 一种基于超图随机游走的文档关键词抽取方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112257453A (zh) * 2020-09-23 2021-01-22 昆明理工大学 融合关键词和语义特征的汉越文本相似度计算方法

Also Published As

Publication number Publication date
CN114912449A (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
US9792280B2 (en) Context based synonym filtering for natural language processing systems
CN114912449B (zh) 基于代码描述文本的技术特征关键词抽取方法与系统
US9727637B2 (en) Retrieving text from a corpus of documents in an information handling system
CN111522910B (zh) 一种基于文物知识图谱的智能语义检索方法
CN108681574B (zh) 一种基于文本摘要的非事实类问答答案选择方法及系统
US20090292685A1 (en) Video search re-ranking via multi-graph propagation
CN110020189A (zh) 一种基于中文相似性计算的文章推荐方法
US20170262783A1 (en) Team Formation
CN110543557A (zh) 一种基于注意力机制的医疗智能问答系统的构建方法
CN113761890B (zh) 一种基于bert上下文感知的多层级语义信息检索方法
CN111753167B (zh) 搜索处理方法、装置、计算机设备和介质
CN112036178A (zh) 一种配网实体相关的语义搜索方法
CN111581364B (zh) 一种面向医疗领域的中文智能问答短文本相似度计算方法
CN107341188A (zh) 基于语义分析的高效数据筛选方法
Karpagam et al. A framework for intelligent question answering system using semantic context-specific document clustering and Wordnet
CN112417170B (zh) 面向不完备知识图谱的关系链接方法
Bravo-Marquez et al. A text similarity meta-search engine based on document fingerprints and search results records
CN111581365B (zh) 一种谓词抽取方法
Abimbola et al. A Noun-Centric Keyphrase Extraction Model: Graph-Based Approach
CN116204622A (zh) 一种跨语言稠密检索中的查询表示增强方法
CN111767388B (zh) 一种候选池生成方法
Wang et al. A legal question answering system based on BERT
CN114154496A (zh) 基于深度学习bert模型的煤监类案对比方法及装置
CN114818727A (zh) 关键句抽取方法及装置
Liu et al. A Chinese question answering system based on web search

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