An ensemble learning approach for software semantic clone detection
This work addresses the challenge of efficient semantic clone detection for software developers, offering a method that reduces data labeling and training costs compared to deep learning approaches, though it is incremental in nature.
The paper tackles the problem of detecting semantic clones in software code, which are functionally similar but syntactically different, by proposing an ensemble learning approach with word embeddings. The evaluation on BigCloneBench shows significant improvements in precision and recall compared to existing token-based and deep learning-based detectors.
Code clone is a serious problem in software and has the potential to software defects, maintenance overhead, and licensing violations. Therefore, clone detection is important for reducing maintenance effort and improving code quality during software evolution. A variety of clone detection techniques have been proposed to identify similar code in software. However, few of them can efficiently detect semantic clones (functionally similar code without any syntactic resemblance). Recently, several deep learning based clone detectors are proposed to detect semantic clones. However, these approaches have high cost in data labelling and model training. In this paper, we propose a novel approach that leverages word embedding and ensemble learning techniques to detect semantic clones. Our evaluation on a commonly used clone benchmark, BigCloneBench, shows that our approach significantly improves the precision and recall of semantic clone detection, in comparison to a token-based clone detector, SourcererCC, and another deep learning based clone detector, CDLH.