收藏 分销(赏)

用户特征请求分析与处理研究综述.pdf

上传人:自信****多点 文档编号:755401 上传时间:2024-03-05 格式:PDF 页数:32 大小:8.95MB
下载 相关 举报
用户特征请求分析与处理研究综述.pdf_第1页
第1页 / 共32页
用户特征请求分析与处理研究综述.pdf_第2页
第2页 / 共32页
用户特征请求分析与处理研究综述.pdf_第3页
第3页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、用户特征请求分析与处理研究综述*牛菲菲1,2,李传艺1,2,葛季栋1,2,骆斌1,21(计算机软件新技术国家重点实验室(南京大学),江苏南京210093)2(南京大学软件学院,江苏南京210093)通信作者:李传艺,E-mail:摘要:特征请求是软件产品的真实用户在开放平台上提出的对现有特征的改进或者对新特征的请求.特征请求在一定程度上反映了用户的真实意愿,代表了用户的需求.高效、准确地分析和处理用户特征请求对于提升用户满意度、提高产品竞争力起着至关重要的作用.用户的广泛参与,使得特征请求成为越来越重要的需求来源.然而,特征请求在其来源、内容以及形式等方面均与传统的软件需求不同.进而将其充分应

2、用于软件开发过程所采用的具体方法,也有别于传统的需求工程.目前已经有许多将特征请求应用于软件开发过程中的相关研究,比如特征请求的获取、分类、排序、质量评估、为特征请求推荐开发者,以及定位相关代码等.随着相关工作的不断增加,形成一个针对特征请求分析与处理研究综述的必要性日益增强.因此,调研 121 篇关于在软件开发过程中分析和处理特征请求的国内外学术研究论文,从将特征请求应用于软件开发过程的角度对现有成果进行系统地梳理.总结现有针对特征请求的研究主题,提出将特征请求应用于软件开发过程的处理流程,并与传统的需求工程过程进行对比.此外,深入分析在各个需求工程活动中使用的具体方法及方法之间的差别.最后

3、,对特征请求的未来研究方向进行展望,以期为同行研究人员提供参考.关键词:特征请求;需求工程;软件开发;分析与处理中图法分类号:TP311中文引用格式:牛菲菲,李传艺,葛季栋,骆斌.用户特征请求分析与处理研究综述.软件学报,2023,34(8):36053636.http:/ on User Feature Requests Analysis and ProcessingNIUFei-Fei1,2,LIChuan-Yi1,2,GEJi-Dong1,2,LUOBin1,21(StateKeyLaboratoryforNovelSoftwareTechnology(NanjingUniversity

4、),Nanjing210093,China)2(SoftwareInstitute,NanjingUniversity,Nanjing210093,China)Abstract:Feature requests refer to suggestions to perfect existing features or requests for new features proposed by software users onopenplatforms,andtheycanreflectuserswishesandneeds.Inaddition,efficientandaccurateanal

5、ysisandprocessingoffeaturerequestsplayavitalroleinimprovingusersatisfactionandproductcompetitiveness.Withusersactiveparticipation,featurerequestshavebecomean important source of software requirements.However,feature requests are different from traditional requirements in terms of source,content,and

6、form.Therefore,methods of applying feature requests to software development must differ from that of traditionalrequirements.Atpresent,massiveresearchfocusesonapplyingfeaturerequeststosoftwaredevelopment,e.g.,featurerequestsacquisition,classification,prioritization,quality management,developer recom

7、mendation,and location of relevant codes.As related research emergesconstantly,it is increasingly necessary to review user feature request analysis and processing.This study analyzes 121 global academicresearch papers on how to analyze and process feature requests in the software development process

8、 and systematically sorts existing*基金项目:国家自然科学基金(61802167);南京大学计算机软件新技术国家重点实验室海外开放课题(KFKT2020A05)本文由“领域软件工程”专题特约编辑汤恩义副教授、江贺教授、陈俊洁副教授、李必信教授以及唐滨副教授推荐.收稿时间:2021-08-10;修改时间:2021-10-09;采用时间:2022-01-10;jos 在线出版时间:2022-01-28CNKI 网络首发时间:2023-01-19软件学报ISSN1000-9825,CODENRUXUEWE-mail:Journal of Software,2023,

