[论文解读] Natural Language or Not (NLoN) - A Package for Software Engineering Text Analysis Pipeline
本文介绍了 NLoN,一个开源 R 包,通过使用 11 个语言学特征和字符三元组对软件工程文本进行自然语言或非自然语言的分类。该模型采用套索回归训练,在三个不同数据源(Mozilla、Kubernetes、Lucene)上实现了 0.976 至 0.987 的 AUC 分数,为软件工程工作流中的 NLP 预处理提供了一种轻量级、可复用的解决方案。
The use of natural language processing (NLP) is gaining popularity in software engineering. In order to correctly perform NLP, we must pre-process the textual information to separate natural language from other information, such as log messages, that are often part of the communication in software engineering. We present a simple approach for classifying whether some textual input is natural language or not. Although our NLoN package relies on only 11 language features and character tri-grams, we are able to achieve an area under the ROC curve performances between 0.976-0.987 on three different data sources, with Lasso regression from Glmnet as our learner and two human raters for providing ground truth. Cross-source prediction performance is lower and has more fluctuation with top ROC performances from 0.913 to 0.980. Compared with prior work, our approach offers similar performance but is considerably more lightweight, making it easier to apply in software engineering text mining pipelines. Our source code and data are provided as an R-package for further improvements.
研究动机与目标
- 为解决在软件工程文本挖掘工作流中区分自然语言与非自然语言文本(如代码、日志、堆栈跟踪)的挑战。
- 开发一种轻量级、可复用的工具,避免现有解决方案所需的数据库转储或自定义解析器的复杂性。
- 实现对新软件项目的高效、低投入适应,仅需少量人工标注(约 4 小时处理 2,000 行)。
- 提供一种基于机器学习的替代方案,取代正则表达式,以在多样化的软件工程文本来源中实现更好的泛化能力。
- 通过在处理前过滤非自然语言内容,支持情感分析和主题建模等 NLP 任务。
提出的方法
- NLoN 包使用 11 个语言学特征(包括停用词比例、大写字母频率和标点符号数量)来表征输入文本。
- 引入字符三元组作为特征集,以捕捉语言特异性模式,借鉴自语言检测领域的研究成果。
- 使用来自 Glmnet 库的套索回归模型,基于人工标注数据对每行文本是否为自然语言进行分类。
- 通过两名人工评分员的标注建立真实标签,利用评分者间一致性验证标注质量。
- 模型在项目特定数据(最多 2,000 行)上进行训练,并通过 10 折交叉验证和跨源预测进行评估。
- 该工具以开源 R 包形式实现,便于在软件工程文本分析工作流中轻松集成与扩展。
实验结果
研究问题
- RQ1轻量级、基于机器学习的分类器能否有效区分软件工程产物中的自然语言与非自然语言文本?
- RQ2NLoN 模型在不同软件工程数据源(如缺陷报告、聊天日志、电子邮件)之间泛化能力如何?
- RQ3与先前工作相比,NLoN 模型在 AUC 和计算简洁性方面的性能表现如何?
- RQ4在多个项目间共享同一模型时,其性能相比项目特定训练的下降程度有多大?
- RQ5该模型能否在极少人工投入且无需复杂配置的情况下,有效适应新项目?
主要发现
- 当在三个不同软件项目(Mozilla Firefox、Kubernetes、Apache Lucene)的数据上进行训练和测试时,NLoN 模型在受试者工作特征曲线下面积(AUC)介于 0.976 至 0.987 之间。
- 跨源预测性能虽较低但仍表现强劲,AUC 范围为 0.913 至 0.980,表明具有良好的泛化潜力,尽管性能随源方向不同而有所差异。
- 使用全部可用数据进行训练,其性能与使用项目特定数据相比既无提升也无下降,表明模型的泛化能力稳健。
- 当在目标源相同的数据上训练时,模型性能最佳,Mozilla 问题评论的 AUC 最高达 0.987,Lucene 邮件的 AUC 达 0.981。
- 当使用 Kubernetes 聊天消息数据预测 Mozilla 问题评论时,模型性能仍保持较高水平(AUC 0.980),表明在某些方向上具备强大的跨项目迁移能力。
- 尽管性能总体较强,但从 Mozilla 评论和 Kubernetes 聊天内容预测 Lucene 邮件时结果最弱(AUC 0.913),表明领域特定差异会影响模型泛化。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。