论文部分内容阅读
信息检索技术和自然语言处理技术是解决软件工程问题中最广泛使用的方法。在这些技术中,一个关键的操作是停用词移除,其目的是通过利用停用词表来移除传递较少语义信息的一些经常出现的词。因此,停用词表在决定这些技术在解决软件工程问题中的性能方面起着重要作用。软件工程领域目前广泛应用的通用英语停用词表已经过时且不具有领域相关性,人工基于任务总结的新的停用词表通常具有主观性及不完善性。据本文所知,软件工程领域目前并没有领域通用停用词表。为了填补这一空白同时解决上述问题,本文试图生成软件工程领域通用停用词表并对其进行分析。本文主要贡献如下:(1)总结了软件工程中停用词表的应用现状。本文通过系统地搜索、分析总结一些顶级期刊和会议的相关文献,将软件工程历史上已出现的停用词表进行了分类。(2)首次生成软件工程领域停用词表。本文基于Stack Overflow中的众智数据,在分析及预处理语料库的基础上,实现基于词频及文档频率分布的算法,分析生成了软件工程领域停用词表。同时,分析了本文使用的语料库与通用英语语料库的不同、以及停用表的内容。(3)基于无监督bug报告摘要任务对停用词表应用效果进行了分析。在任务中分别应用本文生成的软件工程停用词表及通用英语停用词表来预处理数据集,以通用英语停用词表应用效果作为对比基准,通过采取相同的评价标准、实验平台和实验步骤来排除其他因素的影响。分析结果表明本文生成的软件工程停用词表应用效果最好。(4)基于无监督推荐API相关教程片段任务对停用词表应用效果进行了分析。在任务中分别应用本文生成的软件工程停用词表及通用英语停用词表来预处理数据集,以通用英语停用词表应用效果作为对比基准,通过采取相同的评价标准、实验平台和实验步骤来排除其他因素的影响。分析结果表明本文生成的软件工程停用词表应用效果最好。