基于序列标注问答的编程语言无关代码与语言对挖掘
计算与语言
2022-03-22 v1 编程语言
摘要
挖掘对齐的自然语言 (NL) 与编程语言 (PL) 对是 NL-PL 理解的一项关键任务。现有方法对每个 PL 应用专门的手工特征或单独训练的模型。然而,它们通常跨多种 PL 的可迁移性较低,尤其是对于标注数据较少的小众 PL。幸运的是,Stack Overflow 的回答帖本质上是文本与代码块的序列,其全局文本上下文可提供与 PL 无关的补充信息。在本文中,我们提出一种基于序列标注的问答 (SLQA) 方法,以与 PL 无关的方式挖掘 NL-PL 对。特别地,我们提出应用 BIO 标注方案而非传统的二值方案,以挖掘常由帖子中多个块组成的代码解。在当前单 PL 单块基准和一个人工标注的跨 PL 多块基准上的实验证明了 SLQA 的有效性与可迁移性。我们进一步提出一个用 SLQA 自动挖掘的并行 NL-PL 语料库 Lang2Code,其包含约 1.4M 对、涵盖 6 种 PL。通过统计分析和下游评估,我们证明 Lang2Code 是面向进一步 NL-PL 研究的大规模高质量数据资源。
引用
@article{arxiv.2203.10744,
title = {Programming Language Agnostic Mining of Code and Language Pairs with Sequence Labeling Based Question Answering},
author = {Changran Hu and Akshara Reddi Methukupalli and Yutong Zhou and Chen Wu and Yubo Chen},
journal= {arXiv preprint arXiv:2203.10744},
year = {2022}
}