Identifying non-natural language artifacts in bug reports
This addresses a specific data preprocessing bottleneck for NLP researchers and practitioners working with bug reports, though it is an incremental improvement over existing artifact detection methods.
The paper tackles the problem of non-natural language artifacts (e.g., code snippets, logs) in bug reports that hinder NLP processing, presenting a machine learning model that achieves 0.95 ROC-AUC and 0.93 F1 scores while classifying 10k lines in 0.72 seconds.
Bug reports are a popular target for natural language processing (NLP). However, bug reports often contain artifacts such as code snippets, log outputs and stack traces. These artifacts not only inflate the bug reports with noise, but often constitute a real problem for the NLP approach at hand and have to be removed. In this paper, we present a machine learning based approach to classify content into natural language and artifacts at line level implemented in Python. We show how data from GitHub issue trackers can be used for automated training set generation, and present a custom preprocessing approach for bug reports. Our model scores at 0.95 ROC-AUC and 0.93 F1 against our manually annotated validation set, and classifies 10k lines in 0.72 seconds. We cross evaluated our model against a foreign dataset and a foreign R model for the same task. The Python implementation of our model and our datasets are made publicly available under an open source license.