[论文解读] From Academia to Software Development: Publication Citations in Source Code Comments
本文提出了一种自动化的命名实体识别(NER)方法,用于检测源代码注释中的学术出版物引用,F1得分达到0.90。通过对25,925个代码仓库中的3.19亿条注释进行大规模分析,发现学术出版物——尤其是期刊论文——在代码中频繁被引用,主要用途是传递算法和公式,且大多数引用来自并非原始作者的开发人员。
Academic publications have been evaluated in terms of their impact on research communities based on many metrics, such as the number of citations. On the other hand, the impact of academic publications on industry has been rarely studied. This paper investigates how academic publications contribute to software development by analyzing publication citations in source code comments in open source software repositories. We propose an automated approach for detecting academic publications based on Named Entity Recognition, and achieve 0.90 in $F_1$ as detection accuracy. We conduct a large-scale study of publication citations with 319,438,977 comments collected from 25,925 active repositories written in seven programming languages. Our findings indicate that academic publications can be knowledge sources for software development. These referenced publications are particularly from journals. In terms of knowledge transfer, algorithm is the most prevalent type of knowledge transferred from the publications, with proposed formulas or equations typically implemented in methods or functions in source code files. In a closer look at GitHub repositories referencing academic publications, we find that science-related repositories are the most frequent among GitHub repositories with publication citations, and that the vast majority of these publications are referenced by repository owners who are different from the publication authors. We also find that referencing older publications can lead to potential issues related to obsolete knowledge.
研究动机与目标
- 调查开源软件源代码注释中学术出版物引用的广度与性质。
- 开发一种自动化方法,用于检测自由格式代码注释中的出版物引用,而这些注释中并无标准引用格式。
- 分析被引用出版物的特征,包括出版类型、知识传递模式及时间分布。
- 理解学术引用在软件开发中的作用,特别是知识共享以及潜在问题(如过时引用)。
- 支持提升学术界与软件工程之间可追溯性与知识传递的工具支持。
提出的方法
- 训练一种自定义的命名实体识别(NER)模型,用于在源代码注释中检测出版物引用,结合了基于规则的启发式方法与机器学习技术。
- NER模型利用作者姓名、标题、出版年份以及期刊/会议标识符等特征,识别非结构化文本中的引用。
- 系统处理了来自七种编程语言的25,925个活跃代码仓库中的319,438,977条注释。
- 引用按出版类型(如期刊、会议)、知识类型(如算法、公式)及时间年龄进行分类。
- 对包含出版物引用的GitHub代码仓库子集进行了定性分析,以研究引用模式与作者关系。
- 通过一个标准参考数据集对方法进行评估,引用检测的F1得分为0.90。
实验结果
研究问题
- RQ1学术出版物引用在开源软件注释中的普遍性和分布情况如何?
- RQ2开发人员在源代码注释中如何使用学术出版物——传递了哪些类型的知识?
- RQ3被引用的出版物通常来自期刊还是会议?这种分布是否因编程语言或领域而异?
- RQ4被引用出版物的作者与引用他们的开发人员之间存在何种关系?
- RQ5被引用出版物的年龄与引用频率及潜在过时性之间有何关联?
主要发现
- 学术出版物在源代码注释中频繁被引用,其中90%的检测到的引用来自期刊文章,而非会议论文。
- 从出版物中传递的最常见知识类型是算法,通常以包含公式或方程的方法或函数形式实现。
- 绝大多数被引用的出版物由非原始作者的开发人员引用,表明学术界向产业界存在强烈的知识传递。
- 较老的出版物被引用更频繁,但大量引用指向过时的文献,引发了知识过时的潜在担忧。
- 科学类代码仓库最有可能包含出版物引用,表明学术研究与科学软件开发之间存在紧密联系。
- 大量被引用的链接已失效或无法访问,凸显了在软件文档中维护持久引用的挑战。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。