9、34(8):36053636doi:10.13328/ki.jos.006558http:/中国科学院软件研究所版权所有.Tel:+86-10-62562563research results from the perspective of applying feature requests to software development.In addition,the study summarizes researchtopics on feature requests,suggests that feature requests be applied to software develop

10、ment,and makes a comparison with traditionalrequirementsengineeringprocesses.Furthermore,itanalyzesexistingresearchmethodsofdifferentrequirementengineeringandpointsoutthedifference.Finally,theresearchdirectionoffeaturerequestsisdiscussedtoprovideguidanceforfutureresearchers.Key words:featurerequest;

11、requirementsengineering;softwaredevelopment;analysisandprocessing在开源软件仓库的公开论坛上,用户可能以用户评论(userreview)或问题报告(issuereport)的形式,针对软件提出缺陷报告(bugreport)、特征请求(featurerequest)等.其中特征请求一般是请求新的特征或者对现有特征的改进.近年来互联网迅速发展,不仅各种类型软件的数量不断激增,同时,在应用商店或者开放平台(如问题跟踪系统)上,也不断有用户针对已有软件提出新的请求.例如,AppleAppStore 和 GooglePlay 自推出起,两个

12、应用商店平台已经积累了超过 100 万个可供下载和评论的应用程序1,伴随着这些应用程序,也产生了大量的用户评论.一方面,这些用户请求体现了用户的真实意愿,开发者满足用户的意见对于提升用户满意度、提高软件竞争力起着至关重要的作用.另一方面,特征请求与传统的软件需求在内容、形式等方面都有很大的不同,传统的需求工程处理方法不一定适用于特征请求.因此,出现了许多针对如何将特征请求应用于软件开发和维护过程中的研究,比如特征请求分类、优先级排序及管理等.这些研究从不同的角度提出了不同的解决方法,其目标都是将特征请求应用于软件开发和维护过程中,以满足用户的请求进而提升用户满意度和产品竞争力.目前,已有学者发

13、表了一些与特征请求相关研究综述.例如,Cavalcanti 等人2在 2013 年对开源仓库(如Bugzilla、Mantis、Redmine 等)的管理进行调研,将变更请求(changerequest)的管理活动映射到不同的研究主题和领域,并分别从机遇和挑战两个角度进行探讨.Tavakoli 等人3对从移动应用评论中提取软件开发的有用信息做了综述研究.他们一共调研了 34 篇文章,发现现有研究中主要采用监督学习、自然语言处理以及特征抽取等技术从用户评论中挖掘有用信息.在移动应用开发中最经常使用的用户评论的主题包括缺陷报告和特征请求等.Wang 等人4对 44 篇将用户反馈应用于需求工程的研究

14、做了综述研究.他们将用户反馈的研究映射到需求工程领域阶段,对显示反馈和隐式反馈均做了调研.Bakar 等人5对从自然语言需求描述中抽取软件特征的研究做了综述调研.特征请求可能来源于用户反馈,是软件特征的具体描述.然而,目前缺乏将特征请求应用于软件工程的系统调研,尤其是从需求工程的视角,包括其获取、分析、管理等,以便于将其更好地应用于软件开发.为系统地了解现有研究中是如何处理利用特征请求的,本文对现有针对特征请求的研究进行梳理,从特征请求的获取、分析、管理到开发等活动,分类总结了相关研究工作.并深入探究每一主题的研究进展,展望未来研究方向,以期为相关领域的研究人员提供参考.传统的需求工程过程如图

15、 1 所示,包括需求获取、需求分析、需求规格化与验证,以及需求管理等活动.本文总结了现有针对特征请求的研究主题,并与传统需求工程活动对应.如图 2 所示,这些研究主题主要包括:特征请求获取、软件特征抽取、分析理解、优先级排序、特征请求评审、特征请求跟踪以及变更管理.由于针对特征请求的规格化与验证相关研究较少,因此本文主要讨论需求获取、需求分析与需求管理相关的研究活动.需求获取需求分析需求规格化与验证需求管理需求评审需求跟踪变更管理子活动.子活动子活动.子活动子活动.子活动需求工程过程包括包括设计编码测试维护管理软件开发阶段.图1传统需求工程过程3606软件学报2023 年第 34 卷第 8 期

