摘要

软件自承认技术债(Self-admitted Technical Debt, SATD)由程序开发人员写入项目的源代码注释中,是开发人员为追求短期效益而刻意留下软件缺陷的说明,大量的SATD将不利于软件维护。近年来,越来越多的学者致力于软件SATD识别的研究,并提出了不同的识别方法,如基于自然语言处理或文本挖掘等检测方法。然而,大多数研究结果依赖于现有的词库或手工提取的特征,不仅耗费了大量的时间,而且增加了计算复杂度,识别结果并不理想。基于此,提出了一种基于双向门控循环单元(Gate Recurrent Unit, GRU)和注意力机制的软件自承认技术债识别方法,通过Word2vec中的Skip-gram模型获取词向量,构建双向GRU网络获取高级特征,并利用注意力机制自动发现对SATD分类起到关键作用的词,从而捕获最重要的语义信息。实验结果表明,本文方法在精确率、召回率和F1-score上均有较优表现,能够有效地识别软件SATD,避免了传统任务中复杂的特征工程。