加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动 > 正文

如何提升代码搜索效果?GitHub团队打造代码搜索领域的GLUE数据集

发布时间:2019-09-30 03:42:11 所属栏目:移动 来源:机器之心编译
导读:副标题#e# 想提升代码搜索效果?首先你得知道怎么才算提升。GitHub 团队创建 CodeSearchNet 语料库,旨在为代码搜索领域提供基准数据集,提升代码搜索结果的质量。 搜索代码进行重用、调用,或者借此查看别人处理问题的方式,是软件开发者日常工作中最常见

为了学习这些嵌入函数,GitHub 团队在架构中加入了标准序列编码器模型,如图 3 所示。首先,根据输入序列的语义对其执行预处理:将代码 token 中的标识符分割为子 token(如变量 camelCase 变成了两个子 token:camel 和 case),使用字节对编码(byte-pair encoding,BPE)分割自然语言 token。

如何提升代码搜索效果?GitHub团队打造代码搜索领域的GLUE数据集

图 3:模型架构概览。

然后使用以下架构之一处理 token 序列,以获得(语境化的)token 嵌入。

  • 神经词袋模型:每个(子)token 都被转换为可学习嵌入(向量表示)。
  • 双向 RNN 模型:利用 GRU 单元总结输入序列。
  • 一维卷积神经网络:用于处理输入 token 序列。
  • 自注意力模型:其多头注意力用于计算序列中每个 token 的表示。

之后,使用池化函数将这些 token 嵌入组合为一个序列嵌入,GitHub 团队已经实现了 mean/max-pooling 和类注意力的加权和机制。

下图展示了基线模型的通用架构:

如何提升代码搜索效果?GitHub团队打造代码搜索领域的GLUE数据集

CodeSearchNet 挑战赛

为了评估代码搜索模型,GitHub 团队收集了一组代码搜索 query,并让程序员标注 query 与可能结果的关联程度。他们首先从必应中收集了一些常见搜索 query,结合 StaQC 中的 query 一共获得 99 个与代码概念相关的 query(GitHub 团队删除了 API 文档查询方面的问题)。

如何提升代码搜索效果?GitHub团队打造代码搜索领域的GLUE数据集

图 1:标注者指导说明。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读