CN118259886A - 一种基于检索增强和温度损失的api序列推荐方法及装置 - Google Patents

一种基于检索增强和温度损失的api序列推荐方法及装置 Download PDF

Info

Publication number
CN118259886A
CN118259886A CN202410342821.7A CN202410342821A CN118259886A CN 118259886 A CN118259886 A CN 118259886A CN 202410342821 A CN202410342821 A CN 202410342821A CN 118259886 A CN118259886 A CN 118259886A
Authority
CN
China
Prior art keywords
api
sequence
query
model
encoder
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.)
Pending
Application number
CN202410342821.7A
Other languages
English (en)
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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202410342821.7A priority Critical patent/CN118259886A/zh
Publication of CN118259886A publication Critical patent/CN118259886A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于检索增强和温度损失的API序列推荐方法及装置,包括以下步骤:1:分析数据集数据,提取数据条目中自然语言查询的语义特征和API序列的数据特征;2:检索增强查询器,基于其自然语言查询的语义特征,查找与之最为相似的K个数据条目3:构建生成模型,采用预训练的Transformer模型作为序列到序列模型,生成API序列的输出分布;4:构建温度损失,使用温度损失计算API输出分布与正确API之间的差异,并通过反向传播将损失应用于模型的优化训练;5:API序列推荐。本发明能够基于自然语言查询搜索与其语义特征最为相似数据条目作为补充知识,能够基于温度损失更为有效的优化模型;生成模型的推荐结果API序列的准确率高、可靠性强。

Description

