Next Article in Journal
Uncertainty Analysis of Performance Parameters of a Hybrid Thermoelectric Generator Based on Sobol Sequence Sampling
Previous Article in Journal
Research Progress on Control Algorithms for Grain Combine Harvesters
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Do Stop Words Matter in Bug Report Analysis? Empirical Findings Using Deep Learning Models Across Duplicate, Severity, and Priority Classification

1
Department of Computer Applied Mathematics, Hankyong National University, Anseong-si 17579, Republic of Korea
2
Department of Computer Applied Mathematics, Computer System Institute, Hankyong National University, Anseong-si 17579, Republic of Korea
*
Author to whom correspondence should be addressed.
Appl. Sci. 2025, 15(16), 9178; https://doi.org/10.3390/app15169178
Submission received: 29 July 2025 / Revised: 18 August 2025 / Accepted: 19 August 2025 / Published: 20 August 2025

Abstract

As software systems continue to increase in complexity and scale, the number of reported bugs also grows. Bug reports are essential artifacts in software maintenance, supporting critical tasks such as detecting duplicate reports, predicting bug severity, and assigning priority levels. Although stop word removal is a common text preprocessing step in natural language processing, its effectiveness in deep learning-based bug report analysis has not been thoroughly evaluated. This study investigates the impact of stop word removal on three core bug report classification tasks. The analysis uses a dataset containing over 1.9 million bug reports from eight large-scale open-source projects, including Eclipse, FreeBSD, GCC, Gentoo, Kernel, RedHat, Sourceware, and WebKit. Five deep learning models are applied: convolutional neural networks, long short-term memory networks, gated recurrent units, Transformers, and BERT. Each model is evaluated on its performance with and without stop word removal during preprocessing. The results show that the F1 score difference was less than 0.01 in over 85% of comparisons, so stop word removal has little to no effect on predictive performance in eight open-source projects. Average F1-scores remain consistent across all tasks and models, with 0.36 for duplicate detection, 0.33 for severity prediction, and 0.33 for priority prediction. Statistical significance tests confirm that the observed differences are not meaningful across datasets or model types. The findings suggest that stop word removal is not necessary in deep learning-based bug report analysis. Removing this step may simplify preprocessing pipelines without reducing accuracy, particularly in large-scale and real-world software engineering applications.

1. Introduction

Bug reports are essential elements in the software development and maintenance lifecycle. They document issues encountered during system operation and provide valuable information for identifying, prioritizing, and resolving defects. As software becomes more widely used and complex, the number of bug reports submitted to tracking systems increases accordingly. A significant portion of these reports are duplicates, which leads to inefficiencies in the triage process. Research by Banerjee et al. [1] showed that in projects such as Eclipse [2] and Mozilla [3], more than 80 and 350 reports were received per day, respectively. Duplicate bug reports account for 42% of all reports (Mukherjee et al. [4]) in bug tracking systems such as Bugzilla [5]. Developers need to evaluate each report to determine whether it is a new issue or a previously reported issue. This process results in substantial time and resource consumption, which highlights the need for more efficient duplicate detection systems.
In addition to identifying duplicate reports, predicting the severity and priority of reported bugs is critical for effective software maintenance. Severity refers to the technical impact of a bug on system functionality, while priority indicates how urgently the issue should be addressed, considering user experience and operational requirements. High-severity bugs often affect core functionalities and require immediate attention. High-priority bugs typically align with business or project goals and demand timely resolution to minimize disruption.
To reduce manual effort and improve classification consistency, numerous automated approaches have been proposed. These include the application of deep learning techniques such as convolutional neural networks (CNNs) [6], recurrent neural networks (RNNs) [7], and Transformer-based architectures. While these methods have achieved promising results in individual tasks like duplicate detection or severity prediction, most prior studies operate on limited datasets or narrow scopes, limiting their generalizability across diverse bug tracking environments.
One commonly used text preprocessing step in NLP pipelines is stop word removal, where frequent functional words (e.g., “the”, “is”, “of”) are discarded. This technique is often assumed to improve learning efficiency by reducing input noise and dimensionality. However, in the context of deep learning, where models can capture hierarchical and contextual semantics, its benefit remains unclear. This question is particularly relevant in software engineering, where bug reports include domain-specific language, informal descriptions, and high lexical variability.
This paper systematically evaluates whether stop word removal has a measurable impact on model performance in bug report classification tasks. We examine this across three core tasks: duplicate detection, severity prediction, and priority prediction, using a dataset of over 1.9 million bug reports from eight open-source software projects: Eclipse, FreeBSD [8], GCC [9], Gentoo [10], Kernel [11], RedHat [12], Sourceware [13], and WebKit [14].
To address this question, we apply five widely used deep learning architectures: CNN, LSTM [15], GRU [16], Transformer [17], and BERT [18]. Each model is trained and evaluated under two preprocessing settings—with and without stop word removal.
Our study reveals that stop word removal has minimal influence on classification performance across tasks and models. These insights challenge conventional assumptions about preprocessing and suggest that certain steps can be reconsidered or simplified in large-scale, deep learning-based bug report analysis.

2. Background Knowledge

2.1. Bug Report and Bug Life Cycle

Bug reports are essential artifacts in software engineering, as they document detailed information about defects encountered during system operation. A typical bug report includes a unique identifier (bug ID), a brief title or summary, severity and priority levels, the current status of the issue, and a more detailed description of the problem. Figure 1 provides an example of a bug report submitted to the GCC issue tracking system [19].
Once submitted, bug reports follow a structured process known as the bug life cycle, which is customizable to match the needs of the organization [20]. This life cycle defines the various states that a bug may transition through, from initial discovery to eventual resolution [21]. When a user detects an issue, they submit a bug report to the tracking system. The report is then assigned to a developer, who is responsible for verifying and addressing the defect.
As the bug progresses through the system, its status is updated according to predefined categories. Common statuses include the following:
  • Open: The bug has been reported and is pending investigation or assignment.
  • Closed: The issue has been resolved, verified, or determined to be invalid or unreproducible.
  • Reopened: A previously closed bug is reopened because the fix was ineffective or the problem has reoccurred.
  • Deferred: The bug is considered low priority or out of scope for the current release and is scheduled for future consideration.
A visual representation of this life cycle is shown in Figure 2. Understanding the stages and transitions of the bug life cycle is important for effective defect tracking, resolution planning, and communication among development team members.
This foundational understanding of bug reports and their life cycle provides essential context for tasks such as duplicate detection, severity classification, and priority prediction, which are addressed in subsequent sections of this study.

2.2. Bug Report Preprocessing

Preprocessing is a fundamental step in preparing bug report text for automated analysis. It involves transforming raw textual data into a more structured and machine-readable form that can be effectively processed by learning algorithms. Common preprocessing techniques include tokenization, lemmatization, punctuation removal, and stop word removal [22].
Stop words refer to frequently occurring words, such as articles, prepositions, and conjunctions, that are often considered semantically uninformative in natural language processing tasks. These words are typically removed to reduce noise and improve computational efficiency. Although stop word removal is widely adopted in traditional NLP workflows, its necessity and effectiveness in domain-specific tasks such as bug report analysis have not been extensively studied.
This study explores whether stop word removal is beneficial for downstream bug classification tasks, including duplicate detection, severity prediction, and priority prediction. The broader goal is to evaluate the practical value of this preprocessing step in the context of deep learning-based software engineering applications.

2.3. Feature Selection in Bug Reports

Feature selection plays a critical role in text classification by identifying the most informative terms or attributes from the input data [23]. In the context of bug report analysis, effective feature selection can enhance model performance and reduce computational cost by filtering out irrelevant or redundant information.
Techniques such as term frequency-inverse document frequency (TF-IDF) and statistical tests like chi-square are commonly used to rank features according to their relevance to the target classification task. These selected features help models focus on meaningful patterns in the data rather than being influenced by noise or high-dimensional sparsity.
While stop word removal is often assumed to improve the feature selection process by eliminating non-discriminative terms, its actual impact in software-specific contexts remains unclear. This study includes an investigation into whether retaining or removing stop words significantly influences feature selection and model performance across multiple bug classification tasks.

2.4. Bug Duplicate Detection

