具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例。相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下面将参考附图并结合实施例来详细说明本公开。
图1是根据本公开一些实施例的基于语句模型的接口文件推荐方法的一个应用场景的示意图。
在图1的应用场景中,首先,计算设备101根据目标程序咨询语料集102,对初始句向量语言模型103进行预训练,得到预训练句向量语言模型104。其次,计算设备101可以根据上述目标程序咨询语料集102、第一语料数据集和第二语料数据集,对上述预训练句向量语言模型104进行微调处理,得到句向量语言模型105。接着,计算设备101可以根据上述目标程序咨询语料集102和目标接口文件集106,构建接口文件使用信息库107。然后,计算设备101可以响应于接收到接口查询语句108,通过上述句向量语言模型105确定上述接口文件使用信息库107中每一接口文件使用信息与上述接口查询语句108的语义相似度,得到语义相似度集109。最后,计算设备101可以根据上述语义相似度集109和上述接口文件使用信息库107,生成接口文件推荐序列110。
需要说明的是,上述计算设备101可以是硬件,也可以是软件。当计算设备为硬件时,可以实现成多个服务器或终端设备组成的分布式集群,也可以实现成单个服务器或单个终端设备。当计算设备体现为软件时,可以安装在上述所列举的硬件设备中。其可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的计算设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的计算设备。
继续参考图2,示出了根据本公开的基于语句模型的接口文件推荐方法的一些实施例的流程200。该基于语句模型的接口文件推荐方法,包括以下步骤:
步骤201,根据目标程序咨询语料集,对初始句向量语言模型进行预训练,得到预训练句向量语言模型。
在一些实施例中,基于语句模型的接口文件推荐方法的执行主体(例如图1所示的计算设备101)可以以目标程序咨询语料集为模型的输入,对初始句向量语言模型进行预训练,得到预训练句向量语言模型。这里,初始句向量语言模型可以是指Sentence-BERT模型。例如,RoBERTa-base模型。这里,目标程序咨询语料集中的目标程序咨询语料可以是指从目标程序咨询平台中获取的与目标程序语言相关联的咨询语料。例如,目标程序咨询语料可以是指目标程序咨询平台中关于目标程序语言的问题咨询和问题回复。这里,目标程序咨询平台可以是指技术问答平台(Stack Overflow平台)。这里,目标程序语言可以是指计算机编程语言(JAVA)。Sentence-BERT模型是基于孪生网络结构训练的模型,是将两个句子分别输入到模型当中,获取句子的表征向量,然后直接优化句向量之间的余弦相似度损失,最终得到的句向量可以用于语义相似度计算。
在一些实施例的一些可选的实现方式中,根据目标程序咨询语料集,上述执行主体可以利用动态遮蔽语言和上述目标程序咨询语料集对上述初始句向量语言模型进行预训练,得到预训练句向量语言模型。这里,上述执行主体可以以RoBERTa-base模型为初始句向量语言模型,以目标程序咨询语料集为训练数据,采用动态遮蔽语言对RoBERTa-base模型进行预训练。在训练过程中,上述执行主体可以将数据(目标程序咨询语料集)复制为十等份,每份数据采用不同遮蔽方法(例如,动态掩码)。可以将每个目标程序咨询语料中的每个句子的单词转换为相应的标记(token),按照一定的遮蔽率对句子的token进行随机覆盖,被选中的所有token以80%的几率被替换为[mask]标记(比如,my dog is hairy->mydog is[mask]),以10%的几率保持不变(比如,my dog is hairy->my dog is hairy),以10%的几率替换为一个随机的token(比如,my dog is hairy->my dog is apple)。
步骤202,根据上述目标程序咨询语料集、第一语料数据集和第二语料数据集,对上述预训练句向量语言模型进行微调处理,得到句向量语言模型。
在一些实施例中,上述执行主体可以根据上述目标程序咨询语料集、第一语料数据集和第二语料数据集,对上述预训练句向量语言模型进行微调处理,得到句向量语言模型。这里,第一语料数据集可以是指AIINLI数据集。这里,AIINLI数据集是由SNLI数据集和MuItiNLI数据集组合形成的数据集。这里,微调处理可以是指模型微调。这里,第一语料数据集可以是指语义文本相似性(Semantic Textual Similarity,STS)数据集。这里,AIINLI数据集包含981383个句子对,句子对的标注分三类:蕴含、矛盾与中立。这里,AIINLI数据集中的句子对的标注“蕴含”可以表示通过前提推断出假设。这里,AIINLI数据集中的句子对的标注“矛盾”可以表示推断与假设相反。这里,AINLI数据集中的句子对的标注“中立”可以表示其它情况。这里,STS数据集包含8627个句子对,STS数据集中的句子对标注为0-5之间的数字,数字越大表示句子对的语义相似度越大。
实践中,根据上述目标程序咨询语料集、第一语料数据集和第二语料数据集,上述执行主体可以依次采用第一语料数据集(AIINLI数据集)、第二语料数据集(STS数据集)和上述目标程序咨询语料集,对预训练句向量语言模型进行微调:
第一步,利用上述第一语料数据集和第一损失函数对上述预训练句向量语言模型进行微调处理,得到第一微调预训练句向量语言模型。这里,上述执行主体可以利用上述第一语料数据集(AIINLI数据集),以第一损失函数(归一化指数函数,softmax函数)作为微调处理过程中的损失函数,对上述预训练句向量语言模型进行微调处理,得到第一微调预训练句向量语言模型(RoBERTa-base-AIINLI模型)。
第二步,利用上述第二语料数据集和第二损失函数对上述第一微调预训练句向量语言模型进行微调处理,得到第二微调预训练句向量语言模型。这里,上述执行主体可以利用上述第二语料数据集(STS数据集),以第二损失函数(余弦损失函数)作为微调处理过程中的损失函数,对上述第一微调预训练句向量语言模型进行微调处理,得到第二微调预训练句向量语言模型(RoBERTa-base-AIINLI-STS模型)。
第三步,利用上述目标程序咨询语料集对上述第二微调预训练句向量语言模型进行微调处理,得到句向量语言模型。这里,上述目标程序咨询语料集中的目标程序咨询语料分为主目标程序咨询语料(master问题)和从目标程序咨询语料(non-master问题)。上述目标程序咨询语料集中所有的non-master问题都指向某个master问题,两者构成重复问题对。这里,可以先去除掉用户评分小于10的non-master问题,构建重复问题对后,去掉Jaccard(Jaccard similarity coefficient)得分大于等于0.8的重复问题对。同时,可以通过RoBERTa-base-AIINLI-STS模型提取上述目标程序咨询语料集中目标程序咨询语料包括的问题标题的向量,用聚类算法对上述目标程序咨询语料集进行聚类,聚类的距离度量是问题标题向量之间的余弦相似度,针对每个master问题,在同一个聚类中采样生成负样本。实践中,上述执行主体可以利用上述目标程序咨询语料集,以余弦损失函数作为微调处理过程中的损失函数,对上述第二微调预训练句向量语言模型进行微调处理,得到句向量语言模型。这里,若两个目标程序咨询语料构成重复问题对,则这两个目标程序咨询语料描述了相同的编程任务,标注为1,否则标注为0。
步骤203,根据上述目标程序咨询语料集和目标接口文件集,构建接口文件使用信息库。
在一些实施例中,上述执行主体可以根据上述目标程序咨询语料集和目标接口文件集,构建接口文件使用信息库。这里,目标接口文件集中的目标接口文件可以是指与目标程序语言关联的接口文档。即,目标接口文件可以是指JAVA接口文档。
实践中,根据上述目标程序咨询语料集和目标接口文件集,上述执行主体可以通过以下步骤构建接口文件使用信息库:
第一步,从上述目标程序咨询语料集中选择满足第一预设条件的目标程序咨询语料作为第一目标程序咨询语料,得到第一目标程序咨询语料组。这里,第一预设条件可以是指目标程序咨询语料中包含接口信息(例如,API/api/接口等字样),且该目标程序咨询语料中的问题回复中包含了接口信息(例如,API/api/接口等字样)。即,该目标程序咨询语料为正样本。
第二步,从上述目标程序咨询语料集中选择满足第二预设条件的目标程序咨询语料作为第二目标程序咨询语料,得到第二目标程序咨询语料组。这里,第二预设条件可以是指目标程序咨询语料中步包含接口信息(例如,API/api/接口等字样),且该目标程序咨询语料中的问题回复中不包含接口信息(例如,API/api/接口等字样)。即,该目标程序咨询语料为负样本。
第三步,根据上述第一目标程序咨询语料组和上述第二目标程序咨询语料组,对上述句向量语言模型进行训练,得到二分类模型。实践中,以上述第一目标程序咨询语料组作为句向量语言模型的正训练样本,以上述第二目标程序咨询语料组作为句向量语言模型的负训练样本,可以将[CLS]标记位作为句向量语言模型输入的第一项,表示句子整体向量,将[CLS]标记位的输出接到softmax分类器上对句子类别(第一目标程序咨询语料/第二目标程序咨询语料)进行训练与预测。
第四步,通过上述二分类模型从上述目标程序咨询语料集中筛选出对应接口文件的目标程序咨询语料作为接口咨询语料,得到接口咨询语料集。实践中,上述执行主体可以用该二分类模型从目标程序咨询语料集中筛选出对应接口文件的目标程序咨询语料作为接口咨询语料,且去除包括的问题答复中不包含API实体类和对应的用户评分小于预设评分的接口咨询语料。这里,预设评分可以是1。从而,可以得到接口咨询语料集。
第五步,根据上述目标接口文件集,构建接口信息字典。实践中,首先,上述执行主体可以爬取并解析上述目标接口文件集中每一目标接口文件包括的接口名称。其中,上述接口名称包括API类名和API方法名。然后,可以再将所爬取解析出的各个接口名称进行组建,以构成接口信息字典。这里,JAVA编程规范中要求用驼峰命名法来对API类名和API方法名进行命名。
第六步,根据上述接口信息字典,提取出上述接口咨询语料集中每个接口咨询语料包括的接口名称作为目标接口名称,得到目标接口名称集。
实践中,上述第六步可以包括以下子步骤:
第一子步骤,对于上述接口咨询语料集中每个接口咨询语料,提取出上述接口咨询语料包括的问题回复超链接,以及确定上述问题回复超链接是否指向目标程序语言接口文档(JAVA接口文档)。响应于确定上述问题回复超链接指向目标程序语言接口文档,可以将目标程序语言接口文档中的API实体提取出来。
第二子步骤,利用正则表达式匹配所提取的每个API实体的接口名称(即,利用正则表达式匹配API类名和API方法名)。首先,可以利用正则表达式“([A-Z][a-z]*)+\.([a-z])+([A-Z][az]*)*”来匹配形如“HashMap.containsKey”的API方法名。然后,可以利用正则表达式“[A-Z][az]*([A-Z][a-z]*)+”来匹配形如“HashMap”的API类名。最后,可以将匹配到每个API实体的接口信息(API类名和API方法名)与接口信息字典中的接口名称进行二次匹配,去除无法匹配的接口名称。
第三子步骤,将匹配到的每个API方法名与匹配到的对应上述API方法名的API方法名进行组合处理,以生成组合接口名,得到组合接口名组。以及将组合接口名组中的每个组合接口名与接口信息字典中的接口名称进行二次匹配,去除无法匹配的组合接口名。实践中,上述执行主体可以采用组合的方式生成省略API类名的API方法名,对形如“containsKey”、“containsKey()”、“containsKey()”、“ContainsKey”的方法名,采用正则表达式匹配方法名称后,将匹配到的API方法名与第二子步骤中匹配到的对应上述API方法名API类名进行组合,再将组合后的名称与API字典(接口信息字典)中的名字进行二次匹配,去除无法匹配的名称。
第七步,对于上述接口咨询语料集中符合预设条件的每个接口咨询语料,将上述接口咨询语料与上述目标接口名称集中对应上述接口咨询语料的目标接口名称进行关联处理,得到接口咨询语料关系对。这里,预设条件可以是指接口咨询语料包括的问题回复超链接指向目标程序语言接口文档(JAVA接口文档)。这里,上述目标接口名称集中对应上述接口咨询语料的目标接口名称可以是指上述目标接口名称集中与上述接口咨询语料包括的问题回复超链接所指向的目标程序语言接口文档的名称相同的目标接口名称。实践中,上述执行主体可以将上述接口咨询语料与上述目标接口名称集中对应上述接口咨询语料的目标接口名称进行关联处理,得到接口咨询语料关系对(例如,<description,APIs>)。
第八步,根据所得到的各个接口咨询语料关系对,构建接口文件使用信息库。实践中,上述执行主体可以将所得到的各个接口咨询语料关系对进行组建,以生成接口文件使用信息库(即,API使用知识库)。
上述步骤203中的相关内容作为本公开的一个发明点,解决了背景技术提及的技术问题二“未对技术问答网站中的API问题与对应API问题的回复语料(答案)进行一致性调整,降低了所推荐的API的有效性”。降低了所推荐的API的有效性的因素往往如下:未对技术问答网站中的API问题与对应API问题的回复语料(答案)进行一致性调整,降低了所推荐的API的有效性。如果解决了上述因素,就能达到提高所推荐的API的有效性的效果。为了达到这一效果,本公开首先,通过上述二分类模型从上述目标程序咨询语料集中筛选出对应接口文件的目标程序咨询语料作为接口咨询语料,得到接口咨询语料集。由此,可以准确地识别出上述目标程序咨询语料集中与API相关的目标程序咨询语料。其次,根据上述目标接口文件集,构建接口信息字典。由此,便于后续确定技术问答网站中的API问题的回复语料(答案)是否与API问题对应(例如,回复语料中的接口名称与API问题中的API名称不一致/对应)。接着,根据上述接口信息字典,提取出上述接口咨询语料集中每个接口咨询语料包括的接口名称作为目标接口名称,得到目标接口名称集。由此,可以确定接口咨询语料包括的回复语料中的接口名称是否为接口信息字典中的接口名称。然后,对于上述接口咨询语料集中符合预设条件的每个接口咨询语料,将上述接口咨询语料与上述目标接口名称集中对应上述接口咨询语料的目标接口名称进行关联处理,得到接口咨询语料关系对。由此,保证了技术问答网站中的API问题与对应API问题的回复语料(目标接口名称)的一致性。最后,根据所得到的各个接口咨询语料关系对,构建接口文件使用信息库。由此,保证了技术问答网站中的API问题与对应API问题的回复语料(目标接口名称)的一致性,提高了接口咨询语料所推荐的API的有效性。
步骤204,响应于接收到接口查询语句,通过上述句向量语言模型确定上述接口文件使用信息库中每一接口文件使用信息与上述接口查询语句的语义相似度,得到语义相似度集。
在一些实施例中,上述执行主体可以响应于接收到接口查询语句,通过上述句向量语言模型确定上述接口文件使用信息库中每一接口文件使用信息与上述接口查询语句的语义相似度,得到语义相似度集。这里,接口查询语句可以是指用户输入的查询JAVA接口的语句。实践中,上述执行主体可以通过句向量语言模型确定接口查询语句与上述接口文件使用信息库中每一接口文件使用信息之间的余弦相似值(语义相似度)。从而,得到语义相似度集。
步骤205,根据上述语义相似度集和上述接口文件使用信息库,生成接口文件推荐序列。
在一些实施例中,根据上述语义相似度集和上述接口文件使用信息库,上述执行主体可以通过以下步骤生成接口文件推荐序列:
第一步,对上述语义相似度集进行降序处理,得到语义相似度序列。
第二步,从上述语义相似度序列中选取预设数目个语义相似度作为目标语义相似度,得到目标语义相似度序列。这里,对于预设数目的设定,不作限制。例如,预设数目可以是15。
第三步,将上述目标语义相似度序列中每个目标语义相似度对应的上述接口文件使用信息库中的接口文件使用信息确定为目标接口文件使用信息,得到目标接口文件使用信息组。
第四步,确定上述目标接口文件使用信息组中每个目标接口文件使用信息包括的目标接口名称与上述接口查询语句之间的语料相似度,得到语料相似度组。
实践中,上述执行主体可以通过以下公式确定上述目标接口文件使用信息组中每个目标接口文件使用信息包括的目标接口名称与上述接口查询语句之间的语料相似度:
其中,SimSO(Q,Api)表示上述目标接口文件使用信息包括的目标接口名称Api与上述接口查询语句Q之间的语料相似度。i表示上述目标接口文件使用信息组中目标接口文件使用信息包括的目标接口名称的序号。n表示上述目标接口文件使用信息组中包含上述目标接口名称的目标接口文件使用信息的数量。Ti表示上述目标接口文件使用信息组中包含上述目标接口名称的第i个目标接口文件使用信息。SimQues(Q,Ti)表示上述接口查询语句与第i个目标接口文件使用信息包括的目标接口名称之间的语料相似度。
第五步,对上述语料相似度组进行降序处理,得到语料相似度序列。
第六步,根据上述语料相似度序列,对上述目标接口文件使用信息组包括的各个目标接口名称进行排序,得到目标接口名称序列作为接口文件推荐序列。实践中,上述执行主体可以按照上述语料相似度序列的顺序,对上述目标接口文件使用信息组包括的各个目标接口名称进行排序,得到目标接口名称序列作为接口文件推荐序列。即,可以将接口文件推荐序列发送至上述接口查询语句的用户端。
本公开的上述各个实施例具有如下有益效果:通过本公开的一些实施例的基于语句模型的接口文件推荐方法,提高了所推荐的API的准确度。具体来说,造成所推荐的API不准确的原因在于:词向量模型无法准确地表示语句的语义信息,导致无法准确地确定查询语句与API相关问题之间的相似度,造成所推荐的API不准确。基于此,本公开的一些实施例的基于语句模型的接口文件推荐方法,首先,根据目标程序咨询语料集,对初始句向量语言模型进行预训练,得到预训练句向量语言模型。由此,便于后续准确地检测查询语句与API相关问题之间的相似度。其次,根据上述目标程序咨询语料集、第一语料数据集和第二语料数据集,对上述预训练句向量语言模型进行微调处理,得到句向量语言模型。由此,可以利用所训练出的句向量语言模型准确地检测出查询语句与API相关问题之间的相似度。然后,根据上述目标程序咨询语料集和目标接口文件集,构建接口文件使用信息库。由此,便于后续准确地推荐API。然后,响应于接收到接口查询语句,通过上述句向量语言模型确定上述接口文件使用信息库中每一接口文件使用信息与上述接口查询语句的语义相似度,得到语义相似度集。由此,可以准确地确定查询语句与接口文件使用信息库中每一接口文件使用信息(API相关问题)的相似度。最后,根据上述语义相似度集和上述接口文件使用信息库,生成接口文件推荐序列。由此,提高了所推荐的API的准确度。
进一步参考图3,示出了根据本公开的基于语句模型的接口文件推荐方法的另一些实施例。该基于语句模型的接口文件推荐方法,包括以下步骤:
步骤301,从目标程序咨询平台中获取对应目标程序语言的各个程序咨询语料作为程序咨询语料集。
在一些实施例中,基于语句模型的接口文件推荐方法的执行主体(例如图1所示的计算设备101)可以通过有线连接或无线连接的方式从目标程序咨询平台中获取对应目标程序语言的各个程序咨询语料作为程序咨询语料集。这里,目标程序咨询平台可以是指技术问答平台(Stack Overflow平台)。这里,目标程序语言可以是指计算机编程语言(JAVA)。这里,对应目标程序语言的各个程序咨询语料可以指包括了关于目标程序语言(例如,包含“<java>”以及相关版本如“<java-8>”、“<java-11>”标签)的问题咨询与问题回复的各个语句。
步骤302,对上述程序咨询语料集进行标准化处理,得到目标程序咨询语料集。
在一些实施例中,上述执行主体可以对上述程序咨询语料集进行标准化处理,得到目标程序咨询语料集。这里,标准化处理可以是指去除程序咨询语料集中每个程序咨询语料中的代码片段、HTML标记与转义字符,再对该程序咨询语料进行分词处理。这里,分词处理可以是指利用命名实体识别工具(NER)进行分词。
步骤303,从上述目标程序语言的服务端获取对应上述目标程序语言的各个接口文件作为接口文件集。
在一些实施例中,上述执行主体可以通过有线连接或无线连接的方式从上述目标程序语言的服务端获取对应上述目标程序语言的各个接口文件作为接口文件集。这里,上述目标程序语言的服务端可以是指管理目标程序语言网站的服务器。实践中,上述执行主体可以采用BeautifulSoup工具解析JAVA语言网站中的HTML页面,利用XPath规则定位、获取相应HTML页面中的元素并解析,以获取所有的API文档(接口文件)。
步骤304,对上述接口文件集进行标准化处理,得到目标接口文件集。
在一些实施例中,上述执行主体可以对上述接口文件集进行标准化处理,得到目标接口文件集。这里,标准化处理可以是指去除接口文件集中每个接口文件中的代码片段、HTML标记与转义字符,再对该接口文件进行分词处理。这里,分词处理可以是指利用命名实体识别工具(NER)进行分词。
步骤305,根据目标程序咨询语料集,对初始句向量语言模型进行预训练,得到预训练句向量语言模型。
步骤306,根据上述目标程序咨询语料集、第一语料数据集和第二语料数据集,对上述预训练句向量语言模型进行微调处理,得到句向量语言模型。
步骤307,根据上述目标程序咨询语料集和目标接口文件集,构建接口文件使用信息库。
步骤308,响应于接收到接口查询语句,通过上述句向量语言模型确定上述接口文件使用信息库中每一接口文件使用信息与上述接口查询语句的语义相似度,得到语义相似度集。
步骤309,根据上述语义相似度集和上述接口文件使用信息库,生成接口文件推荐序列。
在一些实施例中,步骤305-309的具体实现及所带来的技术效果可以参考图2对应的那些实施例中的步骤201-205,在此不再赘述。
从图3可以看出,与图2对应的一些实施例的描述相比,图3对应的一些实施例中的流程300可以完整提取出对应目标程序语言(JAVA)的接口文档,使得后续用户在进行接口查询时,可以更全面、准确地想用户推荐接口文档。
进一步参考图4,作为对上述各图所示方法的实现,本公开提供了一种基于语句模型的接口文件推荐装置的一些实施例,这些装置实施例与图2所示的那些方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,一些实施例的基于语句模型的接口文件推荐装置400包括:预训练单元401、微调单元402、构建单元403、确定单元404和生成单元405。其中,预训练单元401,被配置成根据目标程序咨询语料集,对初始句向量语言模型进行预训练,得到预训练句向量语言模型;微调单元402,被配置成根据上述目标程序咨询语料集、第一语料数据集和第二语料数据集,对上述预训练句向量语言模型进行微调处理,得到句向量语言模型;构建单元403,被配置成根据上述目标程序咨询语料集和目标接口文件集,构建接口文件使用信息库;确定单元404,被配置成响应于接收到接口查询语句,通过上述句向量语言模型确定上述接口文件使用信息库中每一接口文件使用信息与上述接口查询语句的语义相似度,得到语义相似度集;生成单元405,被配置成根据上述语义相似度集和上述接口文件使用信息库,生成接口文件推荐序列。
可以理解的是,该装置400中记载的诸单元与参考图2描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作、特征以及产生的有益效果同样适用于装置400及其中包含的单元,在此不再赘述。
下面参考图5,其示出了适于用来实现本公开的一些实施例的电子设备(例如图1中的计算设备101)500的结构示意图。本公开的一些实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图5中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的一些实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的一些实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的一些实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM502被安装。在该计算机程序被处理装置501执行时,执行本公开的一些实施例的方法中限定的上述功能。
需要说明的是,本公开的一些实施例中记载的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的一些实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的一些实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:根据目标程序咨询语料集,对初始句向量语言模型进行预训练,得到预训练句向量语言模型;根据上述目标程序咨询语料集、第一语料数据集和第二语料数据集,对上述预训练句向量语言模型进行微调处理,得到句向量语言模型;根据上述目标程序咨询语料集和目标接口文件集,构建接口文件使用信息库;响应于接收到接口查询语句,通过上述句向量语言模型确定上述接口文件使用信息库中每一接口文件使用信息与上述接口查询语句的语义相似度,得到语义相似度集;根据上述语义相似度集和上述接口文件使用信息库,生成接口文件推荐序列。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的一些实施例的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的一些实施例中的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括预训练单元、微调单元、构建单元、确定单元和生成单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,生成单元还可以被描述为“根据上述语义相似度集和上述接口文件使用信息库,生成接口文件推荐序列的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
以上描述仅为本公开的一些较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。