16、特征请求获取优先级排序结构化分析需求获取:变更管理接受预测开发者推荐代码定位需求分析:软件特征抽取特征请求评审需求管理:特征请求跟踪用户意图识别特征请求分类摘要生成代码推荐图2特征请求研究主题本文第 1 节详细介绍文献检索与选择的过程.第 2 节对特征请求相关的概念进行分析、总结.第 35 节分别介绍在传统需求工程活动框架下,特征请求相应的研究进展.具体而言,各节分别从需求获取、需求分析及需求管理的角度对现有针对特征请求的研究进行梳理与总结.第 6 节汇总现有研究中关于特征请求的公开的工具以及数据集,以共享研究资源.第 7 节总结已有研究,并探究特征请求的研究挑战与机遇.最后总结全文,并展望未

17、来研究方向.1 文献检索与选择为了对已有关于特征请求的研究进行系统的分析,本研究采用自动检索和滚雪球6相结合的方式检索相关文献.具体检索步骤如下.步骤 1.以“FeatureRequest”和“特征请求”为关键词,在与软件工程社区最相关的、广泛使用的文献检索库中检索相关论文:IEEEXplore、ACMDigitalLibrary、ScienceDirect、SpringerLink、WileyInterScience、Elsevier、GoogleScholar 以及中国知网.资源库的链接如表 1 所示.表1文献资源库列表资源库名称链接IEEEXplorehttp:/www.ieee.org

18、/web/publications/xplore/ACMDigitalLibraryhttp:/portal.acm.orgScienceDirecthttp:/ 2.根据表 2 所示筛选标准筛选步骤 1 得到的结果,保留符合本综述研究主题的论文.最终得到 23 篇初始文献.步骤 3.采用滚雪球的方法,分别向前检索初始文献的引用文献,向后检索引用初始文献的文献,根据表 2 所示筛选标准保留符合特征请求主题的文献.步骤 4.针对步骤 3 中获取的文献,重复步骤 3,直到文献集合收敛,不再有新的论文加入.经过上述 4 个步骤,最终的研究论文集合包括 121 篇文章(截至 2021 年 5 月),其

19、中包括 15 篇工具类论文.牛菲菲等:用户特征请求分析与处理研究综述3607图 3 统计了不同年份论文的发表数量.自 2010 年起针对特征请求的研究逐年增加.图 4 与图 5 分别统计了论文收录的期刊、会议分布情况以及高频的会议、期刊.本文调研文献有 82 篇收录于会议,39 篇收录于期刊.其中 CCF-A 类期刊与会议一共 18 篇,CCF-B 类期刊与会议一共 49 篇,CCF-C 类期刊与会议一共 17 篇.大部分收录于软件工程领域的权威会议或期刊,包括 RE 会议(18 篇)、ICSE 会议(10 篇)、REFSQ 会议(7 篇)、ASE 会议(6 篇)、JSS 期刊(6 篇)、JS

20、EP 期刊(5 篇)、RE 期刊(4 篇)、EASE 会议(4 篇)、ESE 期刊(4 篇)等.从统计结果可以看出关于特征请求的研究主要发表于软件工程主题相关的会议和期刊,尤其是需求工程.图 6 统计了主要的研究主题分布.现有的针对特征请求的研究主要集中于需求获取与需求管理,分别占所有研究的 41%和 36%.此外,需求分析占 20%.表2文献过滤标准过滤类型过滤标准不包含文献语言为中文和英文之外的其他语言主要研究对象为缺陷报告博士生或者硕士生毕业论文不是完整的研究,研究方法、研究结果、结论等必备因素缺失网上无法下载完整的文章内容包含文章标题或者内容包含“特征请求”“featurereques