Bug duplicate detection is the process of identifying whether a newly reported issue has already been submitted to the bug tracking system. This task is critical in software maintenance, as duplicate reports can lead to redundant triage efforts, wasted resources, and delayed resolutions. An overview of the duplicate detection process is illustrated in Figure 3.
Traditionally, duplicate detection has been approached using textual similarity metrics, heuristic-based matching, or machine learning algorithms [24,25,26]. More recent studies [27,28] have adopted neural network models that learn semantic representations of bug reports to improve detection accuracy. These models typically rely on the textual content of the report, such as summaries and descriptions, to assess similarity between new and existing entries.
Figure 4 presents an illustrative example of a duplicate report pair from the Eclipse bug repository. Although the two reports use different terminology, they refer to the same underlying issue.
The summary of the original bug report (#30959) is “NullPointerException on rename field,” while the duplicate report (#31082) is titled “NPE when renaming field” [29,30]. After preprocessing, the first report may be reduced to tokens such as “nullpointerexception,” “rename,” and “field.” The second report yields similar terms like “npe,” “rename,” and “field.” Despite differences in wording, both reports describe the same defect, which shows the importance of semantic-aware models in duplicate detection.
While prior work has achieved notable success in improving duplicate detection performance, preprocessing techniques such as stop word removal are often applied without evaluating their actual necessity. In this study, we examine the role of stop word removal within duplicate detection as part of a broader investigation into its effect on bug report classification tasks.

2.5. Bug Severity Prediction

Bug severity prediction refers to the process of estimating how seriously a reported defect affects the functionality and stability of a software system. This task is important because it helps development teams allocate resources efficiently and resolve the most critical issues first. An overview of the bug severity prediction process is shown in Figure 5.
Severity levels are typically categorized into multiple classes, each reflecting the degree of functional disruption caused by a bug. These categories assist in establishing resolution priorities and ensuring that mission-critical defects are addressed promptly. Figure 6 provides representative examples of typical severity levels used in many software projects.
  • S1 (Very Severe): Issues that cause major failures, such as system crashes, memory leaks, or complete data corruption.
  • S2 (Severe): Defects that affect core functionality or essential features but do not lead to total system failure.
  • S3 (Moderate): Problems such as interface inconsistencies, logical errors, or boundary condition issues that affect user workflows without halting operation.
  • S4 (Minor): Cosmetic issues, including typographical errors or formatting inconsistencies, that do not impact software usability or correctness.
Prior research has applied various machine learning and deep learning techniques to automate severity classification. These methods aim to reduce manual workload, increase consistency, and enhance the speed of triaging processes. Typical models rely on textual information in bug reports, such as summaries and descriptions, to infer severity levels.
Although preprocessing steps like stop word removal are commonly used in text classification tasks [31,32], their effectiveness in software engineering domains is not well understood. This study investigates the influence of stop word removal on severity prediction models as part of a broader analysis of preprocessing choices in bug report classification.

2.6. Bug Priority Prediction

Bug priority prediction plays a vital role in managing software maintenance workflows efficiently. It involves assigning urgency levels to reported bugs based on their impact on system functionality, user experience, and operational continuity. As development teams often handle a high volume of bug reports, accurate prioritization helps ensure that critical issues are addressed promptly while less urgent problems are scheduled appropriately.
Figure 7 provides an overview of the bug priority prediction process, which is often supported by machine learning models. These models are designed to analyze the textual content of bug reports and estimate the appropriate priority level based on learned patterns from labeled data.
Bug reports are commonly classified into five priority levels, as shown in Figure 8. These levels help guide developers in allocating resources and scheduling bug fixes based on urgency and severity.
  • P1 (Highest Priority): Critical defects that cause major system failures or render essential functions inoperable. Immediate attention is required.
  • P2 (High Priority): Significant issues that affect key components but may not prevent system operation. These issues should be addressed promptly.
  • P3 (Medium Priority): Defects that affect non-core functionality or lead to unexpected results without causing major disruption.
  • P4 (Low Priority): Minor usability or cosmetic issues that do not interfere with normal operation and can be resolved at a later time.
  • P5 (Lowest Priority): Trivial or unclear problems that have minimal or no impact on system behavior or user experience.
In recent years, deep learning approaches have been applied to automate bug priority classification. While many models rely on common natural language preprocessing techniques such as stop word removal, there has been limited analysis of whether such steps are necessary or beneficial in this specific task. This study addresses that gap by examining the influence of stop word removal on priority prediction within a broader bug report analysis framework.

3. Our Approach

This study proposes a unified methodology for analyzing software bug reports with the goal of automating three core classification tasks: duplicate detection, severity prediction, and priority prediction. The primary focus of the methodology is to evaluate the influence of stop word removal on model performance across these tasks. The approach includes structured phases, from data acquisition and preprocessing to feature engineering, model training, and evaluation. A visual overview of the proposed workflow is provided in Figure 9.

3.1. Data Extraction and Preprocessing

To support a comprehensive and comparative analysis, we collected bug reports from eight open-source projects: Eclipse, FreeBSD, GCC, Gentoo, Kernel, RedHat, Sourceware, and WebKit. These projects were selected to ensure coverage of a wide range of software domains, including operating systems, compilers, web engines, and enterprise applications. Each report contains structured and unstructured fields relevant to the target tasks, such as summary, description, and associated labels indicating duplicate status, severity level, and priority level.
The preprocessing phase was designed to prepare the raw textual data for use with deep learning models, while enabling direct comparison between two distinct conditions: with stop word removal and without it. The following steps were applied to each report:
  • Tokenization: Text fields were segmented into individual word-level tokens.
  • Lemmatization: Each token was normalized to its base or root form to reduce morphological variance.
  • Stop Word Removal (optional): Common function words that are typically considered semantically uninformative, such as “the,” “is,” and “at,” were removed in one version of the dataset.
This preprocessing step resulted in two parallel datasets: one where stop words were retained and another where they were removed. These dual datasets allowed for controlled experimentation to isolate the effect of stop word removal on model performance across all three tasks. An example of the transformation process during preprocessing is illustrated in Figure 10.
This structured preprocessing framework enabled consistent input preparation across all models and tasks, forming the foundation for subsequent training, evaluation, and statistical comparison phases.

3.2. Feature Selection

Feature selection is a critical step in text classification tasks, as it reduces input dimensionality and computational complexity while improving model generalization. In the context of this study, feature selection was used to identify the most informative words in bug reports for the tasks of duplicate detection, severity prediction, and priority prediction.
To quantify the relevance of each term, we applied two widely used techniques: term frequency-inverse document frequency (TF-IDF) [33] and the Chi-square statistical test [34]. TF-IDF measures the importance of a word in a corpus, while the chi-square test assesses the statistical significance of the relevance of a word to a category. Combining the two can more comprehensively reflect the importance of features, thereby improving the rationality of feature selection. TF-IDF transforms the raw textual data into weighted numerical vectors that emphasize terms with high discriminatory power relative to their frequency in the corpus. The Chi-square test evaluates the statistical dependence between each term and the target class label, providing a complementary measure of importance based on observed versus expected frequency distributions.
In our pipeline, both TF-IDF and Chi-square values were computed for each word in the corpus. The product of these two values was then used to rank features, and the top-ranked terms were retained for model input. This combined approach ensures that selected features are both statistically and semantically significant in relation to the classification tasks.
Figure 11 illustrates an example of the feature selection process applied to a bug report from the GCC project (ID: #65092). In this case, high-ranking terms such as “missing,” “container,” “constructors,” and “adaptors” were identified. These terms often indicate specific types of software issues, such as incomplete functionality, structural problems in data handling, or design pattern mismatches. Their inclusion in the final feature set enhances the model’s ability to capture task-relevant patterns in the input data.
This feature selection strategy was applied uniformly to both versions of the dataset, with and without stop word removal. This consistency enabled a fair comparison of model performance under each preprocessing condition in the subsequent evaluation phase.

3.3. Model Training and Evaluation

Five widely adopted deep learning architectures were used in this study: convolutional neural networks (CNNs), long short-term memory networks (LSTM), gated recurrent units (GRUs), Transformer models, and bidirectional encoder representations from Transformers (BERTs). Each model was applied to all three bug report classification tasks: duplicate detection, severity prediction, and priority prediction.
To evaluate the effect of stop word removal, every model was trained on two versions of the dataset. One version was preprocessed with stop words removed, while the other retained all tokens, including stop words. This experimental design allowed for a controlled assessment of how stop word removal influences model performance across different architectures and tasks.
The following subsections describe the architectural characteristics of each model and their role in the classification framework. An overview of the CNN model is presented first.

3.3.1. Convolutional Neural Networks (CNNs)

CNNs are commonly used in natural language processing tasks to identify local patterns in text sequences. In the context of bug report classification, CNNs transform tokenized input into an embedding matrix and apply convolutional operations to capture n-gram features and spatial dependencies within the text.
The architecture consists of the following components:
  • Input Layer: Accepts preprocessed text in the form of token indices or embedding vectors.
  • Convolutional Layer: Applies filters to extract local feature patterns such as key phrases or term co-occurrences.
  • Pooling Layer: Reduces the dimensionality of feature maps and preserves the most salient features.
  • Fully Connected Layer: Aggregates extracted features to form a dense representation suitable for classification.
  • Output Layer: Produces the final prediction for each task using a softmax or sigmoid function, depending on the classification type.
Figure 12 provides a schematic representation of the CNN architecture used in this study.
This architecture is well-suited for identifying contextually important term combinations in relatively short texts such as bug report summaries and descriptions.

3.3.2. Long Short-Term Memory (LSTM)

Long short-term memory networks (LSTM) are a variant of recurrent neural networks (RNNs) specifically designed to capture long-range dependencies in sequential data. This capability makes LSTMs particularly suitable for text classification tasks, where the relationship between tokens across positions in a sequence can significantly influence prediction accuracy.
The LSTM architecture incorporates memory cells and gating mechanisms to regulate the flow of information. It includes a forget gate that determines whether previous information should be discarded, an input gate that assesses which new information should be added, and an output gate that decides which part of the memory should be propagated to the next time step. These components enable the model to maintain and update contextual information across long sequences without suffering from vanishing or exploding gradients.
Figure 13 illustrates the core components of the LSTM architecture used in this study.
X t is the input at time t, H t 1 represents the hidden state at the previous time step, H t is the hidden state, h t represents the output hidden state, C t 1 represents the memory cell at the previous time step, and C t is the current cell state. The forget gate F t , input I t , and output O t control the flow of information using sigmoid activations σ. C t ~ denotes the candidate cell state generated using tanh. Multiplications and additions are element-wise operations across vectors.
LSTM models were trained on both the stop word removal and non-removal versions of the dataset, allowing for a direct comparison of their performance under each condition.

3.3.3. Gated Recurrent Unit (GRU)

Gated recurrent units (GRUs) are a streamlined variant of LSTM networks, designed to achieve similar sequential modeling performance with fewer parameters. GRUs simplify the architecture by combining the forget and input gates into a single update gate, and by eliminating the separate memory cell used in LSTM models.
The GRU architecture consists of an update gate that controls how much of the previous hidden state should be retained, and a reset gate that determines how much of the past information should be considered when computing the new candidate state. These mechanisms allow GRUs to capture relevant temporal dependencies while offering faster training and reduced computational complexity.
Figure 14 shows the architecture of the GRU model applied in our experiments.
x t is the input vector, and   h t is the current hidden state. r t is the reset gate and z t is the update gate, both using sigmoid activation σ. h t ~ is the candidate hidden state calculated with tanh. The final hidden state   h t is a gated combination of   h t 1 and h t ~ , controlled by z t .
Like the other models in this study, GRUs were evaluated under both preprocessing settings. This ensured consistent analysis of how stop word removal affects model performance in sequence-based architectures.

3.3.4. Transformer

Transformer-based models have become a foundational architecture in natural language processing due to their ability to capture long-range dependencies through attention mechanisms. Unlike recurrent or convolutional models, the Transformer architecture is entirely built on multi-head self-attention and positional encoding, which allows for highly parallelizable computations and improved learning of contextual relationships in sequences.
In this study, we used a standard Transformer encoder-decoder configuration for bug report classification. The encoder processes input sequences by embedding tokens and their positional information, and applies stacked self-attention and feedforward layers. The decoder uses attention mechanisms to generate predictions based on the encoded representations. Although originally designed for sequence-to-sequence tasks, the Transformer was adapted here for classification purposes.
Figure 15 illustrates the core structure of the Transformer model used in our experiments.
The Transformer model was evaluated on both preprocessed versions of the dataset, with and without stop word removal, to measure its sensitivity to preprocessing decisions across the three classification tasks.

3.3.5. BERT (Bidirectional Encoder Representations from Transformers)

BERT is a pre-trained language model based on a bidirectional Transformer encoder that has shown strong performance across a wide range of NLP tasks. Unlike unidirectional models, BERT captures context from both the left and right of each token, which enables deeper semantic understanding of text sequences.
BERT’s architecture consists of multiple stacked Transformer encoder layers, each employing self-attention and feedforward components. The input representation combines token embeddings, positional embeddings, and segment embeddings. The model is fine-tuned on downstream tasks by modifying the output layer according to the classification objective.
In this study, BERT was fine-tuned separately for duplicate detection, severity prediction, and priority prediction tasks. As with the other models, training was conducted under both preprocessing conditions to assess the effect of stop word removal.
Figure 16 shows a high-level overview of the BERT architecture used in our experiments.
The use of BERT enables a comparison between traditional models trained from scratch and a powerful pre-trained language model within the same experimental framework.

3.3.6. Training Configuration

All models in this study were trained using consistent training settings to ensure comparability across architectures and preprocessing conditions. The training process was designed to support both binary and multi-class classification tasks relevant to bug report analysis.
The loss functions were selected based on the nature of each task. Binary cross-entropy was used for duplicate detection, which is a binary classification problem. For severity and priority prediction, which involve multiple categorical labels, categorical cross-entropy was applied. These loss functions quantify the difference between predicted and true labels and are standard in classification tasks.
The Adam optimizer was employed to update model weights during training. Adam is widely used for its adaptive learning rate capabilities and combines the strengths of AdaGrad and RMSProp to provide efficient and stable convergence.
The input features consisted of tokenized and lemmatized text extracted from bug report summaries and descriptions. Two versions of the input data were prepared for each experiment. One version included stop words, and the other excluded them. Tokenization was used to segment the text into individual word units, while lemmatization mapped each word to its base or canonical form. These preprocessing steps ensured that the models received normalized and structured inputs for learning.
This training configuration was applied uniformly across all models and tasks to enable reliable evaluation of the impact of stop word removal, which was conducted during the experimental analysis in Section 4.

3.4. Implementation Details

All models were implemented using Python 3.8 and TensorFlow 2.13 with the Keras 2.13 backend. The training and evaluation were executed on a machine equipped with an NVIDIA RTX 4090 GPU. Mixed-precision training was enabled to optimize GPU memory utilization and speed up computation.

3.4.1. Model Configuration

The following deep learning architectures were implemented and trained from scratch:
CNN: Consists of a 1D convolutional layer (64 filters, kernel size = 3, ReLU activation, padding = ‘same’), followed by batch normalization, max pooling, a dense layer (64 units), and dropout (rate = 0.1).
LSTM: Two stacked LSTM layers (each with 64 units, return_sequences = True), followed by batch normalization, a dense layer (64 units), and dropout.
GRU: Same structure as LSTM, replacing LSTM units with GRU units.
Transformer: Four Transformer encoder blocks with multi-head attention (4 heads, key dimension 16), feed-forward layers (128 → 16), layer normalization, and dropout. Positional encoding was applied using sinusoidal patterns.
BERT: Similar to Transformer, but uses learnable positional embeddings (non-trainable) initialized with a truncated normal distribution (stddev = 0.02).

3.4.2. Text Processing and Vectorization

Tokenization: nltk.word_tokenize was used.
Stopword Removal: Custom list of stopwords (over 1000 terms) optionally applied based on experimental settings.
TF-IDF and Feature Selection: After tokenization, TF-IDF vectors were computed and the top 100 features were selected using chi-squared feature selection (SelectKBest(chi2)).
Padding: Token sequences were padded to the 95th percentile length across the dataset using pad_sequences.
Vocabulary Size: Dynamically determined from token frequency.

3.4.3. Training Settings

Cross-Validation: 10-fold stratified cross-validation using KFold (random_state = 42).
Learning Rate Scheduling: ReduceLROnPlateau with factor = 0.2 and min_lr = 0.0001.
Loss Function: Binary cross-entropy.
Optimizer: Adam.
Batch Size: 256.
Epochs: 1.
Dropout Rate: 0.1 (applied after dense or attention layers).

3.4.4. Imbalanced Data Handling

Oversampling: SMOTE (version 0.10.1) from imblearn was applied to balance classes.

3.4.5. Evaluation Metrics

Macro-averaged precision, recall, F1-score, ROC AUC, and precision–recall AUC were computed using scikit-learn. ROC curves and PR curves were averaged over all folds.

4. Experiment Result

4.1. Overview

This study investigates the effectiveness of deep learning models in three essential bug report classification tasks: duplicate detection, severity prediction, and priority prediction. The experimental evaluation is conducted using bug report data collected from eight open-source software projects, namely Eclipse, FreeBSD, GCC, Gentoo, Kernel, RedHat, Sourceware, and WebKit. These projects represent a broad range of software domains, including operating systems, compilers, development tools, server platforms, and web rendering engines.
A primary objective of the study is to assess whether the removal of stop words during preprocessing has a meaningful impact on model performance. To explore this, we trained and evaluated each model under two preprocessing configurations: one with stop word removal and one with stop words retained. This experimental setup enables a direct comparison of the models’ effectiveness under each condition across all three classification tasks.

4.2. Data Collection and Preprocessing

A total of 1,901,084 bug reports were collected from the eight open-source projects. The dataset spans reports submitted between 1995 and 2023, covering a diverse set of software systems. Each bug report includes textual fields such as titles and descriptions, along with categorical labels indicating whether the report is a duplicate, its severity level, and its assigned priority. A single report may be associated with more than one of these categories, making it suitable for use in multiple classification tasks.
Table 1 provides a summary of the number of collected reports for each project. The diversity in project types and time spans offers a comprehensive foundation for evaluating the generalizability of the models across various software environments.
The preprocessing pipeline involved multiple steps to prepare the textual data for model training. These steps included tokenization, lemmatization, and conditional stop word removal. The stop word list used in this study consisted of 1158 English stop words; it is based on the standard NLTK list and adds 960 common nonsense words such as “fix”, “system”, and “http”, compiled from standard NLP resources [35]. Following preprocessing, feature selection was conducted to extract the most relevant terms for each task, using methods such as TF-IDF and chi-square scoring.
This structured preprocessing and feature engineering process ensured that all models were trained on high-quality, task-relevant input features under consistent experimental conditions.

4.3. Model Training and Evaluation

All models in this study were trained using a consistent set of hyperparameters to ensure comparability across architectures. The maximum sequence length was set to 120 tokens, the embedding dimension was fixed at 16, and the vocabulary size was limited to the top 1000 most frequent tokens in the corpus. The models evaluated included convolutional neural networks (CNNs), long short-term memory networks (LSTM), gated recurrent units (GRUs), Transformer models, and BERTs.
To evaluate generalization performance, we used 10-fold cross-validation [36]. This approach divides the dataset into 10 equally sized subsets. For each iteration, one subset is used for validation while the remaining nine are used for training. This process is repeated 10 times, and the average performance across all folds is computed. This method provides a robust estimate of the models’ effectiveness on unseen data and reduces the risk of overfitting to a particular data split.
Model performance was assessed using several well-established metrics: precision, recall, F1-score [37], the area under the receiver operating characteristic curve (ROC-AUC), and the area under the precision–recall curve (PR-AUC) [38]. Each of these metrics captures a different aspect of classification performance, particularly in the context of imbalanced data.
P r e c i s i o n = T P T P + F P
R e c a l l = T P T P + F N
F 1 = 2 × P r e c i s i o n × R e c a l l P r e c i s i o n + R e c a l l
R O C A U C = 0 1 T P R ( F P R ) d ( F P R )
T P R = T P T P + F N
F P R = F P F P + T N
P R A U C = 0 1 P r e c i s i o n ( R e c a l l ) d ( R e c a l l )
Precision: It is the proportion of correctly predicted positive cases to the total predicted positive cases. It reflects how many of the predicted duplicates, severe bugs, or high-priority reports are actually correct.
Recall: It is the proportion of correctly predicted positive cases to all actual positive cases. It indicates how many of the true duplicates, severe bugs, or high-priority reports were successfully identified.
F1-Score: It is the harmonic mean of precision and recall, balancing the two in a single measure.
ROC-AUC: It quantifies the model’s ability to distinguish between classes across different threshold settings. It is especially useful for binary classification tasks like duplicate detection.
PR-AUC: It focuses on performance in detecting rare or minority classes, such as high-severity or high-priority bugs, which are often underrepresented in real-world datasets.
In addition to these metrics, we also tracked true positives (TPs), true negatives (TNs), false positives (FPs), and false negatives (FNs) for each task. From these, we computed the true positive rate (TPR) and false positive rate (FPR), which further characterize model behavior in terms of sensitivity and specificity.
This comprehensive set of evaluation criteria ensures that our assessment accounts for both the accuracy and the reliability of each model under different preprocessing conditions and task settings.

4.4. Research Questions

To systematically evaluate the model performance and the impact of stop word removal, we formulated the following three research questions (RQ):
  • RQ1. How effectively do deep learning models perform in detecting duplicate bug reports and predicting severity and priority levels across diverse open-source projects?
Traditional NLP-based techniques for bug report analysis often rely on handcrafted features and bag-of-words representations, which may fail to capture the contextual and semantic richness of the reports. Deep learning models offer the potential to model semantic similarity and linguistic nuances more effectively. This question assesses the overall predictive performance of deep learning models on three key bug report analysis tasks: duplicate detection, severity classification, and priority assignment. The goal is to evaluate the models’ generalizability and reliability across multiple datasets and project domains.
  • RQ2. To what extent does stop word removal affect the performance of deep learning models on bug report classification tasks?
This question examines whether the inclusion or exclusion of stop words during preprocessing significantly impacts model performance in duplicate detection, severity prediction, and priority prediction. The analysis compares results obtained with and without stop word removal across multiple models and datasets.
  • RQ3. How does the performance of the models with stop word removal compare to those without, in relation to standard baseline architectures such as CNN, LSTM, GRU, Transformer, and BERT?
This question benchmarks the relative effectiveness of stop word removal by comparing model outputs under both preprocessing conditions. The comparison is conducted across five widely used deep learning architectures to determine whether stop word removal offers any measurable performance advantage.
These research questions will guide the study in evaluating the model’s capabilities and understanding the effects of preprocessing choices on its performance.

4.5. Result

This section presents and analyzes the experimental results in relation to the three research questions outlined in Section 1. Detailed numerical results can be found in Appendix A, Table A1, Table A2, Table A3, Table A4, Table A5, Table A6, Table A7, Table A8, Table A9, Table A10, Table A11, Table A12, Table A13, Table A14, Table A15, Table A16, Table A17, Table A18, Table A19 and Table A20. The corresponding statistical significance tests are summarized in Table A21, Table A22 and Table A23.
  • Answer for RQ1.
To assess the overall effectiveness of the proposed approach, we measured its performance on three key tasks using bug reports from eight open-source projects: Eclipse, FreeBSD, GCC, Gentoo, Kernel, RedHat, Sourceware, and WebKit. The evaluation was based on standard classification metrics, including precision, recall, and F1-score.
The results showed that the proposed model performed consistently across all tasks and datasets:
  • Duplicate Detection: All five deep learning models (CNN, LSTM, GRU, Transformer, and BERT) achieved an average F1-score of 0.36 across the eight projects.
  • Severity Prediction: The average F1-score across all models was 0.33, reflecting stable performance in classifying the impact level of reported bugs.
  • Priority Prediction: The models also achieved an average F1-score of 0.33 in predicting the urgency of resolving each bug report.
These outcomes show that the proposed model is capable of handling all three tasks reliably, and its performance remains stable across different open-source projects and model architectures.
  • Answer for RQ2.
To examine the impact of stop word removal during preprocessing, we conducted a comparative experiment using two versions of each dataset. One version included stop words, and the other excluded them. The performance of all five deep learning models was evaluated under both conditions.
The findings indicate that stop word removal had minimal influence on model performance. For all tasks and models, the differences in F1-scores were negligible:
  • For duplicate detection, the F1-score was 0.36 both with and without stop word removal.
  • For severity prediction, the F1-score remained at 0.33 in both cases.
  • For priority prediction, the F1-score also remained stable at 0.33 regardless of whether stop words were removed.
These results were consistent across all model types and project datasets. The minor fluctuations observed, typically within a range of 0.01 to 0.03, are not practically significant. Therefore, the decision to include or exclude stop word removal may be based on implementation preference rather than expected performance gains.
  • Answer for RQ3.
To benchmark the proposed model, we compared its results with those of widely used deep learning baselines: CNN, LSTM, GRU, Transformer, and BERT. The comparison was based on the same performance metrics used in RQ1 and RQ2.
The evaluation showed that the proposed approach achieved results that are equivalent to, or in some cases slightly better than, the baseline models:
  • For duplicate detection, both the proposed model and all baseline models achieved an average F1-score of 0.36.
  • For severity prediction, the F1-score remained stable at 0.33 across all models.
  • For priority prediction, the proposed model also matched the baseline performance with an average F1-score of 0.33.
These results indicate that the proposed model is at least as effective as the individual deep learning architectures when applied independently. The unified approach provides consistent performance across tasks and datasets, demonstrating its robustness and generalizability in bug report classification.
  • Statistical Hypothesis Testing
To determine whether the differences in model performance due to stop word removal were statistically significant, we formulated a series of hypotheses and conducted formal statistical tests.
The null hypotheses were established as follows.
H10~H150: There is no significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Eclipse.
H160~H300: There is no significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Freebsd.
H310~H450: There is no significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Gentoo.
H460~H600: There is no significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in GCC.
H610~H750: There is no significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Kernel.
H760~H900: There is no significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in RedHat.
H910~H1050: There is no significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Sourceware.
H1060~H1200: There is no significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Webkit.
The alternative hypotheses to the null hypotheses are as follows.
H1a~H15a: There is a significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Eclipse.
H16a~H30a: There is a significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Freebsd.
H31a~H45a: There is a significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Gcc.
H46a~H60a: There is a significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Gentoo.
H61a~H75a: There is a significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Kernel.
H76a~H90a: There is a significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in RedHat.
H91a~H105a There is a significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Sourceware.
H106a~H120a: There is a significant difference in duplicate bug report detection, severity bug report prediction, and priority bug report prediction between the proposed models of CNN, LSTM, GRU, Transformer, and BERT with and without stopword removal in Webkit.
Hypotheses were grouped by task (duplicate detection, severity prediction, and priority prediction) and project (Eclipse, FreeBSD, Gentoo, GCC, Kernel, RedHat, Sourceware, and WebKit). A total of 240 null hypotheses were formulated (120 per preprocessing condition), covering all combinations of task, dataset, and model.
To test these hypotheses, we applied two types of statistical tests depending on the distribution of the performance metrics:
  • The t-test [39] was used when the performance data followed a normal distribution. This test compares the mean values of two groups to determine if the difference is statistically significant.
  • The Wilcoxon signed-rank test [40], a non-parametric alternative, was applied when normality could not be assumed. This test evaluates whether the median difference between paired samples is significantly different from zero.
For example, in Table A21, hypothesis H50 corresponds to the performance of the BERT model on the Eclipse dataset for duplicate detection. The p-value obtained was 0.9549, which exceeds the 0.05 threshold. This result supports the null hypothesis, indicating that stop word removal does not have a statistically significant effect in this case.
Across all tested hypotheses, the vast majority produced p-values greater than 0.05. This confirms that the differences observed in performance between models trained with and without stop word removal were not statistically significant. Consequently, the null hypotheses were retained and the alternative hypotheses were rejected.
These statistical findings reinforce the earlier empirical results. They provide strong evidence that stop word removal does not yield meaningful performance improvements in deep learning-based bug report analysis. Accordingly, the preprocessing step of removing stop words can be omitted without compromising the effectiveness of the models.
Across all tests, p-values consistently exceeded 0.63, with the majority above 0.90, as detailed in Table A21, Table A22 and Table A23. These results confirm that stop word removal did not lead to any statistically significant performance changes.
Given the large number of comparisons, there is a potential risk of inflated Type I error rates due to multiple testing. Applying a Bonferroni [41] correction for 240 tests yields a highly conservative adjusted significance threshold of α = 0.05/240 ≈ 0.000208. All p-values remain well above the threshold, supporting the finding that removing stop words does not significantly affect the performance of deep learning models in bug report classification.

5. Discussion

5.1. Experiment Results

This study examined whether stop word removal significantly influences the performance of deep learning models in bug report analysis. Experiments were conducted using a large-scale dataset compiled from eight open-source projects, including Eclipse, FreeBSD, GCC, Gentoo, Kernel, RedHat, Sourceware, and WebKit. Five widely used deep learning models were evaluated: convolutional neural networks (CNNs), long short-term memory networks (LSTM), gated recurrent units (GRUs), Transformer models, and BERTs. Each model was trained and tested on two versions of the dataset, one with stop word removal applied during preprocessing and one without.
The models were evaluated on three core bug report analysis tasks: duplicate detection, severity prediction, and priority prediction. The results showed that the inclusion or exclusion of stop words had minimal effect on model performance across all tasks. Specifically, the average F1-score for duplicate detection was 0.36. For both severity prediction and priority prediction, the average F1-score was 0.33. These values remained consistent regardless of whether stop words were removed during preprocessing.
To further examine the robustness of these observations, statistical significance testing was conducted using p-values. All p-values obtained were greater than 0.05, indicating that the differences in performance between models trained with and without stop word removal were not statistically significant. This confirms that the presence or absence of stop words does not meaningfully affect model accuracy in this context.
A closer inspection of the experimental results revealed only minor fluctuations in F1-scores between the two preprocessing settings:
  • For duplicate detection, the difference in F1-scores typically ranged between 0.01 and 0.05. For instance, in the Eclipse dataset using the CNN model (Table A1), the F1-score was 0.34 with stop word removal and 0.35 without.
  • For severity prediction, the difference was generally around 0.01 across models and datasets. In Table A2, the RedHat dataset with the LSTM model showed an F1-score of 0.34 when stop words were removed and 0.33 when they were retained.
  • For priority prediction, differences in F1-scores were also limited, with most variations falling between 0.01 and 0.03. In Table A11, for example, the Kernel dataset using CNN produced an F1-score of 0.38 with stop word removal and 0.35 without.
These findings suggest that removing stop words has little to no effect on the models’ ability to learn meaningful representations from bug report text. As a result, stop word removal can be treated as an optional preprocessing step in deep learning-based bug report analysis. The decision to remove or retain stop words may be guided more by practical constraints, such as preprocessing time or system complexity, rather than expected gains in performance.
Three main insights can be drawn from the results.
  • The limited impact of stop word removal indicates that the models are already effective at identifying relevant semantic features without needing to discard common words.
  • The consistency in performance suggests that duplicate and non-duplicate bug reports may share a common core vocabulary, which reduces the influence of stop words in distinguishing between them.
  • The deep learning models used in this study, particularly BERT, Transformer, and LSTM, are designed to capture contextual information and exhibit robustness to uninformative tokens. This likely diminishes the importance of removing stop words during preprocessing.
The overall experimental evidence supports the conclusion that stop word removal does not enhance the performance of deep learning models in the classification of bug reports. Therefore, it is reasonable to simplify preprocessing workflows by retaining stop words, especially when working with large datasets in practical software engineering environments.

5.2. Detailed Analysis of Experimental Results

To understand the performance variation patterns in more detail, we conducted a deeper analysis of the results for different projects and input types. Table A1, Table A2, Table A3, Table A4, Table A5, Table A6, Table A7, Table A8, Table A9, Table A10, Table A11, Table A12, Table A13, Table A14, Table A15, Table A16, Table A17, Table A18, Table A19 and Table A20 and Figure A1, Figure A2, Figure A3, Figure A4, Figure A5, Figure A6, Figure A7, Figure A8, Figure A9, Figure A10, Figure A11, Figure A12, Figure A13, Figure A14, Figure A15, Figure A16, Figure A17, Figure A18, Figure A19 and Figure A20 show the experimental results of five deep learning models on eight open-source projects, covering four types of data input: summary and description, summary only, description only, and comment only, and the F1 score performance on three tasks: duplicate report detection, severity prediction, and priority prediction.
Overall, in most projects, removing or retaining stop words has a very limited impact on model performance. Taking Table A1 and Figure A1 as an example, in the duplicate report detection task on the FreeBSD dataset, the model’s F1 score slightly dropped from 0.51 (stop words removed) to 0.50 (stop words retained); while on the Eclipse and Gentoo datasets, the score slightly increased by 0.01.
For different models, taking the experiment of CNN model as an example, the biggest difference occurs in the duplicate report detection task of the comment dataset of the WebKit project: the F1 score drops from 0.38 (stop words removed) to 0.33 (stop words not removed), with a difference of 0.05, which is the largest change observed in the CNN model in the current experiment. In contrast, about 89% of the F1 score differences are 0 or less than 0.01, further indicating that the impact of stop word processing on model performance is not statistically significant, nor does it have an observable improvement or decline trend in practical terms.
Models like Transformer and BERT show the least fluctuation, suggesting robustness to noisy tokens. In contrast, CNN and LSTM are more sensitive in certain tasks, especially with comment-only inputs.
Across all eight projects and three tasks, the F1 score differences rarely exceed 0.03, and in more than 85% of comparisons, the differences are below 0.01. This trend suggests that removing stop words introduces only minor performance changes that are statistically insignificant and practically negligible.

5.3. Threats to Validity

Internal Validity: Internal validity refers to the degree to which the observed outcomes can be attributed to the experimental design rather than to uncontrolled variables or systematic errors. In this study, potential threats to internal validity may arise from inaccuracies in data collection, preprocessing, or feature selection. For example, if data were incorrectly labeled or key textual features were improperly extracted, the results could be biased or inconsistent. To reduce these risks, we employed well-established tools and techniques. Specifically, we used NumPy [42] for efficient and consistent data preprocessing, which helped to identify and remove irrelevant entries and mitigate the effect of missing values. In addition, we applied 10-fold cross-validation to ensure that the models were evaluated on a diverse and representative distribution of the data. This technique reduces the likelihood of over-fitting to a particular subset and improves the robustness of the evaluation results.
However, despite these measures, the reported F1-scores remain modest (0.33–0.36) across tasks. This could be attributed to several internal factors:
(1)
Severe class imbalance, particularly in the duplicate detection task (e.g., 11,539 duplicates vs. 231,068 non-duplicates), which may not be fully addressed by SMOTE due to its synthetic nature;
(2)
Linguistic ambiguity and noise in bug reports, including jargon and inconsistent phrasing;
(3)
Simplified model architectures without advanced tuning, domain-specific embedding, or attention mechanisms;
These factors collectively constrain the internal validity of conclusions drawn about model performance improvements from preprocessing steps like stop word removal.
External Validity: External validity concerns the extent to which the study’s findings can be generalized beyond the specific datasets and contexts used. Our experiments were conducted using bug reports from eight open-source software projects, which span various domains such as operating systems, compilers, and web browsers. While this diversity provides a reasonably broad testing ground, the models may not generalize well to proprietary, small-scale, or domain-specific projects that differ substantially in report structure or language usage. Although the use of cross-validation improves the reliability of within-sample evaluations, it does not address variation across different organizational settings. Future research should aim to replicate these findings on industrial datasets and across additional project types to confirm their generalizability.
Construct Validity: Construct validity relates to how well the chosen evaluation metrics reflect the true effectiveness of the models in performing the intended tasks. In this study, we used commonly accepted metrics in the field, including precision, recall, and F1-score, to evaluate model performance. While these metrics offer valuable insights, they may not capture all dimensions of performance, such as robustness to class imbalance or interpretability in practical applications. In particular, the F1-score can appear modest even when precision or recall is high for one class but low for another, especially in imbalanced contexts. To mitigate this, we reported AUC-ROC and AUC-PR values where appropriate and presented per-class analysis in appendices. However, future work should incorporate error analysis, calibration metrics, or task-specific cost functions to better understand model behavior and further improve the construct validity of the evaluation framework.
Despite the above limitations and the observation of slight fluctuations in certain specific cases (such as comment input and CNN model), comprehensive analysis of all projects and models, as well as the results of statistical significance tests, our core conclusion is as follows: stop word removal has no significant impact on the performance of deep learning-based defect report classification still holds true.

6. Related Work

6.1. Bug Duplicate Detection

The problem of detecting duplicate bug reports has received significant attention in prior research. Various approaches have been proposed to improve detection accuracy by leveraging both textual and behavioral features of bug reports.
Chaparro et al. [43] introduced a method that reformulates queries by combining observed software behaviors with bug report titles. Their technique improved duplicate detection accuracy by 56.6% to 78%, depending on the dataset. Kukkar et al. [44] designed a convolutional neural network (CNN)-based model that extracts semantic features to distinguish between duplicate and non-duplicate reports. Chauhan et al. [45] proposed the DENATURE framework, which integrates information retrieval techniques to achieve a prediction accuracy of 88.81%. Rocha et al. [46] used a combination of individual and clustered bug report representations, resulting in an average recall of 85%. Xie et al. [47] employed a CNN framework to model similarity between bug reports, showing significant improvements over traditional string-matching methods. He et al. [48] developed a Dual-Channel CNN that integrates feature matrices from pairs of bug reports, achieving high accuracy across several open-source datasets.
While these studies have shown strong performance in detecting duplicate bug reports, they typically focus on this task in isolation. Most of them do not consider related tasks such as severity classification and priority prediction, which are also critical for effective bug triaging. Moreover, prior work has generally adopted stop word removal during preprocessing as a standard step, without evaluating its necessity or impact on model performance.
In contrast, the present study adopts a unified framework that evaluates deep learning models across three interconnected tasks: duplicate detection, severity prediction, and priority prediction. Using a dataset of over 1.9 million bug reports from eight open-source projects, our study systematically examines whether removing stop words affects model performance across all tasks. The results show that stop word removal has little to no impact on classification accuracy, and statistical testing confirms that these differences are not significant.
Therefore, while earlier work has primarily focused on optimizing duplicate detection using various neural network architectures, our contribution lies in evaluating the broader implications of preprocessing decisions. Specifically, we show that stop word removal may not be necessary for deep learning-based bug report analysis, which provides practical value for streamlining preprocessing pipelines in large-scale software maintenance systems.

6.2. Bug Severity Prediction

Predicting the severity of software bugs is a crucial step in managing defect resolution and ensuring system reliability. Prior studies have introduced various machine learning techniques to enhance the accuracy of severity classification.
Mashhadi et al. [49] applied large language models, including CodeBERT, to the severity prediction task. Their method showed substantial performance gains, with improvements ranging from 29 to 140 percent compared to traditional models. Shatnawi and Alazzam [50] developed a severity assessment tool based on machine learning, which achieved improved classification accuracy through the use of over-sampling techniques and feature selection. Ramay et al. [51] proposed a deep learning approach that combines emotion analysis and natural language processing techniques, resulting in state-of-the-art performance in severity classification.
Although these studies have advanced severity prediction using increasingly powerful algorithms, they generally assume standard preprocessing steps, such as stop word removal, without explicitly evaluating their necessity or impact. Unlike these works, our study systematically investigates the effect of stop word removal on severity prediction performance. The analysis is conducted within a unified experimental framework that also includes duplicate detection and priority prediction tasks. This broader approach enables a more comprehensive understanding of how text preprocessing influences severity classification in bug report analysis.

6.3. Bug Priority Prediction

Predicting the priority of bug reports is essential for managing maintenance resources and scheduling resolution activities. Several researchers have developed classification models to automate this process.
Bani-Salameh et al. [52] applied a recurrent neural network with an LSTM architecture and reported superior results in comparison to support vector machines (SVMs) and k-nearest neighbors (KNNs), particularly in terms of accuracy, area under the curve (AUC), and F-measure. Rathnayake et al. [53] used natural language processing techniques to preprocess bug reports for CNN-based models and achieved a prediction accuracy of 71 percent. In addition, researchers such as Zhang et al. [54], Umer et al. [55], and Choudhary et al. [56] developed various machine learning, deep learning, and fuzzy logic-based methods that consistently outperformed traditional rule-based approaches in priority classification tasks.
While these studies show strong performance in priority prediction, they tend to address the task in isolation and often adopt standard preprocessing routines without critical evaluation. Our study differs by examining priority prediction in conjunction with duplicate detection and severity classification. More importantly, we evaluate the impact of stop word removal across all three tasks, which provides a more integrated perspective on model behavior and preprocessing strategy.

6.4. Comparison with Our Study

Many existing studies in bug report analysis rely on stop word removal as a default preprocessing step. However, few have questioned whether this step is necessary in software-specific contexts, where domain vocabulary and task-specific relevance may differ from general natural language processing tasks.
Our study fills this gap by systematically evaluating the effect of stop word removal across three classification tasks: duplicate detection, severity prediction, and priority prediction. Unlike previous research, which often treats these tasks independently and focuses on model design, we adopt a unified experimental framework using consistent datasets and evaluation metrics. The analysis spans multiple text segments of bug reports, including summary, description, and comments.
The results of our experiments indicate that stop word removal has a negligible impact on model performance for all tasks and architectures considered. Statistical tests confirm that the observed differences in F1-scores are not significant. These findings suggest that stop word removal may not be a necessary preprocessing step in deep learning-based bug report analysis. Eliminating it can simplify the preprocessing pipeline without compromising model effectiveness.
By providing a task-comprehensive and empirically validated analysis of preprocessing effects, our study contributes practical insights that are directly applicable to real-world software maintenance workflows.

7. Conclusions

Accurate and efficient analysis of bug reports is essential for maintaining software quality and supporting timely defect resolution. This study evaluated the performance of deep learning models on three critical bug report analysis tasks: duplicate detection, severity prediction, and priority prediction. The primary objective was to assess the practical impact of stop word removal during preprocessing, a step that is widely adopted in natural language processing workflows but rarely questioned in the context of software engineering tasks.
To conduct this evaluation, we used a large-scale dataset of over 1.9 million bug reports collected from eight open-source projects. Five commonly used deep learning models were applied, including convolutional neural networks (CNNs), long short-term memory networks (LSTM), gated recurrent units (GRUs), Transformer models, and BERTs. Each model was trained and tested on datasets prepared both with and without stop word removal.
The results showed that stop word removal had minimal impact on model performance. Across all tasks and model types, the average F1-scores remained consistent. Specifically, duplicate detection yielded an average F1-score of 0.36, while severity prediction and priority prediction both achieved average F1-scores of 0.33. They are comparable to the baselines, which shows that our method is still effective for this specific task in eight open-source projects. Statistical significance tests confirmed that the differences between models trained with and without stop word removal were not meaningful. These findings indicate that the exclusion of stop words does not enhance or degrade the effectiveness of deep learning models for bug report classification tasks.
Based on these results, we conclude that stop word removal is not necessary for effective bug report analysis using deep learning. Omitting this step can simplify preprocessing pipelines, particularly in large-scale or automated maintenance settings, without sacrificing accuracy. This contributes to a more streamlined and practical approach to bug triaging in real-world environments.
Future work will focus on expanding the dataset to include additional projects from diverse domains and incorporating more advanced text representations. We also plan to explore the impact of other preprocessing steps, such as stemming, abbreviation normalization, or domain-specific token filtering, to further refine the effectiveness and generalizability of bug report analysis models.

Author Contributions

Writing—original draft, J.J.; Writing—review & editing, G.Y. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by the Korea National University Development Project (2025) at Hankyong National University.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The original contributions presented in this study are included in the article. Further inquiries can be directed to the corresponding author.

Acknowledgments

This research was supported by Hankyong National University Korea National University Development Project (2025).

Conflicts of Interest

The authors declare no conflicts of interest.

Appendix A

Table A1. CNN performance on summary + description input with/without stopword removal.
Table A1. CNN performance on summary + description input with/without stopword removal.
Model CNN
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.350.500.340.530.540.380.500.350.570.56
Severity0.250.500.330.500.530.270.500.330.510.56
Priority0.250.500.330.500.500.250.500.330.500.55
FreeBSDDuplicate0.350.580.510.710.710.380.570.500.690.70
Severity0.270.500.330.500.550.250.500.330.510.53
Priority0.250.500.330.510.570.260.500.330.520.59
GCCDuplicate0.350.500.330.530.530.370.500.330.520.53
Severity0.250.500.330.490.530.250.500.330.510.53
Priority0.260.500.330.500.500.260.500.330.500.51
GentooDuplicate0.380.500.350.560.580.360.500.360.570.58
Severity0.250.500.330.500.500.250.500.350.510.50
Priority0.250.500.330.500.500.250.500.330.500.50
KernelDuplicate0.380.500.340.500.560.380.500.340.500.53
Severity0.260.500.330.520.530.300.500.330.510.53
Priority0.260.500.330.510.520.310.500.340.500.50
RedHatDuplicate0.320.520.390.610.590.380.510.380.570.56
Severity0.250.500.330.500.500.270.500.330.550.61
Priority0.250.500.330.500.500.270.500.330.520.63
SourcewareDuplicate0.340.500.340.490.490.380.500.340.510.50
Severity0.250.500.330.500.490.270.500.330.510.50
Priority0.320.500.330.500.490.280.500.330.500.55
WebKitDuplicate0.360.500.330.630.620.350.500.340.630.62
Severity0.250.500.330.500.500.300.500.330.510.74
Priority0.260.500.330.500.500.270.500.330.500.75
Table A2. LSTM performance on summary + description input with/without stopword removal.
Table A2. LSTM performance on summary + description input with/without stopword removal.
Model LSTM
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.380.500.330.540.540.250.520.350.620.60
Severity0.260.500.330.500.510.250.500.340.510.50
Priority0.250.500.330.520.500.250.500.330.510.53
FreeBSDDuplicate0.700.710.690.760.770.680.700.690.760.77
Severity0.250.500.330.500.520.250.500.330.510.53
Priority0.250.500.330.530.500.250.500.330.510.50
GCCDuplicate0.390.510.350.600.580.350.500.330.500.50
Severity0.250.500.330.500.500.250.500.330.510.52
Priority0.250.500.340.500.510.250.500.330.510.52
GentooDuplicate0.460.500.340.600.610.460.510.340.600.60
Severity0.250.500.330.500.510.250.500.330.510.50
Priority0.250.500.330.500.550.250.500.330.510.50
KernelDuplicate0.510.500.350.550.540.520.560.380.620.58
Severity0.250.500.330.510.580.250.500.330.490.60
Priority0.250.500.330.500.600.250.500.330.490.55
RedHatDuplicate0.660.610.680.680.650.700.670.650.750.72
Severity0.250.500.340.530.520.250.500.330.500.64
Priority0.250.500.330.520.520.250.500.330.500.66
SourcewareDuplicate0.480.500.340.500.500.480.500.340.500.50
Severity0.250.500.330.500.560.250.500.330.500.60
Priority0.250.500.330.510.610.250.500.330.500.62
WebKitDuplicate0.440.510.330.660.660.530.500.330.650.65
Severity0.250.500.330.510.520.250.500.330.500.75
Priority0.250.500.330.500.510.250.500.330.500.73
Table A3. GRU performance on summary + description input with/without stopword removal.
Table A3. GRU performance on summary + description input with/without stopword removal.
Model GRU
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.480.500.330.540.540.450.500.330.560.56
Severity0.250.500.330.500.570.250.500.330.490.50
Priority0.250.500.330.510.500.250.500.330.500.59
FreeBSDDuplicate0.440.500.330.530.500.430.500.330.500.50
Severity0.250.500.330.500.500.250.500.330.500.63
Priority0.250.500.340.510.500.250.500.330.500.55
GCCDuplicate0.330.500.340.540.540.350.500.330.500.50
Severity0.250.500.330.490.500.250.500.330.510.51
Priority0.250.500.330.500.500.250.500.330.500.51
GentooDuplicate0.320.500.350.550.500.290.500.330.560.56
Severity0.250.500.330.500.500.250.500.330.500.50
Priority0.250.500.330.500.500.250.500.330.500.50
KernelDuplicate0.630.580.340.660.630.570.500.350.520.50
Severity0.250.500.330.500.620.250.500.330.500.58
Priority0.250.500.330.500.620.250.500.330.500.64
RedHatDuplicate0.650.590.530.590.540.670.620.580.670.62
Severity0.250.500.330.500.500.250.500.330.500.71
Priority0.250.500.330.500.500.250.500.330.500.66
SourcewareDuplicate0.420.500.330.510.510.410.500.330.560.50
Severity0.250.500.330.500.660.250.500.330.500.63
Priority0.250.500.330.500.680.250.500.330.500.59
WebKitDuplicate0.380.500.330.650.640.270.500.330.650.65
Severity0.260.500.330.510.510.250.500.330.500.73
Priority0.250.500.330.500.500.250.500.330.500.69
Table A4. Transformer performance on summary + description input with/without stopword removal.
Table A4. Transformer performance on summary + description input with/without stopword removal.
Model Transformer
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.430.500.330.510.550.350.500.330.550.56
Severity0.25 0.50 0.33 0.49 0.50 0.25 0.50 0.34 0.50 0.55
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.55 0.50
FreeBSDDuplicate0.330.500.330.560.550.360.500.330.550.50
Severity0.25 0.50 0.33 0.49 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.27 0.50 0.34 0.50 0.50 0.25 0.50 0.33 0.50 0.50
GCCDuplicate0.280.500.360.500.500.320.500.350.550.50
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.51 0.56 0.25 0.50 0.33 0.52 0.56
GentooDuplicate0.260.500.340.560.550.280.500.340.500.56
Severity0.25 0.50 0.34 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.35 0.50 0.50
KernelDuplicate0.480.500.340.500.490.480.500.350.500.50
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.50
Priority0.26 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.50
RedHatDuplicate0.430.500.350.560.540.370.500.340.500.67
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
SourcewareDuplicate0.500.500.340.490.500.490.500.330.500.51
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
WebKitDuplicate0.400.510.360.590.600.430.500.330.610.62
Severity0.26 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Table A5. BERT performance on summary + description input with/without stopword removal.
Table A5. BERT performance on summary + description input with/without stopword removal.
Model BERT
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.340.500.330.500.520.370.500.330.580.57
Severity0.250.500.330.500.500.250.500.330.520.50
Priority0.250.500.330.490.520.250.500.330.500.69
FreeBSDDuplicate0.330.500.340.500.520.320.500.330.500.50
Severity0.250.500.330.500.500.250.500.330.500.50
Priority0.260.500.330.500.500.250.500.330.500.51
GCCDuplicate0.320.500.350.500.500.320.500.330.500.50
Severity0.250.500.330.500.500.250.500.340.500.50
Priority0.250.500.330.490.500.250.500.330.500.50
GentooDuplicate0.290.500.330.520.590.320.500.340.590.51
Severity0.250.500.330.500.500.250.500.330.500.50
Priority0.250.500.330.500.500.250.500.330.500.50
KernelDuplicate0.530.520.380.570.540.520.500.340.580.55
Severity0.25 0.50 0.33 0.52 0.50 0.25 0.50 0.33 0.51 0.50
Priority0.26 0.50 0.34 0.51 0.50 0.25 0.50 0.33 0.51 0.50
RedHatDuplicate0.620.530.410.580.550.640.590.440.670.64
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.53 0.52
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.52 0.51
SourcewareDuplicate0.440.500.340.490.490.390.500.330.500.50
Severity0.28 0.50 0.33 0.50 0.49 0.29 0.50 0.33 0.51 0.50
Priority0.26 0.50 0.33 0.50 0.49 0.26 0.50 0.33 0.51 0.50
WebKitDuplicate0.300.500.330.600.590.420.500.330.580.58
Severity0.26 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.49 0.50
Table A6. CNN performance on summary-only input with/without stopword removal.
Table A6. CNN performance on summary-only input with/without stopword removal.
Model CNN
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.420.500.330.510.510.540.500.340.530.53
Severity0.250.500.340.520.500.250.500.330.520.50
Priority0.250.500.330.500.520.250.500.330.510.50
FreeBSDDuplicate0.530.500.330.550.560.480.510.360.650.66
Severity0.250.500.330.500.720.250.500.330.500.50
Priority0.250.500.330.500.500.250.500.330.500.50
GCCDuplicate0.420.500.330.540.550.360.500.330.540.55
Severity0.250.500.330.520.500.250.500.330.500.69
Priority0.250.500.330.510.690.250.500.330.520.50
GentooDuplicate0.430.500.330.530.530.500.500.330.540.54
Severity0.250.500.330.510.500.250.500.330.500.50
Priority0.250.500.330.500.500.250.500.330.500.50
KernelDuplicate0.310.500.330.510.510.340.500.340.530.52
Severity0.250.500.330.490.490.250.500.330.490.50
Priority0.260.500.330.510.500.250.500.330.500.51
RedHatDuplicate0.450.500.330.490.490.500.500.330.500.51
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.52 0.59
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.59
SourcewareDuplicate0.490.500.340.490.490.450.500.330.500.52
Severity0.25 0.50 0.33 0.49 0.50 0.25 0.50 0.33 0.49 0.53
Priority0.25 0.50 0.33 0.49 0.50 0.25 0.50 0.33 0.49 0.49
WebKitDuplicate0.400.500.330.510.510.330.500.330.530.54
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.67
Priority0.25 0.50 0.33 0.50 0.51 0.25 0.50 0.33 0.50 0.67
Table A7. LSTM performance on summary-only input with/without stopword removal.
Table A7. LSTM performance on summary-only input with/without stopword removal.
Model LSTM
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.340.500.330.510.510.570.500.330.530.53
Severity0.25 0.50 0.33 0.50 0.54 0.25 0.50 0.33 0.51 0.50
Priority0.25 0.50 0.33 0.49 0.50 0.25 0.50 0.33 0.50 0.69
FreeBSDDuplicate0.570.550.460.690.700.570.550.470.680.68
Severity0.26 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.59 0.25 0.50 0.33 0.52 0.50
GCCDuplicate0.400.510.340.600.590.390.510.350.600.60
Severity0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.50 0.55
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
GentooDuplicate0.470.500.340.600.610.460.500.330.610.60
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.510.500.350.550.540.530.500.340.530.52
Severity0.25 0.50 0.33 0.50 0.58 0.25 0.50 0.33 0.49 0.58
Priority0.25 0.50 0.33 0.50 0.62 0.25 0.50 0.33 0.50 0.65
RedHatDuplicate0.620.500.350.550.540.620.510.370.580.56
Severity0.25 0.50 0.33 0.50 0.50 0.26 0.50 0.33 0.50 0.71
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.73
SourcewareDuplicate0.390.500.330.510.500.380.500.330.500.50
Severity0.25 0.50 0.33 0.50 0.64 0.25 0.50 0.33 0.50 0.56
Priority0.25 0.50 0.33 0.50 0.58 0.25 0.50 0.33 0.50 0.66
WebKitDuplicate0.520.500.340.560.560.430.500.330.550.56
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.55
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.55
Table A8. GRU performance on summary-only input with/without stopword removal.
Table A8. GRU performance on summary-only input with/without stopword removal.
Model GRU
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.410.500.330.500.500.500.500.330.530.53
Severity0.26 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.26 0.50 0.33 0.50 0.50
FreeBSDDuplicate0.390.500.330.500.500.330.500.330.520.56
Severity0.25 0.50 0.33 0.50 0.70 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
GCCDuplicate0.330.500.330.560.560.320.500.340.550.55
Severity0.25 0.50 0.34 0.50 0.58 0.26 0.50 0.33 0.51 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
GentooDuplicate0.310.500.330.590.580.330.500.350.590.59
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.51
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.480.500.340.520.530.500.500.340.510.51
Severity0.25 0.50 0.33 0.50 0.63 0.25 0.50 0.33 0.50 0.65
Priority0.25 0.50 0.33 0.50 0.66 0.25 0.50 0.33 0.50 0.61
RedHatDuplicate0.580.500.340.530.520.610.510.360.560.54
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.73
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.72
SourcewareDuplicate0.450.500.340.500.500.390.500.330.500.50
Severity0.25 0.50 0.33 0.50 0.59 0.25 0.50 0.33 0.50 0.59
Priority0.25 0.50 0.33 0.50 0.67 0.25 0.50 0.33 0.50 0.63
WebKitDuplicate0.550.500.330.550.560.570.500.330.570.58
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.75
Priority0.25 0.50 0.33 0.50 0.59 0.25 0.50 0.33 0.50 0.75
Table A9. Transformer performance on summary-only input with/without stopword removal.
Table A9. Transformer performance on summary-only input with/without stopword removal.
Model Transformer
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.370.500.340.500.510.360.500.330.510.51
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.51 0.51 0.25 0.50 0.33 0.51 0.50
FreeBSDDuplicate0.320.500.330.510.510.330.500.330.560.52
Severity0.25 0.50 0.33 0.51 0.49 0.25 0.50 0.33 0.50 0.68
Priority0.25 0.50 0.33 0.50 0.52 0.25 0.50 0.33 0.51 0.50
GCCDuplicate0.310.500.340.500.550.330.500.350.520.55
Severity0.25 0.50 0.33 0.50 0.49 0.25 0.50 0.33 0.50 0.59
Priority0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.49 0.50
GentooDuplicate0.260.500.330.550.520.290.500.340.500.51
Severity0.25 0.50 0.33 0.50 0.51 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.34 0.50 0.50 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.370.500.340.500.510.510.500.350.500.50
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
RedHatDuplicate0.480.510.410.510.500.500.500.410.500.51
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
SourcewareDuplicate0.400.500.330.500.500.410.500.340.500.55
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
WebKitDuplicate0.440.500.330.540.550.460.500.330.570.57
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.51
Table A10. BERT performance on summary-only input with/without stopword removal.
Table A10. BERT performance on summary-only input with/without stopword removal.
Model BERT
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.480.500.330.520.510.470.500.330.550.56
Severity0.25 0.50 0.33 0.50 0.54 0.25 0.50 0.33 0.51 0.50
Priority0.25 0.50 0.33 0.53 0.50 0.25 0.50 0.33 0.50 0.50
FreeBSDDuplicate0.350.500.330.560.550.330.500.340.500.52
Severity0.26 0.50 0.33 0.50 0.50 0.26 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.26 0.50 0.33 0.50 0.50
GCCDuplicate0.290.500.340.500.500.290.500.330.510.51
Severity0.25 0.50 0.33 0.52 0.50 0.25 0.50 0.33 0.50 0.69
Priority0.27 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.50
GentooDuplicate0.250.500.340.550.590.260.500.350.510.51
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.520.500.340.490.490.410.500.340.490.49
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.26 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.50 0.50
RedHatDuplicate0.580.500.340.500.500.600.500.340.510.51
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
SourcewareDuplicate0.430.500.330.500.510.410.500.330.520.52
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
WebKitDuplicate0.390.500.330.530.530.520.500.330.520.51
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Table A11. CNN performance on description-only input with/without stopword removal.
Table A11. CNN performance on description-only input with/without stopword removal.
Model CNN
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.350.500.330.550.550.330.500.340.550.55
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.52 0.50 0.25 0.50 0.33 0.50 0.50
FreeBSDDuplicate0.630.590.450.700.690.570.540.430.690.69
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.56 0.25 0.50 0.33 0.50 0.62
GCCDuplicate0.340.500.330.540.540.410.500.330.530.53
Severity0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.52 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.52
GentooDuplicate0.300.500.330.570.570.400.500.360.580.58
Severity0.25 0.50 0.33 0.53 0.51 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.470.500.340.500.510.520.500.340.510.51
Severity0.29 0.50 0.35 0.51 0.51 0.32 0.50 0.34 0.51 0.51
Priority0.39 0.50 0.38 0.49 0.50 0.27 0.50 0.35 0.50 0.50
RedHatDuplicate0.600.510.380.600.590.620.550.400.650.64
Severity0.25 0.50 0.33 0.50 0.50 0.31 0.50 0.33 0.51 0.74
Priority0.25 0.50 0.33 0.50 0.50 0.36 0.50 0.33 0.50 0.75
SourcewareDuplicate0.400.500.340.510.510.360.500.330.510.52
Severity0.31 0.50 0.34 0.50 0.50 0.30 0.50 0.33 0.51 0.52
Priority0.33 0.50 0.33 0.52 0.51 0.25 0.50 0.33 0.51 0.50
WebKitDuplicate0.340.500.330.610.600.300.500.330.630.61
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Table A12. LSTM performance on description-only input with/without stopword removal.
Table A12. LSTM performance on description-only input with/without stopword removal.
Model LSTM
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.480.510.370.610.590.490.510.350.600.60
Severity0.25 0.50 0.33 0.50 0.52 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.50
FreeBSDDuplicate0.360.500.360.580.590.370.500.360.590.60
Severity0.25 0.50 0.33 0.50 0.55 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.50 0.50
GCCDuplicate0.390.500.340.550.580.400.500.350.600.60
Severity0.25 0.50 0.33 0.50 0.69 0.25 0.50 0.33 0.50 0.59
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
GentooDuplicate0.370.500.330.610.610.350.500.330.590.59
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.540.520.390.600.570.600.550.370.630.50
Severity0.26 0.50 0.33 0.50 0.59 0.26 0.50 0.33 0.49 0.54
Priority0.25 0.50 0.33 0.50 0.60 0.25 0.50 0.33 0.50 0.57
RedHatDuplicate0.680.650.640.720.690.710.690.670.750.72
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.73
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.72
SourcewareDuplicate0.490.500.340.500.500.470.500.330.510.55
Severity0.28 0.50 0.33 0.50 0.64 0.25 0.50 0.33 0.50 0.58
Priority0.25 0.50 0.33 0.50 0.57 0.26 0.50 0.33 0.49 0.59
WebKitDuplicate0.420.520.380.630.620.570.530.400.650.64
Severity0.25 0.50 0.33 0.52 0.56 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.50 0.50
Table A13. GRU performance on description-only input with/without stopword removal.
Table A13. GRU performance on description-only input with/without stopword removal.
Model GRU
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.420.500.330.580.570.410.500.330.600.59
Severity0.25 0.50 0.33 0.51 0.55 0.25 0.50 0.33 0.50 0.69
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
FreeBSDDuplicate0.320.500.330.520.500.350.500.340.500.51
Severity0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.51 0.61
Priority0.25 0.50 0.33 0.50 0.51 0.25 0.50 0.33 0.50 0.50
GCCDuplicate0.340.500.330.530.540.330.500.330.540.54
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.52
Priority0.25 0.50 0.33 0.52 0.50 0.25 0.50 0.33 0.50 0.50
GentooDuplicate0.360.500.330.520.500.330.500.330.490.50
Severity0.25 0.50 0.33 0.49 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.420.500.340.520.520.420.500.340.520.52
Severity0.25 0.50 0.33 0.50 0.59 0.25 0.50 0.33 0.50 0.60
Priority0.25 0.50 0.33 0.50 0.62 0.25 0.50 0.33 0.50 0.65
RedHatDuplicate0.640.580.620.600.550.670.640.620.680.62
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.72
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.73
SourcewareDuplicate0.460.500.340.510.510.460.500.330.500.51
Severity0.25 0.50 0.33 0.50 0.66 0.25 0.50 0.33 0.50 0.65
Priority0.25 0.50 0.33 0.50 0.60 0.25 0.50 0.33 0.50 0.68
WebKitDuplicate0.390.500.330.620.610.360.500.340.630.62
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Table A14. Transformer performance on description-only input with/without stopword removal.
Table A14. Transformer performance on description-only input with/without stopword removal.
Model Transformer
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROC0.50
EclipseDuplicate0.280.500.330.560.560.290.500.330.500.50
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.64
Priority0.25 0.50 0.33 0.51 0.55 0.25 0.50 0.33 0.51 0.50
FreeBSDDuplicate0.350.500.330.500.510.350.500.330.510.51
Severity0.27 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.50 0.61
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
GCCDuplicate0.400.500.340.500.490.410.500.330.510.51
Severity0.25 0.50 0.33 0.50 0.55 0.25 0.50 0.33 0.52 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.34 0.50 0.50
GentooDuplicate0.360.500.340.500.500.350.500.330.500.50
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.52 0.50 0.25 0.50 0.33 0.50 0.51
KernelDuplicate0.500.500.380.500.540.460.500.350.520.50
Severity0.25 0.50 0.33 0.50 0.54 0.25 0.50 0.33 0.51 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.50
RedHatDuplicate0.450.500.360.510.530.540.520.350.520.46
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
SourcewareDuplicate0.430.500.360.500.500.420.500.350.520.52
Severity0.26 0.50 0.34 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
WebKitDuplicate0.400.510.350.600.600.350.500.330.580.59
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Table A15. BERT performance on description-only input with/without stopword removal.
Table A15. BERT performance on description-only input with/without stopword removal.
Model BERT
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.350.500.340.590.590.350.500.330.560.56
Severity0.25 0.50 0.33 0.50 0.54 0.25 0.50 0.33 0.52 0.50
Priority0.26 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.74
FreeBSDDuplicate0.350.500.330.550.560.340.500.330.520.52
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.50
Priority0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.51 0.64
GCCDuplicate0.330.500.330.500.500.320.500.330.510.51
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.69 0.25 0.50 0.33 0.49 0.54
GentooDuplicate0.310.500.330.550.550.320.500.330.500.50
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.51 0.55 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.450.500.340.550.550.420.500.330.560.52
Severity0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.51 0.50
Priority0.25 0.50 0.33 0.52 0.50 0.25 0.50 0.33 0.51 0.50
RedHatDuplicate0.420.500.330.560.550.410.500.340.520.52
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
SourcewareDuplicate0.360.500.360.500.500.330.500.350.540.56
Severity0.26 0.50 0.33 0.50 0.49 0.25 0.50 0.33 0.50 0.49
Priority0.25 0.50 0.33 0.50 0.49 0.25 0.50 0.33 0.49 0.49
WebKitDuplicate0.350.500.340.500.510.330.500.330.560.56
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Table A16. CNN performance on comment-only input with/without stopword removal.
Table A16. CNN performance on comment-only input with/without stopword removal.
Model CNN
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.290.500.330.560.560.300.500.350.510.50
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.61
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.34 0.50 0.50
FreeBSDDuplicate0.700.690.690.760.770.740.730.730.790.80
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.56
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.34 0.50 0.50
GCCDuplicate0.400.500.330.600.590.400.500.330.600.60
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.54 0.55
Priority0.25 0.50 0.34 0.51 0.55 0.25 0.50 0.33 0.50 0.50
GentooDuplicate0.460.510.360.630.630.390.500.340.630.63
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.540.510.360.560.540.460.510.360.520.59
Severity0.25 0.50 0.33 0.51 0.52 0.28 0.50 0.33 0.51 0.51
Priority0.25 0.50 0.33 0.49 0.49 0.25 0.50 0.33 0.49 0.50
RedHatDuplicate0.780.780.780.820.790.780.780.780.810.78
Severity0.25 0.50 0.33 0.50 0.50 0.29 0.50 0.33 0.51 0.58
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.52 0.61
SourcewareDuplicate0.490.500.370.500.510.430.500.350.500.51
Severity0.31 0.50 0.33 0.50 0.50 0.28 0.50 0.33 0.49 0.51
Priority0.25 0.50 0.33 0.50 0.54 0.27 0.50 0.33 0.50 0.50
WebKitDuplicate0.500.530.380.620.640.270.500.330.630.66
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Table A17. LSTM performance on comment-only input with/without stopword removal.
Table A17. LSTM performance on comment-only input with/without stopword removal.
Model LSTM
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.380.500.340.590.580.350.500.330.520.56
Severity0.25 0.50 0.33 0.50 0.51 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.51 0.52 0.25 0.50 0.33 0.50 0.55
FreeBSDDuplicate0.350.500.330.520.520.330.500.330.500.52
Severity0.25 0.50 0.33 0.52 0.50 0.25 0.50 0.33 0.51 0.61
Priority0.25 0.50 0.33 0.49 0.49 0.25 0.50 0.33 0.50 0.50
GCCDuplicate0.320.500.340.500.520.330.500.340.550.56
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.51
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
GentooDuplicate0.290.500.330.550.510.320.500.330.500.52
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.51 0.50
KernelDuplicate0.490.500.350.550.540.580.510.370.560.54
Severity0.26 0.50 0.33 0.50 0.57 0.25 0.50 0.33 0.49 0.62
Priority0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.50 0.61
RedHatDuplicate0.630.570.400.660.640.620.520.390.560.54
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.72
Priority0.25 0.50 0.33 0.50 0.50 0.26 0.50 0.33 0.50 0.71
SourcewareDuplicate0.440.500.330.500.500.420.500.330.510.50
Severity0.25 0.50 0.33 0.51 0.60 0.26 0.50 0.33 0.50 0.63
Priority0.25 0.50 0.33 0.49 0.59 0.25 0.50 0.33 0.49 0.64
WebKitDuplicate0.410.500.330.580.570.450.500.330.600.60
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Table A18. GRU performance on comment-only input with/without stopword removal.
Table A18. GRU performance on comment-only input with/without stopword removal.
Model GRU
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.420.500.330.580.570.420.500.340.580.58
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.49
FreeBSDDuplicate0.320.500.330.500.540.320.500.330.510.51
Severity0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.51 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.52
GCCDuplicate0.330.500.330.530.540.340.500.330.500.52
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.55
GentooDuplicate0.320.500.340.510.510.310.500.330.510.52
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.65
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.520.500.340.520.520.420.500.340.520.52
Severity0.25 0.50 0.33 0.50 0.62 0.25 0.50 0.33 0.50 0.64
Priority0.25 0.50 0.33 0.50 0.64 0.25 0.50 0.33 0.50 0.59
RedHatDuplicate0.640.580.520.600.550.670.640.520.680.62
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.72
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.70
SourcewareDuplicate0.460.500.340.520.500.450.500.340.510.51
Severity0.25 0.50 0.33 0.50 0.61 0.25 0.50 0.33 0.50 0.65
Priority0.25 0.50 0.33 0.50 0.66 0.25 0.50 0.33 0.50 0.63
WebKitDuplicate0.390.500.330.620.610.380.500.330.620.62
Severity0.25 0.50 0.33 0.49 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Table A19. Transformer performance on comment-only input with/without stopword removal.
Table A19. Transformer performance on comment-only input with/without stopword removal.
Model Transformer
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.280.500.330.560.560.280.500.330.550.52
Severity0.25 0.50 0.33 0.50 0.51 0.25 0.50 0.33 0.51 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
FreeBSDDuplicate0.290.500.330.510.520.290.500.330.520.52
Severity0.25 0.50 0.33 0.51 0.56 0.25 0.50 0.33 0.49 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.57
GCCDuplicate0.400.500.330.570.550.380.500.330.500.51
Severity0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.49 0.50
Priority0.25 0.50 0.33 0.49 0.50 0.25 0.50 0.33 0.50 0.51
GentooDuplicate0.310.500.330.550.560.320.500.330.550.55
Severity0.25 0.50 0.33 0.50 0.50 0.26 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.500.500.380.500.540.460.500.350.520.50
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
RedHatDuplicate0.450.500.360.500.530.540.520.350.520.56
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
SourcewareDuplicate0.530.500.360.500.500.520.500.350.510.50
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.49 0.50
WebKitDuplicate0.410.510.350.600.600.350.500.330.580.59
Severity0.26 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Table A20. BERT performance on comment-only input with/without stopword removal.
Table A20. BERT performance on comment-only input with/without stopword removal.
Model BERT
Apply Stopword RemovalNot Apply Stopword Removal
ProjectTaskPrecisionRecallF1ROCPRPrecisionRecallF1ROCPR
EclipseDuplicate0.350.500.330.520.520.360.500.330.550.51
Severity0.25 0.50 0.33 0.51 0.51 0.25 0.50 0.33 0.51 0.51
Priority0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.50 0.50
FreeBSDDuplicate0.280.500.330.500.500.280.500.330.520.51
Severity0.25 0.50 0.33 0.49 0.49 0.25 0.50 0.33 0.50 0.55
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.34 0.51 0.56
GCCDuplicate0.330.500.340.550.560.330.500.330.500.51
Severity0.25 0.50 0.33 0.49 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.49 0.25 0.50 0.33 0.49 0.69
GentooDuplicate0.360.500.330.500.540.350.500.340.560.56
Severity0.25 0.50 0.34 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
KernelDuplicate0.350.500.330.590.600.360.500.330.540.56
Severity0.25 0.50 0.33 0.51 0.50 0.25 0.50 0.33 0.51 0.50
Priority0.25 0.50 0.33 0.49 0.50 0.25 0.50 0.33 0.51 0.50
RedHatDuplicate0.570.530.420.490.490.570.560.450.490.49
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
SourcewareDuplicate0.320.500.330.500.510.330.500.330.520.52
Severity0.27 0.50 0.33 0.51 0.51 0.25 0.50 0.33 0.51 0.51
Priority0.25 0.50 0.33 0.51 0.51 0.25 0.50 0.33 0.52 0.51
WebKitDuplicate0.350.500.330.510.540.270.500.330.540.57
Severity0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.54
Priority0.25 0.50 0.33 0.50 0.50 0.25 0.50 0.33 0.50 0.50
Table A21. Statistical test results (t-test, Wilcoxon) for duplicate detection performance differences due to stopword removal.
Table A21. Statistical test results (t-test, Wilcoxon) for duplicate detection performance differences due to stopword removal.
Hypothesisp-ValueResultHypothesisp-ValueResultHypothesisp-ValueResult
H100.9944 (t)AcceptH200.9234 (w)AcceptH300.9238 (w)Accept
H400.9550 (w)AcceptH500.9549 (t)AcceptH600.9934 (t)Accept
H700.9838 (w)AcceptH800.9731 (w)AcceptH900.7903 (t)Accept
H1000.8318 (w)AcceptH1100.9835 (t)AcceptH1200.9250 (t)Accept
H1300.8620 (t)AcceptH1400.9675 (t)AcceptH1500.9492 (w)Accept
H1600.9779 (t)AcceptH1700.9389 (t)AcceptH1800.9303 (t)Accept
H1900.9089 (t)AcceptH2000.9593 (w)AcceptH2100.8965 (t)Accept
H2200.9635 (t)AcceptH2300.9529 (t)AcceptH2400.6545 (t)Accept
H2500.8565 (t)AcceptH2600.8865 (t)AcceptH2700.9556 (w)Accept
H2800.9517 (w)AcceptH2900.9995 (w)AcceptH3000.9545 (t)Accept
H3100.9970 (t)AcceptH3200.9994 (t)AcceptH3300.9954 (t)Accept
H3400.6988 (t)AcceptH3500.7965 (t)AcceptH3600.9677 (t)Accept
H3700.9638 (w)AcceptH3800.9550 (w)AcceptH3900.9626 (t)Accept
H4000.9324 (t)Accept
Table A22. Statistical test results for severity prediction performance differences due to stopword removal.
Table A22. Statistical test results for severity prediction performance differences due to stopword removal.
Hypothesisp-ValueResultHypothesisp-ValueResultHypothesisp-ValueResult
H4100.9826 (t)AcceptH4200.9590 (w)AcceptH4300.7940 (t)Accept
H4400.9306 (t)AcceptH4500.9830 (t)AcceptH4600.9851 (t)Accept
H4700.8837 (t)AcceptH4800.8697 (t)AcceptH4900.9018 (t)Accept
H5000.9819 (t)AcceptH5100.9360 (t)AcceptH5200.8971 (t)Accept
H5300.9367 (t)AcceptH5400.9632 (t)AcceptH5500.9836 (t)Accept
H5600.9183 (t)AcceptH5700.9607 (w)AcceptH5800.9721 (t)Accept
H5900.9543 (t)AcceptH6000.9153 (w)AcceptH6100.9775 (w)Accept
H6200.9015 (t)AcceptH6300.9859 (t)AcceptH6400.9699 (w)Accept
H6500.9776 (t)AcceptH6600.8544 (w)AcceptH6700.9544 (w)Accept
H6800.8582 (t)AcceptH6900.9452 (w)AcceptH7000.9339 (t)Accept
H7100.8080 (w)AcceptH7200.9681 (t)AcceptH7300.9958 (t)Accept
H7400.8232 (w)AcceptH7500.8938 (w)AcceptH7600.7578 (w)Accept
H7700.8982 (t)AcceptH7800.9386 (t)AcceptH7900.9568 (w)Accept
H8000.9169 (t)Accept
Table A23. Statistical test results for priority prediction performance differences due to stopword removal.
Table A23. Statistical test results for priority prediction performance differences due to stopword removal.
Hypothesisp-ValueResultHypothesisp-ValueResultHypothesisp-ValueResult
H8100.9719 (t)AcceptH8200.9126 (t)AcceptH8300.9701 (t)Accept
H8400.9648 (t)AcceptH8500.9564 (t)AcceptH8600.8379 (t)Accept
H8700.9672 (t)AcceptH8800.8774 (t)AcceptH8900.8283 (t)Accept
H9000.8210 (t)AcceptH9100.9140 (t)AcceptH9200.9670 (t)Accept
H9300.9248 (t)AcceptH9400.9527 (t)AcceptH9500.9853 (t)Accept
H9600.9820 (t)AcceptH9700.9479 (t)AcceptH9800.8891 (t)Accept
H9900.9457 (t)AcceptH10000.8779 (t)AcceptH10100.9521 (w)Accept
H10200.8726 (t)AcceptH10300.9979 (t)AcceptH10400.9284 (t)Accept
H10500.9875 (t)AcceptH10600.8701 (t)AcceptH10700.8946 (t)Accept
H10800.8522 (t)AcceptH10900.9585 (t)AcceptH11000.9508 (t)Accept
H11100.8978 (w)AcceptH11200.9339 (w)AcceptH11300.9952 (w)Accept
H11400.9066 (w)AcceptH11500.6370 (t)AcceptH11600.9201 (t)Accept
H11700.9077 (t)AcceptH11800.8913 (t)AcceptH11900.9214 (t)Accept
H12000.9583 (w)Accept
Figure A1. CNN performance on summary + description input with/without stopword removal.
Figure A1. CNN performance on summary + description input with/without stopword removal.
Applsci 15 09178 g0a1
Figure A2. LSTM performance on summary + description input with/without stopword removal.
Figure A2. LSTM performance on summary + description input with/without stopword removal.
Applsci 15 09178 g0a2
Figure A3. GRU performance on summary + description input with/without stopword removal.
Figure A3. GRU performance on summary + description input with/without stopword removal.
Applsci 15 09178 g0a3
Figure A4. Transformer performance on summary + description input with/without stopword removal.
Figure A4. Transformer performance on summary + description input with/without stopword removal.
Applsci 15 09178 g0a4
Figure A5. BERT performance on summary + description input with/without stopword removal.
Figure A5. BERT performance on summary + description input with/without stopword removal.
Applsci 15 09178 g0a5
Figure A6. CNN performance on summary-only input with/without stopword removal.
Figure A6. CNN performance on summary-only input with/without stopword removal.
Applsci 15 09178 g0a6
Figure A7. LSTM performance on summary-only input with/without stopword removal.
Figure A7. LSTM performance on summary-only input with/without stopword removal.
Applsci 15 09178 g0a7
Figure A8. GRU performance on summary-only input with/without stopword removal.
Figure A8. GRU performance on summary-only input with/without stopword removal.
Applsci 15 09178 g0a8
Figure A9. Transformer performance on summary-only input with/without stopword removal.
Figure A9. Transformer performance on summary-only input with/without stopword removal.
Applsci 15 09178 g0a9
Figure A10. BERT performance on summary-only input with/without stopword removal.
Figure A10. BERT performance on summary-only input with/without stopword removal.
Applsci 15 09178 g0a10
Figure A11. CNN performance on description-only input with/without stopword removal.
Figure A11. CNN performance on description-only input with/without stopword removal.
Applsci 15 09178 g0a11
Figure A12. LSTM performance on description-only input with/without stopword removal.
Figure A12. LSTM performance on description-only input with/without stopword removal.
Applsci 15 09178 g0a12
Figure A13. GRU performance on description-only input with/without stopword removal.
Figure A13. GRU performance on description-only input with/without stopword removal.
Applsci 15 09178 g0a13
Figure A14. Transformer performance on description-only input with/without stopword removal.
Figure A14. Transformer performance on description-only input with/without stopword removal.
Applsci 15 09178 g0a14
Figure A15. BERT performance on description-only input with/without stopword removal.
Figure A15. BERT performance on description-only input with/without stopword removal.
Applsci 15 09178 g0a15
Figure A16. CNN performance on comment-only input with/without stopword removal.
Figure A16. CNN performance on comment-only input with/without stopword removal.
Applsci 15 09178 g0a16
Figure A17. LSTM performance on comment-only input with/without stopword removal.
Figure A17. LSTM performance on comment-only input with/without stopword removal.
Applsci 15 09178 g0a17
Figure A18. GRU performance on comment-only input with/without stopword removal.
Figure A18. GRU performance on comment-only input with/without stopword removal.
Applsci 15 09178 g0a18
Figure A19. Transformer performance on comment-only input with/without stopword removal.
Figure A19. Transformer performance on comment-only input with/without stopword removal.
Applsci 15 09178 g0a19
Figure A20. BERT performance on comment-only input with/without stopword removal.
Figure A20. BERT performance on comment-only input with/without stopword removal.
Applsci 15 09178 g0a20

References

  1. Banerjee, S.; Syed, Z.; Helmick, J.; Culp, M.; Ryan, K.; Cukic, B. Automated Triaging of very Large Bug Repositories. Inf. Softw. Technol. 2017, 89, 1–13. [Google Scholar] [CrossRef]
  2. Eclipse. Available online: https://bugs.eclipse.org/bugs (accessed on 5 July 2024).
  3. Mozilla. Available online: https://bugzilla.mozilla.org/ (accessed on 5 July 2024).
  4. Mukherjee, U.; Rahman, M.M. Understanding the Impact of Domain Term Explanation on Duplicate Bug Report Detection. arXiv 2025, arXiv:2503.18832. [Google Scholar] [CrossRef]
  5. Bugzilla. Available online: https://bugzilla.org/ (accessed on 5 July 2024).
  6. Yoon, K. Convolutional Neural Networks for Sentence Classification. arXiv 2014, arXiv:1408.5882. [Google Scholar] [CrossRef]
  7. Wang, L.; Zhang, L.; Jiang, J. Duplicate Question Detection with Deep Learning in Stack Overflow. IEEE Access 2020, 8, 25964–25975. [Google Scholar] [CrossRef]
  8. FreeBSD. Available online: https://bugs.freebsd.org/bugzilla/ (accessed on 5 July 2024).
  9. GCC. Available online: https://gcc.gnu.org/bugzilla/ (accessed on 5 July 2024).
  10. Gentoo. Available online: https://bugs.gentoo.org/ (accessed on 5 July 2024).
  11. Kernel. Available online: https://bugzilla.kernel.org/ (accessed on 5 July 2024).
  12. RedHat. Available online: https://bugzilla.redhat.com/ (accessed on 5 July 2024).
  13. Sourceware. Available online: https://sourceware.org/bugzilla/ (accessed on 5 July 2024).
  14. Webkit. Available online: https://bugs.webkit.org/ (accessed on 5 July 2024).
  15. Hochreiter, S.; Schmidhuber, J. Long Short-Term Memory. Neural Comput. 1997, 9, 1735–1780. [Google Scholar] [CrossRef]
  16. Cho, K.; Van Merriënboer, B.; Gulcehre, C.; Bahdanau, D.; Bougares, F.; Schwenk, H.; Bengio, Y. Learning Phrase Representations Using RNN Encoder-Decoder for Statistical Machine Translation. arXiv 2014, arXiv:1406.1078. [Google Scholar] [CrossRef]
  17. Devlin, J. Bert: Pre-Training of Deep Bidirectional Transformers for Language Understanding. arXiv 2018, arXiv:1810.04805. [Google Scholar]
  18. Vaswani, A. Attention is All You Need. Adv. Neural Inf. Process. Syst. 2017, 30, 6000–6010. [Google Scholar]
  19. GCC #65092. Available online: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65092 (accessed on 5 July 2024).
  20. Bugzilla. Available online: https://bugzilla.readthedocs.io/en/5.2/using/editing.html (accessed on 5 July 2024).
  21. Eren, Ç.; Şahin, K.; Tüzün, E. Analyzing Bug Life Cycles to Derive Practical Insights. In Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering, Oulu, Finland, 14–16 June 2023; pp. 162–171. [Google Scholar]
  22. Kao, A.; Poteet, S.R. Natural Language Processing and Text Mining; Springer: London, UK, 2007. [Google Scholar]
  23. Xia, Y.; Hua, J.; Dougherty, E.R. Quantification of the Impact of Feature Selection on the Variance of Cross-Validation Error Estimation. EURASIP J. Bioinform. Syst. Biol. 2007, 2007, 1–11. [Google Scholar] [CrossRef]
  24. Nguyen, A.T.; Nguyen, T.T.; Nguyen, T.N.; Lo, D.; Sun, C. Duplicate Bug Report Detection with a Combination of Information Retrieval and Topic Modeling. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering (ASE), Essen, Germany, 3–7 September 2012; pp. 70–79. [Google Scholar]
  25. Sun, C.; Lo, D.; Wang, X.; Jiang, J.; Khoo, S.-C. A Discriminative Model Approach for Accurate Duplicate Bug Report Retrieval. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE), Cape Town, South Africa, 2–8 May 2010; Volume 1, pp. 45–54. [Google Scholar]
  26. Wang, X.; Zhang, L.; Xie, T.; Anvik, J.; Sun, J. An Approach to Detecting Duplicate Bug Reports Using Natural Language and Execution Information. In Proceedings of the 30th International Conference on Software Engineering (ICSE), Leipzig, Germany, 10–18 May 2008; pp. 461–470. [Google Scholar]
  27. Meng, Q.; Zhang, X.; Ramackers, G.; Visser, J. Combining Retrieval and Classification: Balancing Efficiency and Accuracy in Duplicate Bug Report Detection. arXiv 2024, arXiv:2404.14877. [Google Scholar] [CrossRef]
  28. Patil, A.; Jadon, A. Auto-Labelling of Bug Report Using Natural Language Processing. In Proceedings of the 2023 IEEE 8th for Convergence in Technology (I2CT), Pune, India, 7–9 April 2023; pp. 1–7. [Google Scholar]
  29. Eclipse. Available online: https://bugs.eclipse.org/bugs/show_bug.cgi?id=30959 (accessed on 5 July 2024).
  30. Eclipse. Available online: https://bugs.eclipse.org/bugs/show_bug.cgi?id=31082 (accessed on 5 July 2024).
  31. Gupta, S.; Gupta, S.K. A Systematic Study of Duplicate Bug Report Detection. Int. J. Adv. Comput. Sci. Appl. 2021, 12, 578–589. [Google Scholar] [CrossRef]
  32. Al-Msie, R.F. BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports. arXiv 2024, arXiv:2407.04707. [Google Scholar]
  33. Ramos, J. Using TF-IDF to Determine Word Relevance in Document Queries. In Proceedings of the First Instructional Conference on Machine Learning; Citeseer: Princeton, NJ, USA, 2003; Volume 242, pp. 29–48. [Google Scholar]
  34. McHugh, M.L. The Chi-Square Test of Independence. Biochem. Med. 2013, 23, 143–149. [Google Scholar] [CrossRef]
  35. Stopword List. Available online: https://gist.github.com/rg089/35e00abf8941d72d419224cfd5b5925d (accessed on 5 July 2024).
  36. Berrar, D. Cross-validation. In Encyclopedia of Bioinformatics and Computational Biology, 2nd ed.; Elsevier: Amsterdam, The Netherlands, 2019; pp. 542–545. [Google Scholar]
  37. Goutte, C.; Gaussier, E. A Probabilistic Interpretation of Precision, Recall and F-score, with Implication for Evaluation. In Proceedings of the European Conference on Information Retrieval, Santiago de Compostela, Spain, 21–23 March 2005; Springer: Berlin/Heidelberg, Germany, 2005; pp. 345–359. [Google Scholar]
  38. Davis, J.; Goadrich, M. The Relationship between Precision-Recall and ROC Curves. In Proceedings of the 23rd International Conference on Machine Learning, Pittsburgh, PA, USA, 25–29 June 2006; pp. 233–240. [Google Scholar]
  39. Gravetter, F.J.; Wallnau, L.B. Introduction to the T statistic. Essent. Statist. Behav. Sci. 2014, 8, 252. [Google Scholar]
  40. Woolson, R.F. Wilcoxon signed-rank test. In Wiley Encyclopedia of Clinical Trials; Wiley: Hoboken, NJ, USA, 2007; p. 13. [Google Scholar]
  41. Bland, J.M.; Altman, D.G. Multiple Significance Tests: The Bonferroni Method. BMJ 1995, 310, 170. [Google Scholar] [CrossRef]
  42. Harris, C.R.; Millman, K.J.; Van Der Walt, S.J.; Gommers, R.; Virtanen, P.; Cournapeau, D.; Oliphant, T.E. Array Programming with NumPy. Nature 2020, 585, 357–362. [Google Scholar] [CrossRef]
  43. Chaparro, O.; Florez, J.M.; Singh, U.; Marcus, A. Reformulating Queries for Duplicate Bug report Detection. In Proceedings of the IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER), Hangzhou, China, 24–27 February 2019; pp. 218–229. [Google Scholar]
  44. Kukkar, A.; Mohana, R.; Kumar, Y.; Nayyar, A.; Bilal, M.; Kwak, K.S. Duplicate Bug report Detection and Classification System based on Deep Learning Technique. IEEE Access 2020, 8, 200749–200763. [Google Scholar] [CrossRef]
  45. Chauhan, R.; Sharma, S.; Goyal, A. DENATURE: Duplicate. Detection and Type Identification in Open Source Bug Repositories. Int. J. Syst. Assur. Eng. Manag. 2023, 14, 1–18. [Google Scholar] [CrossRef]
  46. Rocha, T.M.; Carvalho, A.L.D.C. SiameseQAT: A Semantic Context-Based Duplicate Bug report Detection using Replicated Cluster Information. IEEE Access 2021, 9, 44610–44630. [Google Scholar] [CrossRef]
  47. Xie, Q.; Wen, Z.; Zhu, J.; Gao, C.; Zheng, Z. Detecting Duplicate Bug reports with Convolutional Neural Networks. In Proceedings of the IEEE 25th Asia-Pacific Software Engineering Conference (APSEC), Nara, Japan, 4–7 December 2018; pp. 416–425. [Google Scholar]
  48. He, J.; Xu, L.; Yan, M.; Xia, X.; Lei, Y. Duplicate Bug report Detection using Dual-Channel Convolutional Neural Networks. In Proceedings of the 28th International Conference on Program Comprehension, Seoul, Republic of Korea, 13–15 July 2020; pp. 117–127. [Google Scholar]
  49. Mashhadi, E.; Ahmadvand, H.; Hemmati, H. Method-Level Bug Severity Prediction using Source Code Metrics and LLMs. In Proceedings of the IEEE 34th International Symposium on Software Reliability Engineering (ISSRE), Florence, Italy, 9–12 October 2023; pp. 635–646. [Google Scholar]
  50. Shatnawi, M.Q.; Alazzam, B. An Assessment of Eclipse Bugs’ Priority and Severity Prediction Using Machine Learning. Int. J. Commun. Netw. Inf. Secur. 2022, 4, 62–69. [Google Scholar] [CrossRef]
  51. Ramay, W.Y.; Umer, Q.; Yin, X.C.; Zhu, C.; Illahi, I. Deep Neural Network-Based Severity Prediction of Bug reports. IEEE Access 2019, 7, 46846–46857. [Google Scholar] [CrossRef]
  52. Bani-Salameh, H.; Sallam, M.; AI shboul, B. A Deep-Learning-Based Bug Priority Prediction using RNN-LSTM Neural Networks. E-Inform. Softw. Eng. J. 2021, 15, 29–45. [Google Scholar]
  53. Rathnayake, R.M.D.S.; Kumara, B.T.G.S.; Ekanayake, E.M.U.W.J.B. CNN-Based Priority Prediction of Bug reports. In Proceedings of the IEEE International Conference on Decision Aid Sciences and Application (DASA), Online, 7–8 December 2021; pp. 299–303. [Google Scholar]
  54. Zhang, W.; Challis, C. Automatic Bug Priority Prediction using DNN Based Regression. In Advances in Natural Computation, Fuzzy Systems and Knowledge Discovery, Proceedings of the International Conference on Natural Computation, Fuzzy Systems and Knowledge Discovery, Xi′an, China, 1–3 August 2020; Springer: Cham, Switzerland, 2020; Volume 1, pp. 333–340. [Google Scholar]
  55. Umer, Q.; Liu, H.; Sultan, Y. Emotion based Automated Priority Prediction for Bug reports. IEEE Access 2018, 6, 35743–35752. [Google Scholar] [CrossRef]
  56. Choudhary, P.A.; Singh, S. Neural Network Based Bug Priority Prediction Model using Text Classification Techniques. Int. J. Adv. Res. Comput. Sci. 2017, 8, 1315. [Google Scholar]
