CN113901177A - 一种基于多模态属性决策的代码搜索方法 - Google Patents

一种基于多模态属性决策的代码搜索方法 Download PDF

Info

Publication number
CN113901177A
CN113901177A CN202111254147.XA CN202111254147A CN113901177A CN 113901177 A CN113901177 A CN 113901177A CN 202111254147 A CN202111254147 A CN 202111254147A CN 113901177 A CN113901177 A CN 113901177A
Authority
CN
China
Prior art keywords
vector
tuple
component code
word
path
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.)
Granted
Application number
CN202111254147.XA
Other languages
English (en)
Other versions
CN113901177B (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202111254147.XA priority Critical patent/CN113901177B/zh
Publication of CN113901177A publication Critical patent/CN113901177A/zh
Application granted granted Critical
Publication of CN113901177B publication Critical patent/CN113901177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据搜索查询技术,其公开了一种基于多模态属性决策的代码搜索方法,提高组件代码块的搜索的准确率和效率。该方法包括:S1、对查询语句分别与数据库中的每个组件代码块组成待匹配数据对;S2、对各个待匹配数据对进行预处理,获得元组词向量;S3、通过基于BERT的注意力网络提取各个元组的序列特征;S4、利用skip‑gram网络提取各个元组的结构特征;S5、针对每一元组的序列特征和结构特征,采用多模态向量匹配模型进行相似度匹配,得到相似度匹配结果;S6、针对每一元组,基于获得的相似度匹配结果,利用门控机制对多属性得分进行输出控制,获得各元组的最终得分,并从高至低进行排序;S7、选出排序靠前的最终得分对应的组件代码块组成候选组件代码块集反馈用户。

Description

一种基于多模态属性决策的代码搜索方法
技术领域
本发明涉及数据搜索查询技术,具体涉及一种基于多模态属性决策的代码搜索方法。
背景技术
传统技术中,对于组件代码块的搜索通常基于余弦相似度实现,具体介绍如下:
组件代码块搜索的任务目标:给定一个包含海量组件代码块的数据库,用户输入一个查询语句,搜索系统从数据库中匹配最符合用户期望的组件代码块并返回给用户。
输入:组件代码块数据库DB={c1,c2,...,cN},其中,cN表示第N个组件代码块;用户查询语句q={w1,w2,...,wm},其中,wm表示第m个单词;候选数K。
输出:最优的K个组件代码块。
包括如下步骤:
步骤1:对查询语句q分词、统一小写字母,并截断到固定长度;
步骤2:对组件代码块数据库DB中的任意一个组件代码块ci分词、统一小写字母,并截断到固定长度;
步骤3:将查询语句q的每个单词表示为向量形式Q={e1,e2,...,em},其中,向量em表示第m个单词Wm的词向量;
步骤4:将组件代码块ci表示为向量形式
Figure BDA0003323311580000011
其中,
Figure BDA0003323311580000012
表示ci中第ni个单词的词向量,ni表示ci中单词的数量;
步骤5:将查询语句向量Q输入到LSTM网络(长短期记忆人工神经网络),得到最后一个隐状态,表示为
Figure BDA0003323311580000013
步骤6:将DB中的每个组件代码块向量Ci均输入到LSTM,得到最后一个隐状态,表示为
Figure BDA0003323311580000014
步骤7:计算
Figure BDA0003323311580000015
Figure BDA0003323311580000016
的余弦相似度:
Figure BDA0003323311580000017
步骤8:按照步骤3至7计算所有N个(组件代码块的个数)相似度,组成集合cosine:
cosine={cosine1,cosine2,...,cosineN}
步骤9:取cosine中最大的K个相似度对应的组件代码块返回给用户。
上述方案存在的缺陷是:
1、LSTM是一种串行编码器,且存在梯度消失现象。对于长文本的组件代码块序列来说,LSTM的串行解码会消耗线性复杂度的时间来进行计算,并且LSTM会存在遗忘信息的现象,尤其在最开始的组件代码块文本和最后的组件代码块文本之间,信息的交互会存在遗忘。
2、上述方案忽略了组件代码块的多模态特性,相似度比较的方式只在文本层面进行了比较。但组件代码块是一种结构化数据,只将组件代码块视为普通文本则忽视了组件代码块结构上的信息,无法保证搜索结果能满足用户的需求。
发明内容
本发明所要解决的技术问题是:提出一种基于多模态属性决策的代码搜索方法,提高组件代码块的搜索的准确率和效率。
本发明解决上述技术问题采用的技术方案是:
一种基于多模态属性决策的代码搜索方法,包括以下步骤:
S1、对查询语句分别与数据库中的每个组件代码块组成待匹配数据对;
S2、对各个待匹配数据对进行预处理,获得元组词向量;
S3、通过基于BERT的注意力网络提取各个元组的序列特征;
S4、利用skip-gram网络提取各个元组的结构特征;
S5、针对每一元组的序列特征和结构特征,采用多模态向量匹配模型进行相似度匹配,得到相似度匹配结果;
S6、针对每一元组,基于获得的相似度匹配结果,利用门控机制对多属性得分进行输出控制,获得各元组的最终得分,并从高至低进行排序;
S7、选出排序靠前的K个最终得分对应的组件代码块组成候选组件代码块集反馈给用户,所述K≥1。
作为进一步优化,步骤S2具体包括:
S21、对查询语句文本序列按照空格进行分词处理,获得查询语句的词向量Q;
S22、对组件代码块文本序列按照空格进行分词处理,获得所有组件代码块的词向量{C1,C2,...,CN},其中CN表示第N个组件代码块的词向量;
S23、对组件代码块方法名按照下划线、驼峰命名法和大小写进行分词处理,获得所有组件代码块方法名的词向量{M1,M2,...,MN},其中MN表示第N个组件代码块方法名的词向量;
S24、对组件代码块调用的API(应用程序编程接口)序列按照下划线、驼峰命名法和大小写进行分词处理,获得所有组件代码块调用的API序列的词向量{A1,A2,...,AN},其中AN表示第N个组件代码块调用的API序列的词向量;
S25、将查询语句的词向量Q、组件代码块的词向量{C1,C2,...,CN}、组件代码块方法名的词向量{M1,M2,...,MN}、组件代码块调用的API序列的词向量{A1,A2,...,AN}组成待匹配数据对,作为元组词向量:S=(Q,C1,M1,A1),(Q,C2,M2,A2),...,(Q,CN,MN,AN)。
作为进一步优化,步骤S3中,所述基于BERT的注意力网络由多个网络结构块堆叠而成,每个所述网络结构块均包括输入层、注意力表示层和前馈神经网络层:
输入层,用于对输入的词向量与对应的位置向量按位相加,获得输入层词表示;
注意力表示层,用于通过多头注意力机制对输入层表示进行处理,获取多个注意力输出并对所有注意力输出进行拼接,将拼接后的多个注意力头部输出压缩至输入的维度;
前馈神经网络层,用于调节注意力表示层中每个注意力头的权重矩阵。
作为进一步优化,步骤S3中,所述提取各个元组的序列特征具体包括:
S31、针对各元组中的元素(以第i个元组为例)Ci、Mi、Ai的词向量根据上下文进行[CLS]表示,输入注意力网络后,获得经过[CLS]表示的词向量
Figure BDA0003323311580000031
S32、针对每一个元组,对经过[CLS]表示的词向量
Figure BDA0003323311580000032
进行平均池化处理,获得第i个元组的序列表示,作为该元组的序列特征
Figure BDA0003323311580000033
S33、将查询语句的词向量Q根据上下文进行[CLS]表示,输入注意力网络后,获得经过[CLS]表示的词向量Q1
S34、对经过[CLS]表示的词向量Q1进行平均池化处理,获得Q的序列表示,作为Q的序列特征Q2
作为进一步优化,步骤S4具体包括:
S41、利用python工具包javalang将所有组件代码块转换为抽象语法树;
S42、对抽象语法树采样T条路径,得到路径向量P={p1,...,pT},其中pT表示第T条路径,T表示该语法抽象数从根节点到叶子节点不重复路径的数量;
S43、将路径向量P输入skip-gram模型,得到路径向量P的嵌入向量表示Pnodes,对于任一路径表示
Figure BDA0003323311580000034
其表示的路径是pi,其中nodel表示第l个节点的嵌入向量,l是该路径的长度,pi是P中的任意一条路径;
S44、对于任一路径表示
Figure BDA0003323311580000035
使用LSTM从前向编码得到隐状态表示序列:
Figure BDA0003323311580000036
其中
Figure BDA0003323311580000037
表示前向LSTM第l个节点的隐状态表示,即前向LSTM最后一个隐状态,
Figure BDA0003323311580000038
表示前向LSTM;
S45、对于任一路径表示
Figure BDA0003323311580000039
使用LSTM从后向编码得到隐状态表示序列:
Figure BDA0003323311580000041
其中
Figure BDA0003323311580000042
表示后向LSTM第1个节点的隐状态表示,即后向LSTM最后一个隐状态,
Figure BDA0003323311580000043
表示后向LSTM;
S46、拼接前向和后向二者的最后一个隐状态,得到任一路径pi的节点向量表示:
Figure BDA0003323311580000044
其中,
Figure BDA0003323311580000045
是前向LSTM得到的最后一个隐状态输出,对应路径的尾节点;
Figure BDA0003323311580000046
是后向LSTM得到的最后一个隐状态输出,对应路径的头结点;
S47、取路径pi上首尾节点的token w1、wl,其中l是该路径的长度;利用驼峰命名法显式切割首尾token,得到首尾子词向量
Figure BDA0003323311580000047
其长度为子词数量,子词通过one-hot表示为词向量形式;
S48、加和子词向量获取token的向量表示;
Figure BDA0003323311580000048
其中,split(·)表示驼峰命名法的显式切割操作,wsubtokens表示子词向量,wsubtokens[s]表示取wsubtokens中子词s对应的词向量;
S49、拼接首尾token的子词向量得到路径pi上token的向量表示:
Figure BDA0003323311580000049
S410、将路径节点向量表示和token向量表示进行拼接,得到完整的路径表示:
encoded_path(pi)=[encoded_path_lstm(pi);encoded_tokens(pi)]
S411、通过全连接层融合两部分特征,得到路径的融合表示:
zi=tanh(Win1(encoded_path(pi)))
其中,Win1表示全连接层,tanh表示双切正切曲线激活函数;
S412、对T条路径的融合表示求和得到最终的抽象语法树向量表示G:
Figure BDA00033233115800000410
作为进一步优化,步骤S5具体包括:
S51、确定每一元组的特征九元组
Figure BDA00033233115800000411
其中,Q1为查询语句向量Q的特征向量,Q2为查询语句向量Q的序列特征向量,Gi表示元组的结构特征向量;
S52、将
Figure BDA0003323311580000051
分别视为匹配对,对每个匹配对独立计算余弦相似度,最终得到六个余弦相似度得分的六元组Vi=(score1,...,score6);
S53、将查询语句向量Q输入skip-gram模型,得到Q的嵌入向量表示Qnodes={node1,node2,...,nodel},通过LSTM得到查询文本的双向表示:
Figure BDA0003323311580000052
Figure BDA0003323311580000053
S54、拼接两个方向的LSTM的最后一个隐状态得到一个长256的向量表示,得到:
Figure BDA0003323311580000054
S55、通过全连接层混合两个方向的特征:
Q3=tanh(Win2(hQ))
其中,Win2表示全连接层。
S56、计算Gi与Q3的余弦相似度,最终得到一个相似度匹配得分score7,用Q3替换Ui中的Gi、将score7加入Vi,得到特征九元组Ui和得分七元组Vi
Figure BDA0003323311580000055
Vi=(score1,...,score7)
作为进一步优化,步骤S6具体包括:
S61、拼接九元组特征Ui得到门控输入:
Figure BDA0003323311580000056
其中
Figure BDA0003323311580000057
是长256*9=2304的向量,“;”表示向量拼接;
S62、利用全连接网络混合9种特征,得到混合特征
Figure BDA0003323311580000058
Figure BDA0003323311580000059
其中Wf是2304×256的权重矩阵,Relu为线性整流激活函数;
S63、通过全连接网络得到门控输入向量
Figure BDA00033233115800000510
Figure BDA00033233115800000511
其中Wout是256×7的权重矩阵,将混合特征
Figure BDA00033233115800000512
通过全连接网络计算,得到长度为7的门控输入
Figure BDA0003323311580000061
分别对应7个专家得分的门控输入;
S64、利用sigmoid激活函数完成门控制,得到分数权重
Figure BDA0003323311580000062
Figure BDA0003323311580000063
其中,σ为sigmoid激活函数;
S65、基于分数权重
Figure BDA0003323311580000064
利用点积算子融合7个分数,获得相似度匹配分数ScOrefinal
Figure BDA0003323311580000065
其中scoreT表示score的转置。
本发明的有益效果是:
(1)额外使用了组件代码块结构这一特征进行匹配,在组件代码块特征上更加完备,信息更多;使用了更深的注意力网络,网络的表达能力强于LSTM,且不存在梯度消失现象,组件代码块的序列表示能力更有效,从而使得搜索更加准确;
(2)使用了多属性决策模型,从多个维度考虑各个属性的优先级,并允许使用网络参数进行属性权重的优化,从而使得搜索更加准确;
(3)使用了注意力网络进行序列编码,允许模型并行进行序列的编码,提升了搜索效率。
附图说明
图1为本发明中的基于多模态属性决策的代码搜索方法流程图;
图2为block结构示意图;
图3为skip-gram网络结构图。
具体实施方式
本发明旨在提出一种基于多模态属性决策的代码搜索方法,提高组件代码块搜索的准确率和效率。其实现流程如图1所示,包括:S1、对查询语句分别与数据库中的每个组件代码块组成待匹配数据对;S2、对各个待匹配数据对进行预处理,获得元组词向量;S3、通过基于BERT的注意力网络提取各个元组词向量的序列特征;S4、利用skip-gram网络提取各个元组词向量的结构特征;S5、针对每一元组词向量的序列特征和结构特征,采用多模态向量匹配模型进行相似度匹配,得到相似度匹配结果;S6、针对每一元组词向量,基于获得的相似度匹配结果,利用门控机制对多属性得分进行输出控制,获得各元组词向量的最终得分,并从高至低进行排序;S7、选出排序靠前的K个最终得分对应的组件代码块组成候选组件代码块集反馈给用户。
实施例:
S100:准备数据,包括组件代码块数据库、该数据库上的网络训练数据集、真实的组件代码块查询语句。
S200:事先使用训练数据集中的所有组件代码块查询语句训练skip-gram模型,为S500提取组件代码块的结构特征做准备。
S300:数据预处理,将各个组件代码块从组件代码块文本、组件代码块方法名和组件代码块调用API序列三个方面表示为向量形式。
S400:构造基于BERT的注意力网络,并提取组件代码块的序列特征。
S500:利用Python工具包javalang与S200训练好的skip-gram模型提取组件代码块的结构特征。
S600:使用组件代码块的序列特征、组件代码块的结构特征与组件代码块查询语句组成匹配元组向量。在匹配元组向量之上进行多模态向量匹配,得到特征九元组与得分七元组。
S700:使用特征九元组与得分七元组进行多属性决策,得到最终得分,取得分最高的几个组件代码作为候选组件代码块集合。
S800:将S600至S700视为整体,即一种基于多模态属性决策的代码搜索模型,其输入是组件代码块查询语句、组件代码块的序列特征和组件代码块的结构特征,输出是候选组件代码块集合。用S100准备的数据集Train训练该模型,即可得到一个可用模型。
S900:将真实的组件代码块查询语句输入可用模型,即可得到基于组件代码块数据库DB的候选组件代码块集合。
具体实施时,所述S100中准备数据的具体步骤为:
S101:准备组件代码块数据库DB={c1,c2,...,cN},其中,cN表示第N个组件代码块。
S102:准备数据库DB上的网络训练数据集Train,Train由若干个(q,e)组件代码块查询语句与查询结果组成的匹配对组成,其中e表示由q查询的正确结果,即对应的候选组件代码块。需要保证Train中至少有两个不同的e。
S103:准备真实的组件代码块查询语句qtrue,qtrue需要在S800之后输入模型,即输入训练完成后的模型才能得到正确的结果。
S104:指定查询候选组件代码块集合的数量K,用于S705及后续的排名截取操作。
S105:指定模型学习率α、训练轮次epoch,用于S806及后续的模型训练操作。
具体实施时,所述S200中训练skip-gram模型的具体步骤为:
S201:提取Train所有第一个关键词组成查询语句序列{q1,q2,...,qtrain_length},其中q1表示Train中第一个查询语句,train_length表示Train中匹配对的数量。
S202:将{q1,q2,...,qtrain_length}作为数据集,训练skip-gram模型,skip-gram的网络结构图见附图3,将skip-gram模型的输出长度调整为128。
具体实施时,所述S300中数据预处理的具体步骤为:
S301:以组件代码块数据库DB中的任意一个组件代码块ci为例。
S302:将ci的文本序列按照空格进行分词处理,得到ci的文本序列词向量Ci
S303:将ci的方法名按照下划线、驼峰命名法、大小写分词,得到ci的方法名词向量Mi
S304:将ci的调用的API(应用程序编程接口)序列按照下划线、驼峰命名法、大小写分词,得到ci的API序列词向量Ai
S305:对DB中所有组件代码块都进行S302至S304的操作,得到所有组件代码块的文本序列词向量C、方法名词向量M和序列词向量A,并组成元组词向量(C,M,A)。
S306:对Train中的组件代码块查询语句按照空格进行分词并截断到固定长度200(不够则补充占位符),获得查询语句的词向量Q={e1,e2,...,e200},为S600的使用做预处理,其中e1表示第一个单词对应的词向量,Q表示Train中任一组件代码块查询语句对应的词向量。对真实的组件代码块查询语句按照空格进行分词并截断到固定长度200(不够则补充占位符),获得查询语句的词向量
Figure BDA0003323311580000081
为S900的使用做预处理,其中
Figure BDA0003323311580000082
表示第一个单词对应的词向量。
具体实施时,所述S400中构造基于BERT的注意力网络的具体步骤为:
S401:构造输入层X。其维度表示为
Figure BDA0003323311580000083
S402:构造注意力表示层Attention,令注意力头部为12。注意力表示层有三个输入通道Q′、K′、V′,具体公式如下:
Figure BDA0003323311580000084
Figure BDA0003323311580000085
Figure BDA0003323311580000086
其中,WQ′,WK′,WV′分别为三个通道Q′、K′、V的权重矩阵,权重矩阵的维度表示为
Figure BDA0003323311580000087
最后缩放Q′和K′的点积大小,再利用softmax计算注意力分布,与V点乘得到单头注意力表示Zi,具体公式如下:
Figure BDA0003323311580000088
其中上标T为矩阵转置操作,Zi的维度表示为
Figure BDA0003323311580000091
最后拼接12个头的注意力表示,再通过
Figure BDA0003323311580000092
将维度线性缩放至
Figure BDA0003323311580000093
具体公式如下:
Z=[z1;z2;...;z12])
Figure BDA0003323311580000094
其中“;”表示拼接操作。
S403:构造前馈神经网络层FFN。每层多头注意力层都需要再通过一层的前馈神经网络将输出维度缩放至
Figure BDA0003323311580000095
S404:将S401至S403的三层结构合并为一个网络模块block,block结构如附图2所示。堆叠3个同样的block组成注意力网络。
具体实施时,所述S400中提取组件代码块的序列特征的具体步骤为:
S405:词向量的[CLS]表示。将任一组件代码块的元组词向量(Ci,Mi,Ai)为例,根据上下文进行[CLS]表示,即句子的开始插入符合BERT规定的[CLS](句首标识符),在分隔、结尾处插入[SEP](分隔符)。
S406:词向量的BERT词向量表示。将进行[CLS]表示的(Ci,Mi,Ai)输入在codesearchnet 1.0上训练的BERT模型,得到(Ci,Mi,Ai)的BERT词向量表示,需要调整BERT模型输出维度为
Figure BDA0003323311580000096
S407:将(Ci,Mi,Ai)的BERT词向量表示输入S404获得的注意力网络,得到输出后,取[CLS]对应的输出向量作为特征向量
Figure BDA0003323311580000097
S408:将特征向量
Figure BDA0003323311580000098
进行平均池化处理,得到序列特征向量
Figure BDA0003323311580000099
具体实施时,所述S500中提取组件代码块的结构特征的具体步骤为:
S501:利用python工具包javalang将所有组件代码块转换为抽象语法树;
S502:以其中一个组件代码块对应的抽象语法树为例,采样T条路径,得到路径向量P={p1,...,pT},其中pT表示第T条路径,T表示该语法抽象数从根节点到叶子节点不重复路径的数量;
S503:将路径向量P输入S202训练好的skip-gram模型,得到路径向量P的嵌入向量表示Pnodes。任一路径的嵌入向量
Figure BDA00033233115800000910
表示的是路径pi,即P中任意一条路径,其中nodel表示第l个节点的嵌入向量,l是该路径的长度;
S504:对于任一路径的嵌入向量表示
Figure BDA00033233115800000911
使用LSTM从前向编码得到隐状态表示序列:
Figure BDA0003323311580000101
其中
Figure BDA0003323311580000102
表示前向LSTM第l个节点的隐状态表示,即前向LSTM最后一个隐状态,
Figure BDA0003323311580000103
表示前向LSTM,并调整LSTM的输出维度为
Figure BDA0003323311580000104
S505:对于任一路径表示
Figure BDA0003323311580000105
使用LSTM从后向编码得到隐状态表示序列:
Figure BDA0003323311580000106
其中
Figure BDA0003323311580000107
定示后向LSTM第1个节点的隐状态表示,即后向LSTM最后一个隐状态,
Figure BDA0003323311580000108
表示后向LSTM,并调整LSTM的输出维度为
Figure BDA0003323311580000109
S506:拼接前向和后向二者的最后一个隐状态得到任一路径pi的节点向量表示:
Figure BDA00033233115800001010
其中,
Figure BDA00033233115800001011
是S504前向LSTM得到的最后一个隐状态输出,对应路径的尾节点;
Figure BDA00033233115800001012
是S505后向LSTM得到的最后一个隐状态输出,对应路径的头结点;
Figure BDA00033233115800001013
的维度为
Figure BDA00033233115800001014
S507:取路径pi上的首节点token w1和尾节点token wl,其中l是该路径的长度;
S508:利用驼峰命名法显式切割首尾token,得到首尾子词向量
Figure BDA00033233115800001015
子词向量的长度为子词数量,子词使用长度200的one-hot表示为词向量形式;
S509:加和子词向量获取token的向量表示;
Figure BDA00033233115800001016
其中,split(·)表示驼峰命名法的显式切割操作,wsubtokens表示子词向量,wsubtokens[s]表示取wsubtokens中子词s对应的词向量;对首尾子词向量都进行如上操作,即
Figure BDA00033233115800001017
S510:拼接首尾token的子词向量得到路径pi上token的向量表示:
Figure BDA00033233115800001018
encoded_tokens(pi)的维度为
Figure BDA00033233115800001019
S511:将路径节点向量表示和token向量表示进行拼接,得到完整的路径表示:
encoded_path(pi)=[encoded_path_lstm(pi);encoded_tokens(pi)]
encoded_path(pi)的维度为
Figure BDA00033233115800001020
S512:通过全连接层融合两部分特征,得到路径的融合表示:
zi=tanh(Win1(encoded_path(pi)))
其中,Win1表示全连接层,其维度为
Figure BDA0003323311580000111
tanh表示双切正切曲线激活函数;
S513、对T条路径的融合表示求和得到最终的抽象语法树的结构特征,其公式为:
Figure BDA0003323311580000112
其中,G表示的是S502中其中一个组件代码块的结构特征。
具体实施时,所述S600中进行多模态向量匹配的具体步骤为:
S601:以任一Q为例,将Q进行S405至S408的操作,获得Q的特征向量Q1与序列特征向量Q2
S602:复制Q1与Q2,与来自S408的所有
Figure BDA0003323311580000113
和S513的所有Gi,组成特征九元组
Figure BDA0003323311580000114
其中Gi与S513中的G同义;Ui表示任一组件代码块与查询语句组成的特征九元组,共有N个;这些特征九元组中的Q1与Q2都是相同的。
S603:将
Figure BDA0003323311580000115
分别视为匹配对,对每个匹配对独立计算余弦相似度,最终得到六个余弦相似度的得分六元组Vi=(score1,...,score6)。
S604:将查询语句向量Q={e1,e2,...,e200}输入skip-gram模型,得到Q的嵌入向量表示Qnodes={node1,node2,...,node200},通过LSTM得到查询文本的双向表示:
Figure BDA0003323311580000116
Figure BDA0003323311580000117
S605:拼接两个方向的LSTM的最后一个隐状态得到一个
Figure BDA0003323311580000118
向量表示:
Figure BDA0003323311580000119
S606:通过全连接层混合两个方向的特征:
Q3=tanh(Win2(hQ))
S607:将Gi与Q3进行余弦相似度计算,得到一个相似度匹配得分score7,用Q3替换Ui中的Gi、将score7加入Vi,得到新的特征九元组Ui和得分七元组Vi
Figure BDA00033233115800001110
Vi=(score1,...,score7)
具体实施时,所述S700中进行多属性决策的具体步骤为:
S701:将S607中的特征九元组Ui拼接,得到门控输入
Figure BDA0003323311580000121
Figure BDA0003323311580000122
其中
Figure BDA0003323311580000123
的维度为
Figure BDA0003323311580000124
S702:利用全连接网络混合9种特征:
Figure BDA0003323311580000125
其中Wf是维度为
Figure BDA0003323311580000126
的权重矩阵,Relu(·)为线性整流激活函数,
Figure BDA0003323311580000127
的维度为
Figure BDA0003323311580000128
S703:将混合后的特征
Figure BDA0003323311580000129
通过全连接计算得到长度为7的门控输入,分别对应7个专家得分的门控输入
Figure BDA00033233115800001210
Figure BDA00033233115800001211
其中Wout是维度为
Figure BDA00033233115800001212
的权重矩阵。
S703:利用sigmoid激活函数完成门控制,得到分数权重
Figure BDA00033233115800001213
Figure BDA00033233115800001214
其中,σ为sigmoid激活函数。
S704:利用点积融合7个分数,具体公式如下:
score=[score1;...;score7]
Figure BDA00033233115800001215
其中scorer表示score的转置,score是S701中特征九元组Ui的得分。
S705:循环S602至S704,直至计算完N个
Figure BDA00033233115800001216
得分,取最高的K个候选组件代码块作为结果。
具体实施时,所述S800中进行练该模型的具体步骤为:
S801:S800系列步骤属于训练模型操作,K值需要保持与S601中e的长度一致(一般取1),即训练时K需要匹配训练集中e的长度,而预测时(S900系列步骤)不需要。
S802:取训练集中任意一个匹配的正样本(Q,e),从Train中随机采样一个不匹配的负样本
Figure BDA00033233115800001217
Figure BDA00033233115800001218
与e相同,则重新抽取,其中Q表示经S306处理的q。
S803:将S601至S704视为整体,是训练一种基于多模态属性决策的代码搜索模型的一部分步骤。
S804:将S802中的两种样本输入S803中的整体,计算MarginRankingLoss损失函数:
Figure BDA0003323311580000131
其中θ为模型网络参数,即LSTM的模型参数与各权重矩阵的集合,δ是边界排序损失的边界参数。
S805:对
Figure BDA0003323311580000132
计算关于θ的梯度g。
S806:更新模型网络参数θ:
θ=θ-α·g
其中α为学习率。
S807:如果
Figure BDA0003323311580000133
收敛,则继续。
Figure BDA0003323311580000134
未收敛,则重复执行步骤S802至S806,最多重复执行epoch次。
S808:得到了一个可用的模型网络参数θ。
具体实施时,所述S900中输入可用模型的具体步骤为:
S901:恢复S800系列操作对K值的修改。
S902:将Qtrue作为S601的输入,执行S601至S705,得到得分最高的K个候选组件代码块。此时其中的各网络参数是S808中已经训练完成的模型网络参数θ。
S903:将S902得到的K个候选组件代码块组合为候选组件代码块集合CAND:
CAND=(cand1,cand2,...,candK)
其中cand1表示得分第一的候选组件代码块。
S904:将CAND返回给用户。

Claims (7)

1.一种基于多模态属性决策的代码搜索方法,其特征在于,包括以下步骤:
S1、对查询语句分别与数据库中的每个组件代码块组成待匹配数据对;
S2、对各个待匹配数据对进行预处理,获得元组词向量;
S3、通过基于BERT的注意力网络提取各个元组的序列特征;
S4、利用skip-gram网络提取各个元组的结构特征;
S5、针对每一元组的序列特征和结构特征,采用多模态向量匹配模型进行相似度匹配,得到相似度匹配结果;
S6、针对每一元组,基于获得的相似度匹配结果,利用门控机制对多属性得分进行输出控制,获得各元组的最终得分,并从高至低进行排序;
S7、选出排序靠前的K个最终得分对应的组件代码块组成候选组件代码块集反馈给用户,所述K≥1。
2.如权利要求1所述的一种基于多模态属性决策的代码搜索方法,其特征在于,
步骤S2具体包括:
S21、对查询语句文本序列按照空格进行分词处理,获得查询语句的词向量Q;
S22、对组件代码块文本序列按照空格进行分词处理,获得所有组件代码块的词向量{C1,C2,...,CN},其中CN表示第N个组件代码块的词向量;
S23、对组件代码块方法名按照下划线、驼峰命名法和大小写进行分词处理,获得所有组件代码块方法名的词向量{M1,M2,...,MN},其中MN表示第N个组件代码块方法名的词向量;
S24、对组件代码块调用的API序列按照下划线、驼峰命名法和大小写进行分词处理,获得所有组件代码块调用的API序列的词向量{A1,A2,...,AN},其中AN表示第N个组件代码块调用的API序列的词向量;
S25、将查询语句的词向量Q、组件代码块的词向量{C1,C2,...,CN}、组件代码块方法名的词向量{M1,M2,...,MN}、组件代码块调用的API序列的词向量{A1,A2,...,AN}组成待匹配数据对,作为元组词向量:S=(Q,C1,M1,A1),(Q,C2,M2,A2),...,(Q,CN,MN,AN)。
3.如权利要求1所述的一种基于多模态属性决策的代码搜索方法,其特征在于,
步骤S3中,所述基于BERT的注意力网络由多个网络结构块堆叠而成,每个所述网络结构块均包括输入层、注意力表示层和前馈神经网络层:
输入层,用于对输入的词向量与对应的位置向量按位相加,获得输入层词表示;
注意力表示层,用于通过多头注意力机制对输入层表示进行处理,获取多个注意力输出并对所有注意力输出进行拼接,将拼接后的多个注意力头部输出压缩至输入的维度;
前馈神经网络层,用于调节注意力表示层中每个注意力头的权重矩阵。
4.如权利要求3所述的一种基于多模态属性决策的代码搜索方法,其特征在于,
步骤S3中,所述提取各个元组的序列特征具体包括:
S31、针对各元组中的元素Ci、Mi、Ai的词向量根据上下文进行[CLS]表示,输入注意力网络后,获得经过[CLS]表示的词向量
Figure FDA0003323311570000021
S32、针对每一个元组,对经过[CLS]表示的词向量
Figure FDA0003323311570000022
进行平均池化处理,获得第i个元组的序列表示,作为该元组的序列特征
Figure FDA0003323311570000023
S33、将查询语句的词向量Q根据上下文进行[CLS]表示,输入注意力网络后,获得经过[CLS]表示的词向量Q1
S34、对经过[CLS]表示的词向量Q1进行平均池化处理,获得Q的序列表示,作为Q的序列特征Q2
5.如权利要求1所述的一种基于多模态属性决策的代码搜索方法,其特征在于,
步骤S4具体包括:
S41、利用python工具包javalang将所有组件代码块转换为抽象语法树;
S42、对抽象语法树采样T条路径,得到路径向量P={p1,...,pT},其中pT表示第T条路径,T表示该语法抽象数从根节点到叶子节点不重复路径的数量;
S43、将路径向量P输入skip-gram模型,得到路径向量P的嵌入向量表示Pnodes,对于任一路径表示
Figure FDA0003323311570000024
其表示的路径是pi,其中nodel表示第l个节点的嵌入向量,l是该路径的长度,pi是P中的任意一条路径;
S44、对于任一路径表示
Figure FDA0003323311570000025
使用LSTM从前向编码得到隐状态表示序列:
Figure FDA0003323311570000026
其中
Figure FDA0003323311570000027
表示前向LSTM第l个节点的隐状态表示,即前向LSTM最后一个隐状态,
Figure FDA0003323311570000028
表示前向LSTM;
S45、对于任一路径表示
Figure FDA0003323311570000029
使用LSTM从后向编码得到隐状态表示序列:
Figure FDA00033233115700000210
其中
Figure FDA00033233115700000211
表示后向LSTM第1个节点的隐状态表示,即后向LSTM最后一个隐状态,
Figure FDA00033233115700000212
表示后向LSTM;
S46、拼接前向和后向二者的最后一个隐状态,得到任一路径pi的节点向量表示:
Figure FDA00033233115700000213
其中,
Figure FDA0003323311570000031
是前向LSTM得到的最后一个隐状态输出,对应路径的尾节点;
Figure FDA0003323311570000032
是后向LSTM得到的最后一个隐状态输出,对应路径的头结点;
S47、取路径pi上首尾节点的token w1、wl,其中l是该路径的长度;利用驼峰命名法显式切割首尾token,得到首尾子词向量
Figure FDA0003323311570000033
其长度为子词数量,子词通过one-hot表示为词向量形式;
S48、加和子词向量获取token的向量表示;
Figure FDA0003323311570000034
其中,split(·)表示驼峰命名法的显式切割操作,wsubtokens表示子词向量,wsubtokens[s]表示取wsubtokens中子词s对应的词向量;
S49、拼接首尾token的子词向量得到路径pi上token的向量表示:
Figure FDA0003323311570000035
S410、将路径节点向量表示和token向量表示进行拼接,得到完整的路径表示:
encoded_path(pi)=[encoded_path_lstm(pi);encoded_tokens(pi)]
S411、通过全连接层融合两部分特征,得到路径的融合表示:
zi=tanh(Win1(encoded_path(pi)))
其中,Win1表示全连接层,tanh表示双切正切曲线激活函数;
S412、对T条路径的融合表示求和得到最终的抽象语法树向量表示G:
Figure FDA0003323311570000036
6.如权利要求1所述的一种基于多模态属性决策的代码搜索方法,其特征在于,
步骤S5具体包括:
S51、确定每一元组的特征九元组
Figure FDA0003323311570000037
其中,Q1为查询语句向量Q的特征向量,Q2为查询语句向量Q的序列特征向量,Gi表示元组的结构特征向量;
S52、将
Figure FDA0003323311570000038
分别视为匹配对,对每个匹配对独立计算余弦相似度,最终得到六个余弦相似度得分的六元组Vi=(score1,...,score6);
S53、将查询语句向量Q输入skip-gram模型,得到Q的嵌入向量表示Qnodes={node1,node2,...,nodel},通过LSTM得到查询文本的双向表示:
Figure FDA0003323311570000041
Figure FDA0003323311570000042
S54、拼接两个方向的LSTM的最后一个隐状态得到一个长256的向量表示,得到:
Figure FDA0003323311570000043
S55、通过全连接层混合两个方向的特征:
Q3=tanh(Win2(hQ))
其中,Win2表示全连接层;
S56、计算Gi与Q3的余弦相似度,最终得到一个相似度匹配得分score7,用Q3替换Ui中的Gi、将score7加入Vi,得到特征九元组Ui和得分七元组Vi
Figure FDA0003323311570000044
Vi=(score1,...,score7)。
7.如权利要求6所述的一种基于多模态属性决策的代码搜索方法,其特征在于,
步骤S6具体包括:
S61、拼接九元组特征Ui得到门控输入:
Figure FDA0003323311570000045
其中
Figure FDA0003323311570000046
是长256*9=2304的向量,“;”表示向量拼接;
S62、利用全连接网络混合9种特征,得到混合特征
Figure FDA0003323311570000047
Figure FDA0003323311570000048
其中Wf是2304×256的权重矩阵,Relu为线性整流激活函数;
S63、通过全连接网络得到门控输入向量
Figure FDA0003323311570000049
Figure FDA00033233115700000410
其中Wout是256×7的权重矩阵,将混合特征
Figure FDA00033233115700000411
通过全连接网络计算,得到长度为7的门控输入
Figure FDA00033233115700000412
分别对应7个专家得分的门控输入;
S64、利用sigmoid激活函数完成门控制,得到分数权重
Figure FDA00033233115700000413
Figure FDA00033233115700000414
其中,σ为sigmoid激活函数;
S65、基于分数权重
Figure FDA0003323311570000051
利用点积算子融合7个分数,获得相似度匹配分数scorefinal
Figure FDA0003323311570000052
其中,scoreT表示score的转置。
CN202111254147.XA 2021-10-27 2021-10-27 一种基于多模态属性决策的代码搜索方法 Active CN113901177B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111254147.XA CN113901177B (zh) 2021-10-27 2021-10-27 一种基于多模态属性决策的代码搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111254147.XA CN113901177B (zh) 2021-10-27 2021-10-27 一种基于多模态属性决策的代码搜索方法

Publications (2)

Publication Number Publication Date
CN113901177A true CN113901177A (zh) 2022-01-07
CN113901177B CN113901177B (zh) 2023-08-08

Family

ID=79027084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111254147.XA Active CN113901177B (zh) 2021-10-27 2021-10-27 一种基于多模态属性决策的代码搜索方法

Country Status (1)

Country Link
CN (1) CN113901177B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115577075A (zh) * 2022-10-18 2023-01-06 华中师范大学 一种基于关系图卷积网络的深度代码搜索方法

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110144995A1 (en) * 2009-12-15 2011-06-16 At&T Intellectual Property I, L.P. System and method for tightly coupling automatic speech recognition and search
US20120078891A1 (en) * 2010-09-28 2012-03-29 International Business Machines Corporation Providing answers to questions using multiple models to score candidate answers
WO2013075316A1 (en) * 2011-11-24 2013-05-30 Microsoft Corporation Interactive multi-modal image search
CN106095443A (zh) * 2016-06-14 2016-11-09 电子科技大学 一种基于c/c++代码库的api调用模式挖掘方法
US20190065589A1 (en) * 2016-03-25 2019-02-28 Quad Analytix Llc Systems and methods for multi-modal automated categorization
CN110826338A (zh) * 2019-10-28 2020-02-21 桂林电子科技大学 一种单选择门与类间度量的细粒度语义相似识别的方法
CN111159223A (zh) * 2019-12-31 2020-05-15 武汉大学 一种基于结构化嵌入的交互式代码搜索方法及装置
CN111382439A (zh) * 2020-03-28 2020-07-07 玉溪师范学院 基于多模态深度学习的恶意软件检测方法
CN111488137A (zh) * 2020-04-07 2020-08-04 重庆大学 一种基于共同注意力表征学习的代码搜索方法
CN111597371A (zh) * 2020-04-14 2020-08-28 广东工业大学 外观专利的多模态图像检索方法及系统
CN112051986A (zh) * 2020-08-26 2020-12-08 西安电子科技大学 基于开源知识的代码搜索推荐装置及方法
US10949907B1 (en) * 2020-06-23 2021-03-16 Price Technologies Inc. Systems and methods for deep learning model based product matching using multi modal data
CN112507065A (zh) * 2020-11-18 2021-03-16 电子科技大学 一种基于注释语义信息的代码搜索方法
CN112579477A (zh) * 2021-02-26 2021-03-30 北京北大软件工程股份有限公司 一种缺陷检测方法、装置以及存储介质
CN112800172A (zh) * 2021-02-07 2021-05-14 重庆大学 一种基于两阶段注意力机制的代码搜索方法
CN113297410A (zh) * 2021-07-26 2021-08-24 广东众聚人工智能科技有限公司 一种图像检索方法、装置、计算机设备及存储介质

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110144995A1 (en) * 2009-12-15 2011-06-16 At&T Intellectual Property I, L.P. System and method for tightly coupling automatic speech recognition and search
US20120078891A1 (en) * 2010-09-28 2012-03-29 International Business Machines Corporation Providing answers to questions using multiple models to score candidate answers
WO2013075316A1 (en) * 2011-11-24 2013-05-30 Microsoft Corporation Interactive multi-modal image search
US20190065589A1 (en) * 2016-03-25 2019-02-28 Quad Analytix Llc Systems and methods for multi-modal automated categorization
CN106095443A (zh) * 2016-06-14 2016-11-09 电子科技大学 一种基于c/c++代码库的api调用模式挖掘方法
CN110826338A (zh) * 2019-10-28 2020-02-21 桂林电子科技大学 一种单选择门与类间度量的细粒度语义相似识别的方法
CN111159223A (zh) * 2019-12-31 2020-05-15 武汉大学 一种基于结构化嵌入的交互式代码搜索方法及装置
CN111382439A (zh) * 2020-03-28 2020-07-07 玉溪师范学院 基于多模态深度学习的恶意软件检测方法
CN111488137A (zh) * 2020-04-07 2020-08-04 重庆大学 一种基于共同注意力表征学习的代码搜索方法
CN111597371A (zh) * 2020-04-14 2020-08-28 广东工业大学 外观专利的多模态图像检索方法及系统
US10949907B1 (en) * 2020-06-23 2021-03-16 Price Technologies Inc. Systems and methods for deep learning model based product matching using multi modal data
CN112051986A (zh) * 2020-08-26 2020-12-08 西安电子科技大学 基于开源知识的代码搜索推荐装置及方法
CN112507065A (zh) * 2020-11-18 2021-03-16 电子科技大学 一种基于注释语义信息的代码搜索方法
CN112800172A (zh) * 2021-02-07 2021-05-14 重庆大学 一种基于两阶段注意力机制的代码搜索方法
CN112579477A (zh) * 2021-02-26 2021-03-30 北京北大软件工程股份有限公司 一种缺陷检测方法、装置以及存储介质
CN113297410A (zh) * 2021-07-26 2021-08-24 广东众聚人工智能科技有限公司 一种图像检索方法、装置、计算机设备及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
XINGXING ZHANG等: "Manhattan siamese LSTM for question retrieval in community question answering", pages 661 - 677 *
YONGHE LU等: "Text representation model of scientific papers based on fusing multi-viewpoint information and its quality assessment", pages 6937 *
彭晓娅;周栋;: "跨语言词向量研究综述", no. 02, pages 4 - 8 *
罗养霞;: "选择和提升多属性特征识别恶意代码", no. 06, pages 150 - 154 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115577075A (zh) * 2022-10-18 2023-01-06 华中师范大学 一种基于关系图卷积网络的深度代码搜索方法
CN115577075B (zh) * 2022-10-18 2024-03-12 华中师范大学 一种基于关系图卷积网络的深度代码搜索方法