21、t”关键词文章已发表,发表在国内外的会议或者期刊上文章的主要研究对象是特征请求或者包含特征请求的概念,如用户反馈等文章的主要研究目标是面向软件工程的特征请求研究数量年份20151050200420052006200720082009201020112012201320142015201620172018201920202021100 0325681216181216 16411图3论文在不同年份的文献数量分布05101520253035404550其他其他英文中文数量会议 期刊A 类B 类 C 类A 类 B 类 C 类图4论文收录会议、期刊等级分布情况数量181614121086420RE 会

22、议ICSEREFSQASE 会议JSSRE 期刊EASEESEICSMEICPCISPSEMSE计算机学报IEEE AccessSANERTSEJSEP图5论文收录高频会议和期刊需求获取需求分析需求管理综述3%36%20%41%图6研究主题分布3608软件学报2023 年第 34 卷第 8 期 2 特征请求相关概念为系统地了解特征请求及其相关概念,通过总结相关研究论文,汇总了与特征请求相关的术语,不同术语之间的关系如图 7 所示.User/ProductCustomer(e.g.Bugzilla)(e.g.GitHub)AppStore,Google PlayStack Overflow)En

23、hancementOpen source software(OSS)Issue tracking systemOpen source repositoryApp store(e.g.AppleOnline community(e.g.Issue reportChange requestApp/User reviewreview/wishes feedbackBug reportreport Feature requestrequirementsUser requirementsProduct featureJust-in-time图7特征请求相关概念Herzig 等人7将特征请求定义为:特征或

24、特征请求是一种应用于软件维护的,实现了某种新功能的结构化请求,其包括标题,描述等许多属性.特征请求一般是开源软件(opensourcesoftware)的真实用户在开源用户平台上提出的新的特征请求或对已有特征的增强.开源用户平台可能包括问题追踪系统(issuetrackingsystem,ITS),开源仓库(opensourcerepository),应用商店(Appstore),在线论坛(onlinecommunity)等.在这些开源用户平台上,用户可以提交他们的问题报告、变更请求、用户评论、客户愿望(customerwishes)以及用户反馈(userfeedback)等.这些报告或者反馈

25、,可能是缺陷报告,或特征请求,也有可能是其他非信息性的评论(如称赞).目前大多数的研究中的特征请求主要有两种来源:(1)开源用户平台直接产生,比如 SourceF 为设置专门的模块供用户提出特征请求或者提交缺陷报告;(2)从用户反馈中提取,用户反馈的内容一般被分为信息性和非信息性,其中信息性内容一般包括特征请求和缺陷报告.因此一些研究中使用分类等方法从用户评论中提取特征请求.通过调研相关研究论文,在一些研究中也会将用户评论中提取的特征请求称为增强报告(enhancementreport)、即时性需求(just-in-timerequirements)或用户需求(userrequirements

26、)等.在本文的研究中,统一称之为特征请求.为理解特征请求或者缺陷报告所对应的软件特征,一些研究会从特征请求或者缺陷报告中提取产品特征(productfeature).广义的产品特征指的是产品的属性或者功能8.特征请求不同于缺陷报告,缺陷会造成系统瘫痪,无法使用;而特征请求一般是提出新的功能请求或对现有功能的增强9,因此缺陷报告的优先级往往高于特征请求.本研究仅针对特征请求进行调研.3 需求获取传统的需求获取方法包括面谈、原型和文档审查等.不同于传统的需求获取活动,特征请求主要来源于终端用户等.本节主要总结现有研究中所提出的特征请求的来源、获取方法,以及不同平台获取的特征请求的形式、特点等.软件

27、需求是指:1)为解决用户某一问题或达到某一目标所需的软件功能;2)系统或系统构建为了满足合同、规约、标准或其他正式实行的文档而必须满足或具备的软件功能.在软件维护过程中,软件需求文档和计划中蕴含的信息通常是过时的.而用户反馈等记录了已经实现或部署,以及有待实现的功能10.实现用户反馈中的用户请求,有助于提升用户的满意度.在软件维护过程中,如果新产品的特性不能引起用户的共鸣,会造成开发工作的浪费、产品上市时间的延迟、产品的复杂性和运营成本的增加等11.因此,应用程序开发人员合理利用用户反馈中的用户请求,有助于他们在竞争激烈的环境下更加高效地维护应用12.牛菲菲等:用户特征请求分析与处理研究综述3