Figure 1. Example bug report structure from GCC tracker (from [19]).
Figure 1. Example bug report structure from GCC tracker (from [19]).
Applsci 15 09178 g001
Figure 2. Standard lifecycle phases of software bug management.
Figure 2. Standard lifecycle phases of software bug management.
Applsci 15 09178 g002
Figure 3. System architecture for bug duplicate detection.
Figure 3. System architecture for bug duplicate detection.
Applsci 15 09178 g003
Figure 4. Example pair of duplicate bug reports in Eclipse.
Figure 4. Example pair of duplicate bug reports in Eclipse.
Applsci 15 09178 g004
Figure 5. Workflow for severity classification of bug reports.
Figure 5. Workflow for severity classification of bug reports.
Applsci 15 09178 g005
Figure 6. Classification criteria for bug severity levels.
Figure 6. Classification criteria for bug severity levels.
Applsci 15 09178 g006
Figure 7. Bug report pipeline for priority prediction.
Figure 7. Bug report pipeline for priority prediction.
Applsci 15 09178 g007
Figure 8. Examples of bug priority levels and their definitions.
Figure 8. Examples of bug priority levels and their definitions.
Applsci 15 09178 g008
Figure 9. Proposed framework for bug report analysis and prediction.
Figure 9. Proposed framework for bug report analysis and prediction.
Applsci 15 09178 g009
Figure 10. Illustrative example of preprocessing steps for bug reports.
Figure 10. Illustrative example of preprocessing steps for bug reports.
Applsci 15 09178 g010
Figure 11. Feature selection process using TF-IDF and Chi-square methods.
Figure 11. Feature selection process using TF-IDF and Chi-square methods.
Applsci 15 09178 g011
Figure 12. CNN architecture for classification with convolution and pooling layers.
Figure 12. CNN architecture for classification with convolution and pooling layers.
Applsci 15 09178 g012
Figure 13. LSTM architecture for sequential bug report analysis.
Figure 13. LSTM architecture for sequential bug report analysis.
Applsci 15 09178 g013
Figure 14. Architecture of the GRU-based model for bug report classification.
Figure 14. Architecture of the GRU-based model for bug report classification.
Applsci 15 09178 g014
Figure 15. Transformer-based text classification model for bug reports using multi-head self-attention and positional encoding.
Figure 15. Transformer-based text classification model for bug reports using multi-head self-attention and positional encoding.
Applsci 15 09178 g015
Figure 16. BERT model architecture adapted for bug report classification with fine-tuning on downstream tasks.
Figure 16. BERT model architecture adapted for bug report classification with fine-tuning on downstream tasks.
Applsci 15 09178 g016
Table 1. Dataset summary: bug report statistics across eight open-source projects.
Table 1. Dataset summary: bug report statistics across eight open-source projects.
Project TypeProjectTime FrameNumber of Reports
Development ToolEclipse28/02/02–21/08/23559,680
GCC24/06/02–15/08/2394,589
ServerSourceware27/10/00–16/08/2330,710
Web Browser EngineWebKit01/01/01–15/08/23242,605
Operating SystemFreeBSD03/06/95–21/08/23262,410
Gentoo09/11/02–23/08/23536,646
Kernel20/04/08–17/12/1414,366
Red Hat31/03/00–29/08/07160,178
Total1,901,084
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Ji, J.; Yang, G. Do Stop Words Matter in Bug Report Analysis? Empirical Findings Using Deep Learning Models Across Duplicate, Severity, and Priority Classification. Appl. Sci. 2025, 15, 9178. https://doi.org/10.3390/app15169178

AMA Style

Ji J, Yang G. Do Stop Words Matter in Bug Report Analysis? Empirical Findings Using Deep Learning Models Across Duplicate, Severity, and Priority Classification. Applied Sciences. 2025; 15(16):9178. https://doi.org/10.3390/app15169178

Chicago/Turabian Style

Ji, Jinfeng, and Geunseok Yang. 2025. "Do Stop Words Matter in Bug Report Analysis? Empirical Findings Using Deep Learning Models Across Duplicate, Severity, and Priority Classification" Applied Sciences 15, no. 16: 9178. https://doi.org/10.3390/app15169178

APA Style

Ji, J., & Yang, G. (2025). Do Stop Words Matter in Bug Report Analysis? Empirical Findings Using Deep Learning Models Across Duplicate, Severity, and Priority Classification. Applied Sciences, 15(16), 9178. https://doi.org/10.3390/app15169178

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop