中文

使用自然语言处理预测 StackOverflow 问题与代码片段的编程语言

软件工程 2018-09-24 v1 机器学习 机器学习

摘要

Stack Overflow 是软件开发者中最流行的问答网站。作为知识共享与获取的平台,Stack Overflow 中发布的问题通常包含代码片段。Stack Overflow 依赖用户正确标记问题的编程语言,并简单假定问题内代码片段的编程语言与问题自身的标签相同。在本文中,我们提出一种分类器,使用自然语言处理(NLP)和机器学习(ML)预测 Stack Overflow 中发布问题的编程语言。该分类器通过结合问题标题、正文和代码片段的特征,在预测 24 种最流行编程语言时达到 91.1% 的准确率。我们还提出仅使用问题标题和正文的分类器,其准确率为 81.1%。最后,我们提出仅针对代码片段的分类器,准确率达 77.7%。这些结果表明,在问题的文本与代码片段组合上部署机器学习技术可提供最佳性能。这些结果也表明,识别若干行源代码的代码片段的编程语言是可行的。我们将 Java 和 SQL 两种编程语言的特征空间可视化,以识别 Stack Overflow 中对应这些语言的问题内部信息的某些特殊属性。

关键词

引用

@article{arxiv.1809.07954,
  title  = {Predicting the Programming Language of Questions and Snippets of StackOverflow Using Natural Language Processing},
  author = {Kamel Alreshedy and Dhanush Dharmaretnam and Daniel M. German and Venkatesh Srinivasan and T. Aaron Gulliver},
  journal= {arXiv preprint arXiv:1809.07954},
  year   = {2018}
}