28、609 3.1 特征请求来源特征请求的来源有很多,常见的来源包括问题跟踪系统(例如 Bugzilla),开源软件仓库(例如 GitHub),应用商店(例如 AppleAppStore,GooglePlay),在线社区(例如 StackOverflow)等.问题跟踪系统是专门用于收集软件问题的平台,用户以缺陷报告、特征请求、增强报告等的形式对软件问题进行反馈.开源软件仓库是开源软件开发者进行开发管理的集中式场所,用户可以提交问题报告或者工单.其内容可能包括缺陷报告、特征请求、询问等.应用商店提供不同的应用并允许用户进行评论,用户的评论内容可能涉及对已有功能的用户体验或者对新功能的请求.图 8 总

29、结了现有研究中主要研究对象的形式.从图中可以看出,现有研究中特征请求来源多种多样,可能的存在形式包括:应用评论、问题报告、用户反馈、推特、开发邮件、顾客愿望、聊天信息等.或者直接以特征请求、变更请求、增强报告的形式存在.其中,应用评论以及问题报告是最常见的特征请求来源.其次,也有研究从推特、开发邮件以及聊天信息等获取特征请求.尽管不同平台上产生的用户反馈形式不尽相同,其都一定程度以直接或者间接的方式蕴含了特征请求.Iacob 和Harrison 通过调研发现,大约有 23.3%的应用评论是特征请求,包括用户建议开发新的特征或者是对现有特征的改进13.Williams 和 Mahmoud 发现推

30、特上用户评论中约 51%是有用信息(27%是缺陷报告,24%是用户需求)14.除此之外,用户反馈中还可能包含缺陷报告,用户使用体验等内容.准确地识别出用户反馈中的特征请求和缺陷报告等有用信息,对于软件维护和提升也起着非常重要的作用.3.2 特征请求获取如何从各种形式的数据中提取对软件新特征请求的描述,称为特征请求获取.常见的从用户反馈中获取特征请求的方法有基于无监督学习方法、基于监督学习方法、基于半监督学习方法以及组合方法.现有研究中采用的获取方法如表 3 所示1253,最常用的方法是基于监督学习方法.通常情况下,用户反馈的数量巨大.截至 2021 年6 月,Appstore 上有超过 180

31、 万应用.每天产生的评论数量则是天文数字.完全依赖人工从用户反馈中抽取特征请求的方法,虽然可以确保较高的准确性,但是是一件繁琐的任务,费时费力,在应用中不切实际.表3常用的特征请求获取技术学习方式文献无监督学习规则匹配13,15,16监督学习文本分类12,14,1738句子分类3949相似度50半监督学习51,52组合40,533.2.1基于无监督学习方法早期的从用户反馈中获取特征请求的方法主要依赖基于无监督学习的规则匹配方法.常见的方法是人工基于规则提取,符合规则的描述会被抽取出来.Iacob 等人设计并实现了基于规则从用户评论中挖掘特征请求的原型工具.定义了 237 条语义规则,然后通过自

32、动化的规则匹配算法提取出用户评论中的特征请求13.Carreno 和Winbladh 基于信息检索技术,采用 aspectandsentimentunificationmodel(ASUM)从用户评论中生成有建设意义的用户反馈.抽取出的用户反馈可以作为软件下一版本开发的新需求或者改进需求15.吕宏玉等人16提出基于句应用评论特征请求问题报告变更请求增强报告用户反馈推特开发邮件顾客期望聊天信息1133479162549图8特征请求来源统计3610软件学报2023 年第 34 卷第 8 期式匹配和情感分析的特征请求识别方法,用于从应用评论中抽取特征请求.基于规则匹配方法的优点在于可以精准地提取出特

33、征请求.但是需要人为总结规则,人力成本较高.此外,人工总结的规则,难以覆盖所有情况.3.2.2基于监督学习的方法最常见的获取特征请求的方法是基于监督学习的分类的方法.根据分类对象的不同,用户反馈分类可以分为两类:句子级别和文本级别的分类,表 3 中分别列出了现有研究中句子级别和文本级别的分类.文本级别分类的对象是每条用户反馈,通过分类器为每一条用户反馈贴标签.文本级别的分类类别一般包括:缺陷报告、特征请求、赞赏、使用体验、询问以及其他.句子级别的分类是将每条用户反馈根据句子划分,针对每一个句子预测一个标签.句子的标签一般包括:信息提供、信息搜索、特征请求、问题发现、解释说明、解决方法和其他等.