一种基于检索增强和温度损失的API序列推荐方法及装置
技术领域
本发明涉及软件工程服务推荐技术领域,尤其涉及一种基于检索增强和温度损失的API序列推荐方法及装置。
背景技术
在现代软件开发中,API(Application Programming Interface,应用程序编程接口)具有不可忽视的重要性。API使组织能够低成本的创建新产品和服务,同时允许开发人员轻松地将第三方应用程序集成到其软件中。API对于构建可靠、安全且可扩展的软件至关重要。
但是,随着可用API的数量不断增加,开发人员很难从海量的API中手动寻找出符合需求的API。然而,理解和有效利用不熟悉的API可能会给开发人员带来重大挑战。因此,获得有效的API序列可以在很大程度上帮助开发人员完成开发任务。因此,API推荐成为了开发人员迅速寻找符合需求的API序列的有效手段。
目前,针对API序列推荐方法主要有基于搜索匹配的API序列推荐方法和基于序列到序列模型的API序列推荐方法。基于搜索匹配的API序列推荐方法通常采用搜索和挖掘技术,提取API的使用模式来推荐API序列:Zhong等人提出了一种根据开发人员需求进行API模式挖掘的推荐方法MAPO;Raghothaman等人提出了一种以开源代码库API调用序列为基础的对需求进行词对齐匹配以获取结果的API推荐方法SWIM。基于序列到序列模型的API序列推荐方法通常将API推荐问题视作一种机器翻译问题,将自然语言查询视作源语言,将API序列视作目标语言,进行自然语言序列到API序列的转化:Gu等人提出了一种基于RNN编码器-解码器结构API推荐方法DeepAPI;Mohammad等人将基于预训练Transformers的模型应用于构建基于自然语言查询的API序列;James等人验证了Gu等人在Java数据集和他们新构建的Python数据集上的API学习任务的可重复性,并证明了基于Transformers的模型在API序列推荐上具有更好的性能。
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
现有技术中的API推荐方法主要基于搜索匹配或序列到序列模型,根据自然语言查询来推荐所对应的API序列。这些方法忽视了外部知识库的重要性,仅依赖于自然语言查询及训练好的模型进行API序列的推荐,无法利用到知识库中高质量的信息。并且,这些方法的模型没有考虑到API序列中不同位置的API的重要性。因此,现有方法推荐的API序列具有推荐准确率低、推荐可靠性差的问题。
发明内容
本发明旨在解决推荐结果API序列准确率低、可靠性差的难题,提供了一种基于检索增强和温度损失API推荐方法及装置。本发明基于检索增强技术,基于用户的自然语言查询执行词法匹配并计算相关性分数,并根据查询对外部知识库中的已有信息进行排序,选取与用户查询最相关的信息作为外部知识。进一步的,本发明将用户的自然语言查询和外部知识相结合,使用预训练Transformer模型进行训练。进而,通过采用自适应损失方法,自适应的调节API序列中不同位置、不同API的权重,以推荐符合用户需求的API序列。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
第一方面公开了一种基于检索增强和温度损失的API序列推荐方法,包括:
S1:获取原始数据集,原始数据包括多个数据条目,每个数据条目包括自然语言查询部分和API序列部分,对每个数据条目的自然语言查询部分进行文本预处理,得到查询的语义特征信息,对API序列部分进行数据过滤与统计,得到API的数据特征;
S2:构造检索增强查询器,其中,检索增强查询器包括文档库和匹配模块,文档库基于原始数据集中的每个数据条目构建得到,每个数据条目在文档库中为一个文档,匹配模块用于基于预设匹配算法计算查询Q与文档库的每一个文档的匹配分数,并根据计算出的匹配分数获取与查询Q最相似的前k个数据条目,作为辅助监督信息;
S3:构造生成模型,其中,使用预训练的Transformer模型作为生成模型,生成模型包括编码器、解码器和前馈网络层,编码器以输入数据条目中的自然语言查询与对应的辅助监督信息的拼接作为输入,并将其编码为编码器隐藏状态,解码器以编码器隐藏状态和输入数据条目中的API序列为输入,将其解码为解码器隐藏状态,前馈网络层用于将解码器隐藏状态映射为API序列的输出分布;
S4:对构造的生成模型进行训练,训练过程中采用温度损失计算API输出分布与正确API之间的差异,通过反向传播将损失用于模型的优化训练;
S5:利用训练好的生成模型和检索增强查询器进行API序列推荐。
在一种实施方式中,步骤S1对每个数据条目的自然语言查询部分进行文本预处理,得到查询的语义特征信息,包括:
对数据条目中的自然语言查询部分进行分词;
去除分词结果中的标点符号以及停用词的内容,然后进行词干提取、词性还原,得到查询的语义特征信息。
在一种实施方式中,步骤S1对API序列部分进行数据过滤与统计,得到API的数据特征,包括:
对数据条目中的API序列部分进行分隔,分离出单独的API并统计每个API出现的次数;
过滤无实际意义的API。
在一种实施方式中,步骤S2中检索增强查询器的匹配模块的具体处理过程包括:
以数据集中每个数据条目中的自然语言查询作为查询Q,基于BM25匹配算法,计算Q与检索增强查询器的文档库中的每一个文档的匹配分数BM25(D,Q),计算公式为:
其中,n是查询Q中的术语数量,qi是查询Q中的第i个术语,idf(qi)是逆文档频率,f(qi,D)是文档D中术语qi的频率,len(D)是文档D的长度,avg_len是所有文档的平均长度,k1和b1是匹配的超参数;
对计算出的所有匹配分数进行倒序排序,获取与查询Q语义最相似的前k个数据条目,作为查询Q的辅助监督信息。
在一种实施方式中,步骤S3包括:
S3.1:将输入数据条目中的自然语言查询与对应的辅助监督信息采用拼接的方式得到增强后的输入信息,以增强后的输入信息作为模型的输入:
其中,分别表示从文档库中检索到的语义相似的第1个数据条目的查询和API序列标签,分别为从文档库中检索到的语义相似的第k个数据条目的查询和API序列标签,[tq]与[ta]为分隔标记,为增强后的输入信息;
S3.2:对增强后的输入信息进行标记与嵌入,其中,增强后的输入信息中的查询被标记化为q1、qm分别表示第一个和第m1个标记后的查询tokens,m1代表标记后的查询tokens的长度,并将标记后的查询tokens经过嵌入层转化为张量矩阵Eq;增强后的输入信息中的API序列标签被标记化为a1别表示的第一个和第m2个标记后的API序列标签tokens,m2表示标记后的API序列标签tokens的长度,并将API标记后的API序列标签tokens经过嵌入层转化为标签矩阵Ea
S3.3:构建生成模型的编码器,使用基于预训练Transformer模型作为生成模型的编码器,并使用编码器将张量矩阵Eq转化为编码器隐藏状态He
He=Transformerencoder(Eq)
其中He是编码器最后一层的隐藏状态表示,Transformerencoder表示基于预训练Transformer的编码器;
S3.4:构建生成模型的解码器,使用基于预训练Transformer的模型作为生成模型的解码器,基于编码器隐藏状态ve和标签矩阵Ea生成解码器隐藏状态Hd
Hd=Transformerdecoder(Ea,He)
其中Hd是编码器最后一层的隐藏状态表示,Transformerdecoder表示基于预训练Transformer的解码器;
S3.5:构建输出层,使用前馈网络将解码器隐藏状态Hd映射为API字典维度中的概率分布P(v)。
在一种实施方式中,S4包括:
S4.1:构造生成模型的温度损失函数部分,针对于目标API序列,采用交叉熵损失函数作为衡量概率分布P(v)和实际标记矩阵Ea之间的差异:
其中P(·)表示基于查询和其前缀序列[a1,a2,...,ap-1]的概率分布,p表示前缀序列的位置索引,n表示前缀序列的长度,i表示API的字典序,V表示API字典的长度,表示序列中第p个位置上第i个API值,Tp表示API序列中位置为p的API的位置温度,Ti表示第i个API的频率温度,I(·)表示指示函数,当且仅当等于时返回1,表示第p个位置的真实API值;
S4.2:基于温度损失函数对生成模型进行训练,遍历训练集中的每个批次的数据,得到数据条目的损失并进行反向传播,在训练指定轮次之后,获得训练完毕的生成模型。
在一种实施方式中,步骤S5包括:
S5.1:基于用户输入的查询,调用构造好的检索增强查询器,得到与用户输入的查询语义相似的K个数据条目作为辅助监督信息;
S5.2:将用户输入的查询、辅助监督信息和已生成的API序列输入训练好的生成模型,得到当前时间步的API的概率分布P(v);
S5.3:根据API的概率分布,计算每个API在当前时间步的生成得分,在计算出每个API的得分之后,选取得分最高的b个API作为当前时间步的选择,其中,API在当前时间步的生成得分计算公式如下:
表示在时间步t下第i个API的生成得分,∑p(·)表示之前时间步所选择的前缀序列的API的累计生成得分,ap表示在已生成序列中第p个位置所选择的API,P(·)表示待计算得分的基于查询和其前缀序列[a1,a2,...,ap-1]的概率分布,b表示集束搜索中搜索宽度的超参数;
S5.4:将当前时间步的选择连接到已生成的API序列末尾,作为下一个时间步的输入;
S5.5:重复执行步骤S5.2-S5.4,直至生成结束符号,表示API序列生成完毕,并返回生成的API序列作为推荐结果。
基于同样的发明构思,本发明第二方面公开了一种基于检索增强和温度损失的API序列推荐装置,包括:
数据处理模块,用于获取原始数据集,原始数据包括多个数据条目,每个数据条目包括自然语言查询部分和API序列部分,对每个数据条目的自然语言查询部分进行文本预处理,得到查询的语义特征信息,对API序列部分进行数据过滤与统计,得到API的数据特征;
检索增强查询器构造模块,用于构造检索增强查询器,其中,检索增强查询器包括文档库和匹配模块,文档库基于原始数据集中的每个数据条目构建得到,每个数据条目在文档库中为一个文档,匹配模块用于基于预设匹配算法计算查询Q与文档库的每一个文档的匹配分数,并根据计算出的匹配分数获取与查询Q最相似的前k个数据条目,作为辅助监督信息;
生成模型构造模块,用于构造生成模型,其中,使用预训练的Transformer模型作为生成模型,生成模型包括编码器、解码器和前馈网络层,编码器以输入数据条目中的自然语言查询与对应的辅助监督信息的拼接作为输入,并将其编码为编码器隐藏状态,解码器以编码器隐藏状态和输入数据条目中的API序列为输入,将其解码为解码器隐藏状态,前馈网络层用于将解码器隐藏状态映射为API序列的输出分布;
模型训练模块,用于对构造的生成模型进行训练,训练过程中采用温度损失计算API输出分布与正确API之间的差异,通过反向传播将损失用于模型的优化训练;
API序列推荐模块,用于利用训练好的生成模型和检索增强查询器进行API序列推荐。
基于同样的发明构思,本发明第三方面一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
相对于现有技术,本发明的优点和有益的技术效果如下:
本发明公开的基于检索增强和温度损失的API序列推荐方法,分别对数据条目中的自然语言查询部分和API序列部分进行处理,得到查询的语义特征信息和API序列的数据特征信息;构建了检索增强查询器,根据用户输入的自然语言查询执行预设词法匹配并计算相关性分数,并根据查询对文档中的已有信息进行排序,选取与用户查询语义最相关的信息作为辅助监督信息。构建了生成模型,其包括编码器和解码器,其中,编码器逐个读取输入,将自然语言的API查询编码为基于时间步的编码器隐藏状态,解码器按时间步生成解码器隐藏状态,然后对生成模型进行训练,最终利用训练好的模型使用多样化集束搜索进行多样化API序列的输出。因此本发明能够基于自然语言推荐符合需求的API序列;并且在推荐结果API序列在保持准确性的前提下,能够具有很好的多样性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中基于检索增强和温度损失的API序列推荐方法的流程图,展示了本发明方法的各个步骤,其中主要包括处理原始数据集、构造检索增强查询器、构造生成模型、训练模型和API序列推荐等步骤。
图2为本发明实施例中构建的生成模型的结构示意图,本发明的检索增强查询器基于文档库查询语义最相似的数据条目,序列到序列模型使用基于预训练Transformer的编码器-解码器模型。模型在训练时使用温度损失优化模型,在生成时使用集束搜索生成API序列。
具体实施方式
本发明的目的是为了解决推荐结果API序列准确率低、推荐可靠性差的问题,提供了一种基于检索增强和温度损失的API序列推荐方法及装置,对原始数据集进行处理和分析,构造检索增强查询器获取与查询语义相似的序列作为补充知识,使用基于预训练Transformer模型作为序列到序列模型,并使用温度损失作为损失函数优化模型,最后使用集束搜索在生成阶段推荐API序列。
本发明的技术方案是:
1:分析数据集数据,提取数据条目中自然语言查询的语义特征和API序列的数据特征;2:构建检索增强查询器,基于其自然语言查询的语义特征,查找与之最为相似的K个数据条目,为生成模型提供辅助监督;3:构建生成模型,采用预训练的Transformer模型作为序列到序列模型,构建模型编码器处理查询输入,构建模型解码器解码为解码器隐藏状态,构建前馈网络层映射API序列的输出分布;4:构建温度损失,使用温度损失计算API输出分布与正确API之间的差异,并通过反向传播将损失应用于模型的优化训练;5:API序列推荐,基于用户提供的查询,通过检索增强查询器和训练好的生成模型获取模型的输出向量。在生成阶段,通过集束搜索推荐符合需求的API序列。
本发明的有益效果是:1)能够基于自然语言查询搜索与其语义特征最为相似数据条目作为补充知识,能够基于温度损失更为有效的优化模型;2)生成模型的推荐结果API序列的准确率高、可靠性强。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供了一种基于检索增强和温度损失的API序列推荐方法,请参见图1,该方法包括:
S1:获取原始数据集,原始数据包括多个数据条目,每个数据条目包括自然语言查询部分和API序列部分,对每个数据条目的自然语言查询部分进行文本预处理,得到查询的语义特征信息,对API序列部分进行数据过滤与统计,得到API的数据特征;
S2:构造检索增强查询器,其中,检索增强查询器包括文档库和匹配模块,文档库基于原始数据集中的每个数据条目构建得到,每个数据条目在文档库中为一个文档,匹配模块用于基于预设匹配算法计算查询Q与文档库的每一个文档的匹配分数,并根据计算出的匹配分数获取与查询Q最相似的前k个数据条目,作为辅助监督信息;
S3:构造生成模型,其中,使用预训练的Transformer模型作为生成模型,生成模型包括编码器、解码器和前馈网络层,编码器以输入数据条目中的自然语言查询与对应的辅助监督信息的拼接作为输入,并将其编码为编码器隐藏状态,解码器以编码器隐藏状态和输入数据条目中的API序列为输入,将其解码为解码器隐藏状态,前馈网络层用于将解码器隐藏状态映射为API序列的输出分布;
S4:对构造的生成模型进行训练,训练过程中采用温度损失计算API输出分布与正确API之间的差异,通过反向传播将损失用于模型的优化训练;
S5:利用训练好的生成模型和检索增强查询器进行API序列推荐。
具体来说,S1中对原始数据集进行处理后,得到的查询的语义特征信息、API的数据特征是为了构建用于模型训练的数据集。检索增强查询器的文档库包括原始数据集中的所有数据条目,对于每个数据条目,基于其自然语言查询的语义特征信息,寻找与之最相似的k个数据条目(文档),为生成模型提供辅助监督。
步骤S5是基于给定查询,使用检索增强查询器和生成模型得到模型的输出向量,具体地,使用集束搜索计算每个时间步内API的得分,直至序列生成完毕,得到符合需求的API序列。
在一种实施方式中,步骤S1对每个数据条目的自然语言查询部分进行文本预处理,得到查询的语义特征信息,包括:
对数据条目中的自然语言查询部分进行分词;
去除分词结果中的标点符号以及停用词的内容,然后进行词干提取、词性还原,得到查询的语义特征信息。
具体来说,基于基于原始数据集构造[自然语言查询,API序列]的序列对,其中每个序列对称为一个数据条目。自然语言查询为本发明模型的输入,API序列为输入的预期生成结果。对每个数据条目的自然语言查询部分进行文本预处理,可以通过下述方式来实现:
S1.1对数据条目中的自然语言查询部分进行分词,将连续的自然语言查询文本切割成词语,使模型能够理解文本的语义和结构信息;
S1.2:去除S1.1中的处理结果的标点符号以及停用词的内容,这些内容对文本的语义分析没有帮助,去除后可以减少文本数据的噪声,提高模型的准确性;
S1.3:对S1.2中的处理结果进行次干提取操作,采用缩减方法抽取词的词干形式。进而,使用词性还原技术采用转变方法将词干还原为一般形式,去除其中的词缀、后缀和屈折变化。这有助于减少词汇表的大小,并将相关单词归纳为同一个词根,得到查询的语义特征信息,从而提高模型的泛化能力。
在一种实施方式中,步骤S1对API序列部分进行数据过滤与统计,得到API的数据特征,包括:
对数据条目中的API序列部分进行分隔,分离出单独的API并统计每个API出现的次数;
过滤无实际意义的API。
具体来说,对数据条目中的API序列部分进行分隔,分离出单独的API并统计每个API出现的次数。进一步的,过滤无实际意义的API,去除API数据的噪声。
在一种实施方式中,步骤S2中检索增强查询器的匹配模块的具体处理过程包括:
以数据集中每个数据条目中的自然语言查询作为查询Q,基于BM25匹配算法,计算Q与检索增强查询器的文档库中的每一个文档的匹配分数BM25(D,Q),计算公式为:
其中,n是查询Q中的术语数量,qi是查询Q中的第i个术语,idf(qi)是逆文档频率,f(qi,D)是文档D中术语qi的频率,len(D)是文档D的长度,avg_len是所有文档的平均长度,k1和b1是匹配的超参数;
对计算出的所有匹配分数进行倒序排序,获取与查询Q语义最相似的前k个数据条目,作为查询Q的辅助监督信息。
具体实施过程中,利用检索增强查询器得到与查询语音相似的数据条目的实现过程可以是:
S2.1:遍历原始数据集中的每个数据条目,将其称为文档D。以数据条目作为文档值,以经过文本预处理后的自然语言查询作为文档索引,构建检索增强查询器的文档库。
S2.2:将待查询的问题Q进行文本预处理操作,将分词、词性还原等操作后的每个独立词根称为术语qi,构建检索增强查询器的输入部分。
S2.3:以数据集中每个数据条目中的自然语言查询为查询Q,在文档库中计算其与其他数据条目的得分BM25(D,Q),具体公式如前所示。
S2.4:对所有得分进行倒序排序,获取与查询语义最相似的前k个数据条目。
在一种实施方式中,步骤S3包括:
S3.1:将输入数据条目中的自然语言查询与对应的辅助监督信息采用拼接的方式得到增强后的输入信息,以增强后的输入信息作为模型的输入:
其中,分别表示从文档库中检索到的语义相似的第1个数据条目的查询和API序列标签,分别为从文档库中检索到的语义相似的第k个数据条目的查询和API序列标签,[tq]与[ta]为分隔标记,为增强后的输入信息;
S3.2:对增强后的输入信息进行标记与嵌入,其中,增强后的输入信息中的查询被标记化为q1、qm分别表示第一个和第m1个标记后的查询tokens,m1代表标记后的查询tokens的长度,并将标记后的查询tokens经过嵌入层转化为张量矩阵Eq;增强后的输入信息中的API序列标签被标记化为a1别表示的第一个和第m2个标记后的API序列标签tokens,m2表示标记后的API序列标签tokens的长度,并将API标记后的API序列标签tokens经过嵌入层转化为标签矩阵Ea
S3.3:构建生成模型的编码器,使用基于预训练Transformer模型作为生成模型的编码器,并使用编码器将张量矩阵Eq转化为编码器隐藏状态He
He=Transformerencoder(Eq)
其中He是编码器最后一层的隐藏状态表示,Transformerencoder表示基于预训练Transformer的编码器;
S3.4:构建生成模型的解码器,使用基于预训练Transformer的模型作为生成模型的解码器,基于编码器隐藏状态He和标签矩阵Ea生成解码器隐藏状态Hd
Hd=Transformerdecoder(Ea,He)
其中vd是编码器最后一层的隐藏状态表示,Transformerdecoder表示基于预训练Transformer的解码器;
S3.5:构建输出层,使用前馈网络将解码器隐藏状态Hd映射为API字典维度中的概率分布P(v)。
请参见图2,为本发明实施例中构建的生成模型的结构示意图。
具体来说,对于给定的数据条目,自然语言查询部分称为其API序列标签部分称为其在文档库中检索出的前K个文档称为D1,...,Dk,其中每个文档Di为[自然语言查询API序列]的序列对。通过上述步骤S3.1~3.5可以得到API序列的输出分布。
在一种实施方式中,S4包括:
S4.1:构造生成模型的温度损失函数部分,针对于目标API序列,采用交叉熵损失函数作为衡量概率分布P(v)和实际标记矩阵Ea之间的差异:
其中P(·)表示基于查询和其前缀序列[a1,a2,...,ap-1]的概率分布,p表示前缀序列的位置索引,n表示前缀序列的长度,i表示API的字典序,V表示API字典的长度,表示序列中第p个位置上第i个API值,Tp表示API序列中位置为p的API的位置温度,Ti表示第i个API的频率温度,I(·)表示指示函数,当且仅当等于时返回1,表示第p个位置的真实API值;
S4.2:基于温度损失函数对生成模型进行训练,遍历训练集中的每个批次的数据,得到数据条目的损失并进行反向传播,在训练指定轮次之后,获得训练完毕的生成模型。
具体来说,在损失函数中,每个API的位置温度受到其所在位置的影响,API位置的位置温度为:
Tp=e-p+1
其中,Tp为API序列中位置为p的API的位置温度。
API的频率温度与API的出现次数相关,基于API的出现次数计算每个API的频率温度,计算公式为:
其中,Ti表示第i个API的频率温度,ci表示第i个API在数据集中出现的次数。
在一种实施方式中,步骤S5包括:
S5.1:基于用户输入的查询,调用构造好的检索增强查询器,得到与用户输入的查询语义相似的K个数据条目作为辅助监督信息;
S5.2:将用户输入的查询、辅助监督信息和已生成的API序列输入训练好的生成模型,得到当前时间步的API的概率分布P(v);
S5.3:根据API的概率分布,计算每个API在当前时间步的生成得分,在计算出每个API的得分之后,选取得分最高的b个API作为当前时间步的选择,其中,API在当前时间步的生成得分计算公式如下:
表示在时间步t下第i个API的生成得分,∑p(·)表示之前时间步所选择的前缀序列的API的累计生成得分,ap表示在已生成序列中第p个位置所选择的API,P(·)表示待计算得分的基于查询和其前缀序列[a1,a2,...,ap-1]的概率分布,b表示集束搜索中搜索宽度的超参数;
S5.4:将当前时间步的选择连接到已生成的API序列末尾,作为下一个时间步的输入;
S5.5:重复执行步骤S5.2-S5.4,直至生成结束符号,表示API序列生成完毕,并返回生成的API序列作为推荐结果。
需要说明的是,集束搜索表示整个S5.2~S5.5的过程。
下面是应用本发明方法进行API序列推荐的具体实施例,以来自于Github上所搜集的真实环境下的Java和Python语言开发的数据集为例,并结合附图,详细描述本发明的实施过程,图1展示了本发明的系统整体结构图。
从Github上爬取所对应语言所编写的源代码文件,将其保存到数据库当中。对所爬取到的数据集进行筛选,去除其中的无意义项目,过滤其中的无用信息。为源代码中的每个方法构建一个抽象语法树。使用抽象语法树提取出方法的注释及其方法体内对应的API调用顺序,以此构建数据集,数据集的格式形如[自然语言查询,API序列]。
执行步骤1,基于原始数据集构造了自然语言查询和API序列的序列对,每个序列对代表一个数据条目。对自然语言查询进行分词处理,将连续的文本切割成词语,以便模型理解语义和结构信息。去除自然语言查询部分的标点符号和停用词,以降低噪声、提升模型准确性。对处理结果进行次干提取操作,采用缩减方法抽取词的词干形式,并使用词性还原技术将词干还原为一般形式,去除词缀、后缀和屈折变化,以减少词汇表大小,归纳相关单词为同一个词根,提高查询的语义特征信息,从而增强模型的泛化能力。对数据条目中的API序列进行分隔,提取出单独的API,并统计每个API的出现次数,进一步过滤无实际意义的API,以去除API数据的噪声。
执行步骤2,对数据集中的每个数据条目进行遍历,并将数据条目作为文档值,经过文本预处理后的自然语言查询作为文档索引,构建检索增强查询器的文档库。对待查询的问题进行文本预处理操作,包括分词、词性还原等,构建检索增强查询器的输入部分。基于BM25匹配算法,计算查询与数据集中每个文档的匹配分数。以数据集中每个数据条目中的自然语言查询为查询,在文档库中计算其与其他数据条目的匹配分数并对所有得分进行倒序排序,以获取与查询语义最相似的前K个数据条目。
执行步骤3,在给定数据条目的情况下,根据自然语言查询在文档库中检索出与查询语义最相似的前K个文档。根据原始查询和检索到的文档,采用拼接的方式构建模型的输入。通过将检索到的文档来增加原始查询的信息,得到增强后的输入,将此作为查询的补充知识。进行标记化与嵌入,将增强后的输入信息标记化经过嵌入层转化为矩阵,将该数据条目的标签也转化为矩阵。构建模型编码器,使用基于预训练Transformer的序列到序列模型作为生成模型的编码器部分,并使用编码器将张量矩阵转化为编码器隐藏状态。构建模型解码器,使用基于预训练Transformer的序列到序列模型作为生成模型的解码器部分。构建输出层。序列到序列推荐模型通过预测输入序列中每个位置的下一个标记来训练模型,使用前馈网络将解码器隐藏状态映射为API字典维度中的概率分布。
执行步骤4,在损失函数中,针对每个API位置,计算其位置温度,该温度受到其所在位置的影响。位置温度的计算基于API在序列中的位置,随着位置的增加,温度逐渐减小。根据API的出现次数,计算每个API的频率温度,用于衡量API在数据集中的频繁程度。构造生成模型的自适应损失函数部分,使用交叉熵损失函数衡量模型预测与实际标记之间的差异。损失函数中考虑了位置温度和频率温度,以更好地反映不同API在序列中的重要性。通过遍历训练集中的每个批次的数据,计算损失并进行反向传播,以训练模型。在经过指定轮次的训练后,获得训练完毕的生成模型。
执行步骤5,基于用户输入的查询,调用检索增强查询器,获取与其语义相似的K个数据条目作为补充知识。利用生成模型,输入查询、补充知识和已生成的API序列,得到当前时间步的API的概率分布。根据API的概率分布,计算每个API在当前时间步的生成得分,并利用集束搜索方法选取得分最高的b个API作为当前时间步的选择。接着,将当前时间步的选择连接到已生成的API序列末尾,作为下一个时间步的输入。继续重复直至生成结束符号,表示API序列生成完成。最后,将生成的API序列作为推荐结果返回。
实验结果
本实施例对本发明方案进行了性能验证。本实施例在从Github网站爬取的真实数据集上,进行了广泛的实验,以验证本发明的有效性。
为了评估本发明推荐方案的有效性,本实施例使用了多种代表性的推荐方法作为基准模型:
DeepAPI:一种基于RNN编码器-解码器架构的API推荐方法,将用户查询编码为固定长度的向量,并基于向量生成API序列。
BART4API:一种用于基于预训练Transformer结构的序列到序列推荐模型,在预训练阶段使用多种类型的噪声来破坏有关序列结构的信息来提升模型的准确度。
PLBART4API:一种能够执行广泛的程序和语言理解和生成任务的序列到序列推荐模型,通过使用程序语言语料库进行预训练。
T54API:在大型web数据集中预先训练的统一文本到文本Transformer模型,将翻译、分类、回归和摘要生成任务统一为文本到文本任务。
CodeT54API:一种统一的编码器-解码器结构的Transformer模型,使用从开发人员指定的标识符传递的代码语义,并在程序语言语料库上进行了预训练。
为了评估本发明推荐方案的有效性,本实施例使用了多种指标来衡量模型的准确性:
BLEU:评估候选序列与参考序列的接近程度,基于n-gram组合的数量来测量参考序列与候选序列的相似性,从而评估候选序列与参考序列的接近程度。
METEOR:一种基于候选序列和参考序列之间匹配的广义概念的机器翻译评估度量。METEOR使用精度、召回率和碎片度量的组合来计算这种匹配的分数,该度量旨在直接捕捉机器翻译中匹配的单词相对于参考的有序程度。
ROUGE:代表面向召回的最长公共子序列评价,通过将候选序列与参考序列进行比较来确定候选序列质量,对要评估的候选序列和参考序列之间的重叠单元的数量进行计数,例如n-gram、单词序列和单词对等。
表1实验结果对比
本实施例将本发明提出的推荐模型的性能与基准方法进行比较。表1显示了不同方法的三个性能指标的实验结果。
对于基准模型,观察到DeepAPI的性能明显较差,这是由于该方法没有利用基于预训练的Transformer模型来作为序列到序列模型,无法从预训练中获取自然语言的语义特征。而BART与T5的性能要略弱于它们在程序语言语料库上预训练过的模型PLBART和CodeT5,这是因为在程序语言语料库上预训练使得PLBART和CodeT5对程序语言领域的语法和语义有更深入的理解,而通用领域的预训练数据可能不够涵盖程序语言的特殊语境。
与所有基准模型相比,本发明将使用了检索增强作为补充知识,并采用温度损失作为损失函数,实现了更好的推荐性能。本发明在所有准确性指标上明显优于其他模型。在DAL数据集上,本发明的BLEU指标在Top-5和Top-10的推荐结果上要领先于最佳基准模型2.90%和3.61%,METEOR指标在Top-5和Top-10的推荐结果上提升了2.46%和3.25%,ROUGE指标在Top-5和Top-10的推荐结果上分别增加了1.44%和2.01%。而在DALR数据集上,BLEU指标分别提升了17.96%和17.92%,METEOR指标分别提升了16.08%和15.98%,ROUGE指标分别提升了11.47%和10.74%。
由此可知,本发明方案在API序列推荐的准确性上具有明显优势。
实施例二
基于同样的发明构思,本实施例公开了一种基于检索增强和温度损失的API序列推荐装置,包括:
数据处理模块,用于获取原始数据集,原始数据包括多个数据条目,每个数据条目包括自然语言查询部分和API序列部分,对每个数据条目的自然语言查询部分进行文本预处理,得到查询的语义特征信息,对API序列部分进行数据过滤与统计,得到API的数据特征;
检索增强查询器构造模块,用于构造检索增强查询器,其中,检索增强查询器包括文档库和匹配模块,文档库基于原始数据集中的每个数据条目构建得到,每个数据条目在文档库中为一个文档,匹配模块用于基于预设匹配算法计算查询Q与文档库的每一个文档的匹配分数,并根据计算出的匹配分数获取与查询Q最相似的前k个数据条目,作为辅助监督信息;
生成模型构造模块,用于构造生成模型,其中,使用预训练的Transformer模型作为生成模型,生成模型包括编码器、解码器和前馈网络层,编码器以输入数据条目中的自然语言查询与对应的辅助监督信息的拼接作为输入,并将其编码为编码器隐藏状态,解码器以编码器隐藏状态和输入数据条目中的API序列为输入,将其解码为解码器隐藏状态,前馈网络层用于将解码器隐藏状态映射为API序列的输出分布;
模型训练模块,用于对构造的生成模型进行训练,训练过程中采用温度损失计算API输出分布与正确API之间的差异,通过反向传播将损失用于模型的优化训练;
API序列推荐模块,用于利用训练好的生成模型和检索增强查询器进行API序列推荐。
由于本发明实施例二所介绍的装置为实施本发明实施例一中基于检索增强和温度损失的API序列推荐方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的装置都属于本发明所欲保护的范围。
实施例三
基于同一发明构思,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现实施例一所述的方法。
由于本发明实施例三所介绍的方法为利用本发明实施例一中基于检索增强和温度损失的API序列推荐方法所构建的模型,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该模型的具体应用,故而在此不再赘述。凡是本发明实施例一中模型的评估方法都属于本发明所欲保护的范围。
实施例四
本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例一所述的方法。
由于本发明实施例四所介绍的计算机可读存储介质为实施本发明实施例一中基于检索增强和温度损失的API序列推荐方法所采用的计算机可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种基于检索增强和温度损失的API序列推荐方法,其特征在于,包括:
S1:获取原始数据集,原始数据包括多个数据条目,每个数据条目包括自然语言查询部分和API序列部分,对每个数据条目的自然语言查询部分进行文本预处理,得到查询的语义特征信息,对API序列部分进行数据过滤与统计,得到API的数据特征;
S2:构造检索增强查询器,其中,检索增强查询器包括文档库和匹配模块,文档库基于原始数据集中的每个数据条目构建得到,每个数据条目在文档库中为一个文档,匹配模块用于基于预设匹配算法计算查询Q与文档库的每一个文档的匹配分数,并根据计算出的匹配分数获取与查询Q最相似的前k个数据条目,作为辅助监督信息;
S3:构造生成模型,其中,使用预训练的Transformer模型作为生成模型,生成模型包括编码器、解码器和前馈网络层,编码器以输入数据条目中的自然语言查询与对应的辅助监督信息的拼接作为输入,并将其编码为编码器隐藏状态,解码器以编码器隐藏状态和输入数据条目中的API序列为输入,将其解码为解码器隐藏状态,前馈网络层用于将解码器隐藏状态映射为API序列的输出分布;
S4:对构造的生成模型进行训练,训练过程中采用温度损失计算API输出分布与正确API之间的差异,通过反向传播将损失用于模型的优化训练;
S5:利用训练好的生成模型和检索增强查询器进行API序列推荐。
2.如权利要求1所述的基于检索增强和温度损失的API序列推荐方法,其特征在于,步骤S1对每个数据条目的自然语言查询部分进行文本预处理,得到查询的语义特征信息,包括:
对数据条目中的自然语言查询部分进行分词;
去除分词结果中的标点符号以及停用词的内容,然后进行词干提取、词性还原,得到查询的语义特征信息。
3.如权利要求1所述的基于检索增强和温度损失的API序列推荐方法,其特征在于,步骤S1对API序列部分进行数据过滤与统计,得到API的数据特征,包括:
对数据条目中的API序列部分进行分隔,分离出单独的API并统计每个API出现的次数;
过滤无实际意义的API。
4.如权利要求1所述的基于检索增强和温度损失的API序列推荐方法,其特征在于,步骤S2中检索增强查询器的匹配模块的具体处理过程包括:
以数据集中每个数据条目中的自然语言查询作为查询Q,基于BM25匹配算法,计算Q与检索增强查询器的文档库中的每一个文档的匹配分数BM25(D,Q),计算公式为:
其中,n是查询Q中的术语数量,qi是查询Q中的第i个术语,idf(qi)是逆文档频率,f(qi,D)是文档D中术语qi的频率,len(D)是文档D的长度,avg_len是所有文档的平均长度,k1和b1是匹配的超参数;
对计算出的所有匹配分数进行倒序排序,获取与查询Q语义最相似的前k个数据条目,作为查询Q的辅助监督信息。
5.如权利要求1所述的基于检索增强和温度损失的API序列推荐方法,其特征在于,步骤S3包括:
S3.1:将输入数据条目中的自然语言查询与对应的辅助监督信息采用拼接的方式得到增强后的输入信息,以增强后的输入信息作为模型的输入:
其中,分别表示从文档库中检索到的语义相似的第1个数据条目的查询和API序列标签,分别为从文档库中检索到的语义相似的第k个数据条目的查询和API序列标签,[tq]与[ta]为分隔标记,为增强后的输入信息;
S3.2:对增强后的输入信息进行标记与嵌入,其中,增强后的输入信息中的查询被标记化为q1、qm分别表示第一个和第m1个标记后的查询tokens,m1代表标记后的查询tokens的长度,并将标记后的查询tokens经过嵌入层转化为张量矩阵Eq;增强后的输入信息中的API序列标签被标记化为a1别表示的第一个和第m2个标记后的API序列标签tokens,m2表示标记后的API序列标签tokens的长度,并将API标记后的API序列标签tokens经过嵌入层转化为标签矩阵Ea
S3.3:构建生成模型的编码器,使用基于预训练Transformer模型作为生成模型的编码器,并使用编码器将张量矩阵Eq转化为编码器隐藏状态He
He=Transformerencoder(Eq)
其中He是编码器最后一层的隐藏状态表示,Transformerencoder表示基于预训练Transformer的编码器;
S3.4:构建生成模型的解码器,使用基于预训练Transformer的模型作为生成模型的解码器,基于编码器隐藏状态He和标签矩阵Ea生成解码器隐藏状态Hd
Hd=Transformerdecoder(Ea,He)
其中Hd是编码器最后一层的隐藏状态表示,Transformerdecoder表示基于预训练Transformer的解码器;
S3.5:构建输出层,使用前馈网络将解码器隐藏状态Hd映射为API字典维度中的概率分布P(v)。
6.如权利要求1所述的基于检索增强和温度损失的API序列推荐方法,其特征在于,S4包括:
S4.1:构造生成模型的温度损失函数部分,针对于目标API序列,采用交叉熵损失函数作为衡量概率分布P(v)和实际标记矩阵Ea之间的差异:
其中P(·)表示基于查询和其前缀序列[a1,a2,…,ap-1]的概率分布,p表示前缀序列的位置索引,n表示前缀序列的长度,i表示API的字典序,V表示API字典的长度,表示序列中第p个位置上第i个API值,Tp表示API序列中位置为p的API的位置温度,Ti表示第i个API的频率温度,I(·)表示指示函数,当且仅当等于时返回1,表示第p个位置的真实API值;
S4.2:基于温度损失函数对生成模型进行训练,遍历训练集中的每个批次的数据,得到数据条目的损失并进行反向传播,在训练指定轮次之后,获得训练完毕的生成模型。
7.如权利要求1所述的基于检索增强和温度损失的API序列推荐方法,其特征在于,步骤S5包括:
S5.1:基于用户输入的查询,调用构造好的检索增强查询器,得到与用户输入的查询语义相似的K个数据条目作为辅助监督信息;
S5.2:将用户输入的查询、辅助监督信息和已生成的API序列输入训练好的生成模型,得到当前时间步的API的概率分布P(v);
S5.3:根据API的概率分布,计算每个API在当前时间步的生成得分,在计算出每个API的得分之后,选取得分最高的b个API作为当前时间步的选择,其中,API在当前时间步的生成得分计算公式如下:
表示在时间步t下第i个API的生成得分,∑p(·)表示之前时间步所选择的前缀序列的API的累计生成得分,ap表示在已生成序列中第p个位置所选择的API,P(·)表示待计算得分的基于查询和其前缀序列[a1,a2,…,ap-1]的概率分布,b表示集束搜索中搜索宽度的超参数;
S5.4:将当前时间步的选择连接到已生成的API序列末尾,作为下一个时间步的输入;
S5.5:重复执行步骤S5.2-S5.4,直至生成结束符号,表示API序列生成完毕,并返回生成的API序列作为推荐结果。
8.一种基于检索增强和温度损失的API序列推荐装置,其特征在于,包括:
数据处理模块,用于获取原始数据集,原始数据包括多个数据条目,每个数据条目包括自然语言查询部分和API序列部分,对每个数据条目的自然语言查询部分进行文本预处理,得到查询的语义特征信息,对API序列部分进行数据过滤与统计,得到API的数据特征;
检索增强查询器构造模块,用于构造检索增强查询器,其中,检索增强查询器包括文档库和匹配模块,文档库基于原始数据集中的每个数据条目构建得到,每个数据条目在文档库中为一个文档,匹配模块用于基于预设匹配算法计算查询Q与文档库的每一个文档的匹配分数,并根据计算出的匹配分数获取与查询Q最相似的前k个数据条目,作为辅助监督信息;
生成模型构造模块,用于构造生成模型,其中,使用预训练的Transformer模型作为生成模型,生成模型包括编码器、解码器和前馈网络层,编码器以输入数据条目中的自然语言查询与对应的辅助监督信息的拼接作为输入,并将其编码为编码器隐藏状态,解码器以编码器隐藏状态和输入数据条目中的API序列为输入,将其解码为解码器隐藏状态,前馈网络层用于将解码器隐藏状态映射为API序列的输出分布;
模型训练模块,用于对构造的生成模型进行训练,训练过程中采用温度损失计算API输出分布与正确API之间的差异,通过反向传播将损失用于模型的优化训练;
API序列推荐模块,用于利用训练好的生成模型和检索增强查询器进行API序列推荐。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一项权利要求所述的方法。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7中任一项权利要求所述的方法。
CN202410342821.7A 2024-03-25 2024-03-25 一种基于检索增强和温度损失的api序列推荐方法及装置 Pending CN118259886A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410342821.7A CN118259886A (zh) 2024-03-25 2024-03-25 一种基于检索增强和温度损失的api序列推荐方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410342821.7A CN118259886A (zh) 2024-03-25 2024-03-25 一种基于检索增强和温度损失的api序列推荐方法及装置

