1.基于自注意力交互式网络的软件社区仓库挖掘方法,其特征在于,将获取的代码片段、代码片段上下文和查询描述输入训练好的软件仓库挖掘模型,所述软件仓库挖掘模型输出代码片段是否为查询描述对应的独立解决方案的预测结果,所述软件仓库挖掘模型包括:词嵌入层,分别对代码片段、代码片段上下文和查询描述进行词嵌入处理;
自注意力网络层,基于自注意力机制分别提取词嵌入处理后的代码片段、代码片段上下文和查询描述的特征矩阵;
代码片段和查询描述交互层,对代码片段和查询描述的语义关联性进行检测获得代码片段的共同注意表示和查询描述的共同注意表示;
信息融合层,通过Bi‑GRU对代码片段上下文的特征矩阵平均池化后的池化结果、代码片段的共同注意表示和查询描述的共同注意表示进行融合获得融合信息;
标签预测层,基于融合信息预测代码片段是否为查询描述对应的独立解决方案。
2.如权利要求1所述的基于自注意力交互式网络的软件社区仓库挖掘方法,其特征在于,所述自注意力网络层具体执行:步骤S21,分别通过查询权重、键权重、值权重将词嵌入处理后的代码片段/代码片段上下文/查询描述转换为对应的查询向量、键向量和值向量;
步骤S22,将代码片段/代码片段上下文/查询描述对应的查询向量、键向量、值向量输入自注意力机制获得代码片段/代码片段上下文/查询描述的语义信息;
步骤S23,将代码片段/代码片段上下文/查询描述的语义信息输入全连接前馈网络,全连接前馈网络输出代码片段/代码片段上下文/查询描述的特征矩阵。
3.如权利要求2所述的基于自注意力交互式网络的软件社区仓库挖掘方法,其特征在于,代码片段/代码片段上下文/查询描述的特征矩阵为:vD=ReLu(contextD·W1+b1)·W2+b2,其中,序列D=Ci或Si或Si+1或Q,Ci表示代码片段,Si表示代码片段上文,Si+1表示代码片段下文,Q表示查询描述;ReLu(·)表示ReLu激活函数;
contextD表示序列D的语义信息;contextD=Att(QD·KD)·VD,Att(·)表示缩放的点积注意力模型, SoftMax(·)为归一化函数,QD表示序列D的查询向量,KD表示序列D的键向量,VD表示序列D的值向量;d表示词嵌入后单词的维度;W1、W2、b1分别表示全连接前馈网络中第一可学习参数、第二可学习参数、第三可学习参数。
4.如权利要求1所述的基于自注意力交互式网络的软件社区仓库挖掘方法,其特征在于,所述代码片段和查询描述交互层具体执行:步骤S31,计算代码片段和查询描述的语义相关矩阵F:
其中, 表示代码片段的特征矩阵;vQ表示查询描述的特征矩阵;U表示语义关联性检测神经网络的参数矩阵;
步骤S32,语义相关矩阵F沿行进行平均池化操作获得代码片段的语义向量 语义相Q关矩阵F沿列进行平均池化操作获得查询描述的语义向量g;
步骤S33,代码片段的语义向量 利用softmax函数生成代码片段的注意力向量 查Q询描述的语义向量g利用softmax函数生成查询描述的注意力向量
步骤S34,计算代码片段的特征矩阵 和代码片段的注意力向量 的点积获得代码片Q段的共同注意力表示 计算查询描述的特征矩阵vQ和查询描述的注意力向量a的点积获Q得查询描述的共同注意力表示r。
5.如权利要求1所述的基于自注意力交互式网络的软件社区仓库挖掘方法,其特征在于,所述标签预测层按照如下公式进行预测:yi=softmax(wyHi+by);
其中,yi表示预测结果,yi=[yi0,yi1],yi0为代码片段不为查询描述对应的独立解决方案的表示标签,yi1表示代码片段为查询描述对应的独立解决方案的表示标签,Hi表示融合信息,wy、by分别表示标签预测层的第一可学习参数、第二可学习参数。
6.如权利要求1‑5之一所述的基于自注意力交互式网络的软件社区仓库挖掘方法,其特征在于,所述软件仓库挖掘模型的训练过程为:基于人工标注数据集获取训练集和验证集,利用训练集训练软件仓库挖掘模型的网络参数,在验证集上迭代预设次直到损失函数收敛,完成软件仓库挖掘模型训练,其中,所述损失函数基于one hot分布和均匀分布构建,具体为:其中,Loss表示损失;ε表示均匀分布损失函数所占比重;第一变量 yi0表示代码片段不为查询描述对应的独立解决方案的表示标签,pi0表示yi0的置信度;yi1表示代码片段为查询描述对应的独立解决方案的表示标签,pi1表示yi1的置信度。
7.基于自注意力交互式网络的软件社区仓库挖掘装置,其特征在于,包括:输入模块,用于将代码片段、代码片段上下文和查询描述输入软件仓库挖掘模块;
软件仓库挖掘模块,输出代码片段是否为查询描述对应的独立解决方案的预测结果,所述软件仓库挖掘模块包括:词嵌入模块,分别对代码片段、代码片段上下文和查询描述进行词嵌入处理;
自注意力网络模块,基于自注意力机制分别提取词嵌入处理后的代码片段、代码片段上下文和查询描述的特征矩阵;
代码片段和查询描述交互模块,对代码片段和查询描述的语义关联性进行检测获得代码片段的共同注意表示和查询描述的共同注意表示;
信息融合模块,通过Bi‑GRU对代码片段上下文的特征矩阵平均池化后的池化结果、代码片段的共同注意表示和查询描述的共同注意表示进行融合获得融合信息;
标签预测模块,基于融合信息预测代码片段是否为查询描述对应的独立解决方案。
8.如权利要求7所述的基于自注意力交互式网络的软件社区仓库挖掘装置,其特征在于,还包括模型训练模块,所述模型训练模块基于人工标注数据集获取训练集和验证集,利用训练集训练软件仓库挖掘模型的网络参数,在验证集上迭代预设次直到损失函数收敛,完成软件仓库挖掘模型训练,其中,所述损失函数基于one hot分布和均匀分布构建,具体为:其中,Loss表示损失;ε表示均匀分布损失函数所占比重;第一变量 yi0表示代码片段不为查询描述对应的独立解决方案的表示标签,pi0表示yi0的置信度;yi1表示代码片段为查询描述对应的独立解决方案的表示标签,pi1表示yi1的置信度。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现如权利要求1至6中任一项权利要求所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6中任一项权利要求所述的方法。