34、文本级别分类可以有效地识别出特征请求,从而将不涉及特征请求的用户评论排除.句子级别可以更细粒度地定位用户反馈中的特征请求,可以有选择地将与特征请求无关信息进一步排除.文本分类常见的流程如图 9 所示.输入一般是大量的用户反馈(包括应用评论、问题报告等),用户反馈来源于图 7 中的开源平台.首先采用自然语言处理方法预处理,一般包括:分词、去除标点符号、去除停用词、词形还原、提取词根等.然后将经过预处理的文本向量化.常用的向量化方法包括:基于 bag-of-words(BOW)的方法(如TF-IDF、TF 等),基于 n-gram 的方法,基于词嵌入的方法(如 Word2Vec54、GloVe55

35、等).除此以外,一些分类方法中将用户反馈的元知识(metadata)作为部分特征17,18,21,26,33,42,45.经过相关研究验证的有效元知识有:评论主题、评分等级、文本长度、句子位置、应用大小、安装数量、评论者数量等.除了文本特征之外,一些研究还挖掘辅助特征以便于分类器更好地学习特征.如:关键词18,21,37,42、句子情感分析14,17,18,21,33,36,39,40、语义规则18,37、标识语句的启发式方法39,40,48、词汇特征40、词性标注21,45等.最后,基于机器学习或者深度学习训练分类模型预测文本类别.在分类模型中,由于用户评论中不同类别分布不均衡,采用重采样方

36、法以均衡数据集在一些研究中被验证有助于分类器更好地学习类别特征26,28,45.用户反馈文本预处理文本向量化文本分类特征提取图9常见文本分类流程根据分类方法采用的模型的不同,用户反馈分类可以分为基于传统机器学习的分类和基于深度学习的分类.早期主要是基于传统机器学习分类算法的方法,比如朴素贝叶斯(naveBayes,NB)、多层朴素贝叶斯(multilayernaveBayes,MNB)、支持向量机(supportvectormachines,SVM)、逻辑回归(logisticregression,LR)、决策树(decisiontree,DT)、随机森林(randomforest,RF)、最

37、大熵模型(MaxEnt)等.其采用的向量化方法一般基于 BOW的 TF-IDF、TF、以及 n-gram 等.随着深度学习在文本分类问题上的应用,深度模型逐渐被用于用户评论分类,如多层感知机(multilayerperception,MLP)、卷积神经网络(convolutionalneuralnetworks,CNN)56、文本循环神经网络(textrecurrentneuralnetworks,TextRNN)57、长短记忆神经网络(long-shorttermmemory,LSTM)58,以及fastText59等.对应的向量化的方法一般是基于词嵌入方法:Word2Vec、Glove、B

38、ERT60等.现有文献中采用的分类算法及其年份分布如图 10 中所示,横坐标代表了不同的分类算法,纵坐标代表了不同的年份,圆圈中的数字代表论文的引用序号.从图中可以看出基于传统机器学习的分类器最常被采用,其中 NB 和 DT 使用频率最高,其次是 RF 和 SVM.深度模型于 2019 年开始被应用于提取特征请求,并且有增长的趋势,其中 CNN 是目前为止使用最广泛的分类模型.在不同的情况下,不同的分类器分类效果各有千秋.Guzman 等人17基于 NB、LR、NN 和SVM 分类器的实验发现,集成不同的分类器,表现比单个分类器效果好.Stanik 等人25通过对比不同的传统机器学习分类器和深