Publications (1)

Publication Number Publication Date
CN118259886A true CN118259886A (zh) 2024-06-28

Family

ID=91612516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410342821.7A Pending CN118259886A (zh) 2024-03-25 2024-03-25 一种基于检索增强和温度损失的api序列推荐方法及装置

Country Status (1)

Country Link
CN (1) CN118259886A (zh)

Similar Documents

Publication Publication Date Title
AU2019263758B2 (en) Systems and methods for generating a contextually and conversationally correct response to a query
Qin et al. A survey on text-to-sql parsing: Concepts, methods, and future directions
CN101878476B (zh) 用于查询扩展的机器翻译
CN110851584B (zh) 一种法律条文精准推荐系统和方法
CN111666764B (zh) 一种基于XLNet的自动摘要方法与装置
CN114911917B (zh) 资产元信息搜索方法、装置、计算机设备及可读存储介质
CN112183094A (zh) 一种基于多元文本特征的中文语法查错方法及系统
CN112307182B (zh) 一种基于问答系统的伪相关反馈的扩展查询方法
JP2014120053A (ja) 質問応答装置、方法、及びプログラム
CN112860879A (zh) 一种基于联合嵌入模型的代码推荐方法
CN108491407B (zh) 一种面向代码检索的查询扩展方法
CN113761890A (zh) 一种基于bert上下文感知的多层级语义信息检索方法
CN114818717A (zh) 融合词汇和句法信息的中文命名实体识别方法及系统
CN117609477B (zh) 一种基于领域知识的大模型问答方法和装置
CN113269477B (zh) 一种科研项目查询评分模型训练方法、查询方法及装置
CN111339272A (zh) 代码缺陷报告检索方法及装置
Groza et al. Reference information extraction and processing using random conditional fields
CN115203206A (zh) 数据内容搜索方法、装置、计算机设备及可读存储介质
CN115718791A (zh) 文本元素的特定性排序及其应用
Alwaneen et al. Stacked dynamic memory-coattention network for answering why-questions in Arabic
CN115238705A (zh) 语义解析结果重排序方法及系统
Nghiem et al. Which one is better: presentation-based or content-based math search?
CN118259886A (zh) 一种基于检索增强和温度损失的api序列推荐方法及装置
CN117421392B (zh) 一种基于词级对齐的代码搜索方法及装置
Olivo et al. CRFPOST: Part-of-Speech Tagger for Filipino Texts using Conditional Random Fields

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination