中文

面向基于任务的源代码相关问题的文本分类

软件工程 2021-11-02 v1 计算与语言 机器学习

摘要

开发者对自动生成小型任务代码有着关键需求。StackOverflow 等网站通过提供小型代码片段形式的解决方案,简便地给出了开发者欲编码的任务问题的完整答案。自然语言处理尤其是问答系统,对解决和处理此类任务颇有帮助。本文提出一种双路深度学习模型:Seq2Seq 与一个二分类器,其输入为意图(以自然语言给出)与 Python 代码 snippets。我们在 Seq2Seq 模型中同时训练意图与代码语句,并比较了使用编码器隐藏层嵌入表示意图、以及类似地使用解码器隐藏层嵌入表示代码序列的效果。随后我们将这两类嵌入拼接,训练一个简单的二分类神经网络模型,以预测所预测的来自 seq2seq 模型的代码序列是否正确回答了意图。我们发现隐藏状态层的嵌入表现略优于基于所构建词表的常规标准嵌入。除 StaQC 数据库(由简单任务-代码片段对组成)外,我们还在 CoNaLa 数据集上进行了测试实验。我们经实证确认,相较于使用 seq2seq 模型的隐藏状态上下文向量,为 Python 代码片段使用额外的预训练嵌入所依赖的上下文更少。

关键词

引用

@article{arxiv.2111.00580,
  title  = {Text Classification for Task-based Source Code Related Questions},
  author = {Sairamvinay Vijayaraghavan and Jinxiao Song and David Tomassi and Siddhartha Punj and Jailan Sabet},
  journal= {arXiv preprint arXiv:2111.00580},
  year   = {2021}
}