39、度学习分类器发现,传统机器学习分类器更适用于小样本分类,而深度学习分类器在大样本上表现更优.AliKhan 等人28的研究发现深度学习在小样本上会产生过拟合.因此,在实际应用中,需要根据实际情况,选择合适的分类器.大多数情况下,用户反馈各个类别之间分布是不均衡的,常见的策略是重采样.Young 等人34探究了重采样技术对用户反馈分类的影响,采用随机欠采样、SMOTE 过采样和随机过采样,以及 SMOTE-Tomek将过采样和欠采样技术相结合,分别在 5 种机器学习分类器上进行实验.结果发现一般情况下过采样会取得更好的性能,少数情况下,欠采样技术表现更好.牛菲菲等:用户特征请求分析与处理研究综述

40、3611MaxEntDTSVMRFLRMNBMLPCNNLSTM TextRNN BiLSTM FastTextBERTNB20154817162016201720182019202020214328,34,3726,2738234334,3735192442272827282728272835301612332110133522231252419,42,2021,40,414917,39,4816,39,4842,4934,36,3725,29,38,4523,2412,22,4319,20,2112,4916,17,39,11116,3920,42,4912,22,4328,34,36,3

41、728,34,3625,26,38,2728,33,4732,4625,2735,3125,27图10常见文本分类算法除了特征请求的文本描述,许多研究提出使用基于自然语言处理提取的其他的辅助特征.比如关键词、情感分析、时态、语义规则、词性标注等特征.基于关键词的辅助特征被证实效果显著.例如,缺陷报告与特征请求有着不同的关键词汇,因此基于关键词的辅助特征可以帮助识别出特征请求18,21,42.而情感分析,一般是基于SentiStrength61、SnowNLP(https:/pypi.python.org/pypi/snownlp)、Senti4SD62等工具对用户评论进行情感分类,将用户反馈的

42、情感分类为积极、消极以及中立.Peng 等人研究发现结合了情感分类的模型,可以更好地识别出用户评论中的特征请求21.而 Williams 与 Mahmoud14对来源于推特的用户反馈的研究中发现,情感分析对分类没有明显的效果.其原因可能是推特中用户反馈倾向于叙述性说明,没有明显的情感区别,因此对于分类缺乏指导性意义,而应用商店中的用户反馈倾向于抱怨等.3.2.3基于半监督学习的方法基于监督学习的方法需要有大量的人工标记数据,尤其是深度学习算法,模型往往依赖大量的标记数据学习不同类别的特征,才能取得较高的分类准确度.然而实际中,大量的标记数据需要大量的人工成本.为了减少人工标记数据成本,并且取得

43、同等的分类效果,半监督学习算法被应用于特征请求提取.基于半监督学习的特征请求抽取的方法主要包括自训练(self-training)63、Rasco64、Rel-Rasco65以及主动学习(activelearning)66等.Deocadez 等人采用包括自训练、Rasco 和 Rel-Rasco 在内的 3 种半监督算法将应用评论分类为缺陷、请求和其他 3 类,并基于 4 种基本分类器,KNN、C4.5、SMO 和 NB,进行实验.实验结果表明半监督方法可以大大减少人工标记数据,仅需要监督学习 30%的标记数据就可以取得类似的分类效果51.Dhinakaran等人52将主动学习用于用户评论中

44、的特征请求抽取.主动学习基于 3 种不确定性采样策略:置信度最低、边缘采样和熵方法选择最具信息性的标注数据加入训练集,结果表明在达到与监督机器学习到达同等分类效果时,主动学习可以显著减少数据标注的人力消耗.3.2.4其他方法Rahimi 等人67提出一种新颖的、半自动化的方法,用于从在线论坛中提取功能请求.首先利用增量扩散聚类3612软件学报2023 年第 34 卷第 8 期算法(incrementaldiffusiveclustering,IDC)将用户评论按主题归类,然后采用 Apriori 关联规则挖掘多个利益相关者所关注的主题分组.为每个主题确定性能、安全性和可用性等属性相关的质量问题

45、.最后推荐可用于创建个人角色的主题组,创建角色.该角色作为帮助了解项目早期阶段的架构问题可以指导架构设计过程,并最大限度地减少后期成本高昂的重构的需要.Zhang 等人50提出一种基于相似性的方法来将问题报告自动化标记为缺陷报告、特征请求和其他.该方法采用混合相似度算法,分别计算未标记的问题报告与用户评论之间的文本相似度,以及与已标记问题报告之间的文本相似度.两个相似度指标归一化,然后分配贡献权重混合计算结果完成分类.Shi 等人32提出一种 FRMiner 方法,基于深度孪生网络从聊天信息中提取特征请求.孪生网络将两个实例作为输入,通过学习两个实例之间的相似度判断两个实例是否属于同一类.Pa

46、nichella 等人39提出一种组合了规则匹配和文本分类的算法.手动总结 246 条语言模式,并使用启发式算法自动识别.并结合情感分析和文本分析使用 J48 分类算法进行分类,将用户评论分类为:信息提供、信息搜索、特征请求、问题发现和其他等.Gribkov 等人68提出 Trans-LSTM 的神经网络模型,用于从用户评论中提取信息表达.首先将用户评论分句,然后对每一个句子经过抽象自动机并提取出(主题,描述)的表达,并将表达的信息类别分为缺陷报告、特征请求、积极特征、消极特征.该方法使用 Trans-CNN、Trans-LSTM 来建立输入上下文表示.结果表明该模型在提取信息表达的效果优于其

47、他模型.Shi 等人53提出了一种自动化解决方案,通过利用语义序列模式从开发电子邮件中发现功能请求.首先使用之前研究中提出的 81 条模糊规则69来标记电子邮件中的句子.然后在 2-gram模型中用电子邮件的上下文信息表示语义序列.从 317 封 Ubuntu 社区随机采样的电子邮件中生成了 10 个语义序列模式.实验结果表明该方法可以有效地识别来自电子邮件的功能请求.3.3 特征请求特点Hoon 等人70从评论长度、评论数量增长、评论评分分布演化以及评论大小分布演化等角度对 iOS 系统 22个类别应用的用户评论展开统计调研.研究结果发现:(1)22 个类别应用中,评论长度有显著差异.评分较

48、高的软件其评论较短;评分较低的软件其评论较长.在 5 个评分等级上,评论长度有显著差异.(2)不同类型的应用,评论数量也有差异.与付费应用相比,免费应用收到的评论往往更多.而信息类的应用,如天气预报等,只在短时间内得到用户的关注.复杂的应用如医疗等,此类用户相对较少,因此评论也较少.(3)评论数量的增长通常在新版本发布时达到峰值.特征请求来源多种多样,这就导致其有以下的特征:(1)数量大:特征请求可以由不同的用户随时随地地提出,短时间内会产生大量的用户请求.(2)非结构化:由于特征请求是不同的用户提出的,用户对于软件缺乏整体的把握,因此产生重复的特征请求概率很大.此外,不同的特征请求之间,可能

49、存在结构上的依赖或者互斥关系.因此,特征请求是无结构化的.(3)来源多样化:特征请求的来源可能是企业人员、用户以及开发者等.Noll 等人71调研了开源软件开发的需求来源,结果表明大多数的需求来源是开发者,超过一半的需求是由核心团队以外的参与者提出的.用户作为项目的贡献者的参与是开源开发的一个必要方面.(4)质量参差不齐:由于来源的多样性(来自企业、用户、开发者等)、受教育程度的不同、语言以及专业领域的不同等,导致特征请求的差异性72.用户的自然语言描述可能包括错误的拼写、口语化的表达等.导致特征请求的质量与传统的需求规格说明书相比有较大的差距.特征请求的这些特点使得其区别于传统的需求,因此对

50、其处理也要有所不同.传统需求工程的处理流程和方法可能不再适用于特征请求,下文将继续讨论处理特征请求的具体方法,并与其他传统需求工程活动对比.4 需求分析需求分析是软件计划阶段的重要活动,也是软件生存周期中的一个重要环节.需求分析一般是需求工程师经过调研和分析,准确理解用户对项目的功能、性能、可靠性等具体要求,经过分析与整理将用户非形式化的需求牛菲菲等:用户特征请求分析与处理研究综述3613表述转化为描述完整、清晰与规范的文档,从而确定软件需要实现哪些功能、完成哪些工作的过程.分析的活动主要包括识别、定义和结构化73.传统需求分析阶段的子活动包括需求梳理、需求优先级排序、需求建模等.近来,自然语

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服