【摘 要】
:
源代码搜索是指根据自然语言查询语句获取对应的函数代码片段。其中主要涉及了自然语言处理技术,并通过将自然语言处理技术引入到源代码文本上,实现跨越自然语言与源代码两种模态形式进行搜索。现有的方法基于传统的序列表示模型分别处理自然语言语句与源代码文本输出形成向量表征形式,经过相似性比对实现搜索任务。但传统的序列表示模型例如词包模型、循环神经网络模型等对语义的特征能力抽取不足,而源代码信息含量对比自然语言
论文部分内容阅读
源代码搜索是指根据自然语言查询语句获取对应的函数代码片段。其中主要涉及了自然语言处理技术,并通过将自然语言处理技术引入到源代码文本上,实现跨越自然语言与源代码两种模态形式进行搜索。现有的方法基于传统的序列表示模型分别处理自然语言语句与源代码文本输出形成向量表征形式,经过相似性比对实现搜索任务。但传统的序列表示模型例如词包模型、循环神经网络模型等对语义的特征能力抽取不足,而源代码信息含量对比自然语言文本而言更加稀疏,需要更强的特征抽取能力。基于上述问题,本文引入了自注意力模型,设计并实现了基于自注意力的源代码搜索模型,通过使用Transformer编码器作为特征抽取器将序列数据表示为向量形式,最终将自然语言与源代码向量联合输入多层感知机计算相似性得分。在此基础上,本文还训练一个基于BERT结构的自编码语言模型,从而获得一个能够较好理解代码的源代码语言模型用于更好的抽取代码语义特征。最终,将原本的Transformer编码器替换为预训练语言模型完成代码特征抽取工作,实现本文目标的源代码搜索模型。本文在六种不同的编程语言上进行了实验,基于预训练语言模型的源代码搜索模型均可以取得非常优秀的效果,例如在Python语言上实现了 0.74的MRR得分,对比基于注意力的模型提升了17%。同时还探索了预训练语言模型在代码填词、代码补全任务上的效果,以及若干种不同结构的源代码搜索模型效果对比,证明了预训练源代码语言模型的可行性以及本文设计的搜索模型的有效性。
其他文献
胚胎干细胞是从胚胎发育早期的囊胚的内细胞团内分离出来的一类细胞。胚胎干细胞的基本特性是能够自我更新和具有全能性。自我更新是指在特定的培养条件下,胚胎干细胞具有无限增殖的能力。全能性是指其能分化为体内源自三个胚层的所有类型的细胞。它的这些基本特征使其在理论研究以及人类疾病的治疗方面具有多种重要应用。研究表明,在胚胎干细胞表面存在特异的分子,可以作为胚胎干细胞分离、鉴定以及纯化的标志物。然而,目前已经
近年来,目标检测算法不断推陈出新,检测速度与识别精度都有了很大的提升。单阶段的检测模型形成了一个相对固定的算法框架,但模型本身存在一些缺点和不足。首先,单阶段目标检测模型采用人为设定参数的方法生成检测边框,容易出现检测边框泛化性差的问题,造成模型在不同数据集的模型性能差异很大。同时,模型的检测边框在回归过程中,边框回归损失值并不能很好的反应出边框回归效果的真实好坏。具有相同回归损失值的边框的回归效
随着互联网和大数据的快速发展,全球每时每刻都在产生海量的,结构化或者非结构化的数据,这些数据格式多样化,有图片,文本,音频,视频等等。由于数据的多样化以及数据表示的多样性,大数据不经过结构化处理在许多情况下将无法有效的应用。本文重点研究多源异构的非结构化、半结构化初等数学领域数据如何表示为结构化数据,并依据数学领域知识图谱构建的方式构建初等数学概念知识图谱。然后将构建完成的概念知识图谱应用到纯数学
近年来云计算发展越来越迅猛,并在大流行中对全世界的复苏发挥重要作用,而虚拟化作为云计算的关键技术之一,也在不断地发展,作为软件虚拟化应用之一的桌面虚拟化技术在企业中也得到更广泛地使用。与此同时,Android手机全球出货量趋于收紧,受大流行影响,这一情况进一步加剧。目前市面上桌面虚拟化技术大多面向传统PC系统,缺乏对移动端系统的支持。Android手机长期受困于恶意程序偷取用户隐私现象;不仅如此,
随着中国城市化进程的加快,城市汽车保有量不断增加,城市交通需求呈现增长态势,引发出交通拥堵、交通事故等一系列关乎民生福祉的问题,严重阻碍了城市的高质量发展。在当前的城市智能交通系统中,快速准确的交通流预测是城市交通控制的必要前提,在智能交通系统中发挥着重要作用。基于以上背景,本文对道路数据特征展开研究,提出了不同交通原始数据情况下的两种短时交通流预测方法,设计并实现了一个短时交通流预测系统,主要工
随着科学技术的发展,各种各样定位设备不断涌现,可获取到轨迹数据的数量与种类迅速增长。对获取到的轨迹数据进行储存,分析在行为识别、交通规划、城市安全与防控等方面都可以发挥重要作用。其中,对人类轨迹的研究可以获取行为方式、个人偏好等关键信息,对许多领域的进一步研究都有推进作用。因此研究行人的轨迹预测算法具有重要意义。传统的轨迹预测方法基于数学统计模型对行人的运动模式建模难以适用于复杂场景。复杂场景中存
在城轨车辆运行试验过程中发现了车辆存在紧急通风逆变器不能启动的问题,针对该问题分析逆变器的启动工作原理,核查设备与车辆的接线点位及线缆的走线路径,最终确定问题的根本原因是由于设备干扰导致误触发停止信号使逆变器无法启动,经研究对电路进行改进,并经过实际运用验证表明改进措施行之有效。
现代社会,随着互联网技术的高速发展和信息化时代的到来,全球信息量暴增,人工处理信息的速度远不能满足人们的需求。自动文本摘要技术可以帮助人们快速从文本中精炼出重要信息,从而提高人们信息获取的效率。自动文本摘要技术主要分为抽取式和生成式两大类,两类方法有不同的使用场景。为了满足不同的应用需求,本文对抽取式的TextRank算法和生成式的PreSumm模型进行了研究,并对其中存在的问题提出了改进方法,提
伴随着信息技术以及各种互联网企业的迅猛发展,面对爆炸的数据以及种类繁多的新业务,传统老旧的运维方式已经不能满足一个大型企业的需求,高昂的人力成本也是人工运维必须要去面对的一个问题。在此场景下,一个高智能化的运维系统显得尤其重要。因此,针对上述问题,人们提出了一种基于机器学习的智能化运维(AIOps)技术来解决这些困难。容量分析是智能运维(AIOps)中极为重要的一个部分。本文研究的电信运维容量分析