Also Published As

Publication number Publication date
CN113901177B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
CN110609891B (zh) 一种基于上下文感知图神经网络的视觉对话生成方法
Tan et al. Lstm-based deep learning models for non-factoid answer selection
CN112270193A (zh) 基于bert-flat的中文命名实体识别方法
CN111259127B (zh) 一种基于迁移学习句向量的长文本答案选择方法
CN109657239A (zh) 基于注意力机制和语言模型学习的中文命名实体识别方法
CN110647619A (zh) 一种基于问题生成和卷积神经网络的常识问答方法
CN113297364B (zh) 一种面向对话系统中的自然语言理解方法及装置
CN111145728A (zh) 语音识别模型训练方法、系统、移动终端及存储介质
CN112633364A (zh) 一种基于Transformer-ESIM注意力机制的多模态情绪识别方法
CN111897944B (zh) 基于语义空间共享的知识图谱问答系统
CN110516145B (zh) 一种基于句向量编码的信息搜索方法
CN112883722B (zh) 一种基于云数据中心分布式文本摘要方法
CN111428443A (zh) 一种基于实体上下文语义交互的实体链接方法
CN114241191A (zh) 一种基于跨模态自注意力的无候选框指代表达理解方法
CN114239574A (zh) 一种基于实体和关系联合学习的矿工违规行为知识抽取方法
CN116662500A (zh) 一种基于bert模型与外部知识图谱的问答系统构建方法
CN114254645A (zh) 一种人工智能辅助写作系统
CN115358289A (zh) 一种融合多类型知识库和推理技术的文本生成算法
CN113901177A (zh) 一种基于多模态属性决策的代码搜索方法
CN112950414A (zh) 一种基于解耦法律要素的法律文本表示方法
CN115357691B (zh) 一种语义检索方法及系统、设备和计算机可读存储介质
CN116561251A (zh) 一种自然语言处理方法
CN114429144B (zh) 一种运用辅助记忆的多样性机器翻译方法
CN115858728A (zh) 一种基于多模态数据的情感分析方法
CN113590745B (zh) 一种可解释的文本推断方法

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