Page 267 - 《软件学报》2021年第7期
P. 267
徐海燕 等:针对复杂用户评论的代码质量属性判断 2185
2 相关工作
随着互联网的发展,用户习惯通过在线网络平台发表对产品的看法,在线用户评论成为用户了解产品质量
[8]
等相关信息的一个快速、有效的途径.Hu 等人 针对 APP 软件的用户评论,应用评论种子循环挖掘出用户评论
[9]
中体现不同类型的 APP 软件使用反馈的用户评论.Duan 等人 通过定义 APP 软件缺陷抽取规则,利用缺陷句型
结构挖掘 APP 软件用户反馈中的软件缺陷,并对软件的缺陷程度进行了分析.代码与 APP 软件产品相似,作为
一种特殊的产品,随着代码托管平台和开发者社区成为开发人员获取代码的主要途径,代码使用者会根据代码
[6]
的使用情况对代码进行评论,针对代码的用户评论中包含了丰富的代码质量信息.Xu 等人 基于用户评论,根据
评价对象和评价句型的识别规则,对代码质量进行识别和分析.然而,在针对软件产品的用户评论和针对代码的
用户评论中,用户评论不仅仅是简单句,尤其在针对代码的用户评论中,用户评论多为复杂句.相较于简单用户
评论,复杂用户评论包含了更为丰富和复杂的代码质量属性信息.若是按照一般基于句子级别的规则,虽然能够
识别出一些用户评论中的有价值信息,但是识别出的信息较为有限,甚至可能会丢失信息原有的关联性.在部分
针对软件质量和代码质量判断的相关工作中,Wang 等人 [10] 基于 ISO/IEC 9126 软件质量模型,以可用性、可靠
性、安全性、实时性、可维护性和可生存性构成了软件可信属性模型.Venkatasubramanyam 等人 [11] 使用基于
ISO/IEC 9126 质量模型定义的 EMISQ(evaluation method for internal software quality)模型进行静态代码质量分
析,使用 DASIQ(dynamic analysis for internal software quality)模型进行动态代码质量分析,并将静态和动态分析
获取的代码质量结果进行详细对比.在这些相关工作中,主要针对基于 ISO/IEC 9126 模型的软件质量和代码质
量的部分质量属性进行判断.
在部分针对复杂用户评论的研究中,Liu 等人 [12] 对于嵌套句型等较为复杂的句型结构,在句法分析过程中
实施动作层次分解,将复杂语句分解为简单的基本句型.此外,还提出对倒装句型的识别机制,通过匹配接近的
句型进行实体移位,调整语序,以便于挖掘文本中实体-动作关联关系.文献[13]建立了一个适用于长句子和复杂
句汉语句法分析的论元关系模型,使用多值递归函数识别句型结构并划分句法功能语块,根据句型结构抽取动
[7]
作的施体和受体,建立论元关系模型.Li 等人 在针对篇章级的文本情感倾向的判断中,针对复杂句的情感分析,
按照复杂句的转折句式、条件句式等进行基于句式结构的情感极性判断,对于简单句的情感分析则基于朴素贝
叶斯进行判断.Mao 等人 [14] 融合了从底向上和自顶向下的中文树库的复杂句标注方法,将复杂句切分成结构较
简单的块进行分析.Ye 等人 [15] 针对现有问答系统中结构复杂的问句进行研究,首先基于条件随机场算法对问句
进行分类和主体识别,然后结合谓词词典和句法分析识别出问句的谓词,最后通过谓词消歧方法来解决相同问
句具有不同表达方式的问题.Swain [16] 等人针对科技相关的复杂句子和单词,先通过复杂词识别,再通过简单的
同义词替换复杂词,对复杂句进行了文本简化.Siddharthan 等人 [17] 描述了在对复杂句按照句法简化过程中如何
解决句子排序、词的选择、指称表达的生成、决定词的选择和代名词的使用等各种生成问题,以保持连接和回
指的衔接关系.
通过分析上述研究,我们发现:
1) 在当前针对用户评论的大部分研究中,对简单用户评论和复杂用户评论采取同一种处理方法提取用户
评论中的有价值信息.例如,文献[6,8,9]中,对于用户评论多是通过词性规则或句型规则来识别评论中包含的有
价值信息.由于简单用户评论与复杂用户评论包含的有价值的信息量存在差异,若是按照一般基于句子级别的
规则对复杂用户评论进行处理,那么,当复杂用户评论中存在多个代码质量属性时,虽然能够判断出一些质量属
性,但是判断出的质量属性较为有限.此外,文献[10]中对软件质量仅基于可靠性、可用性等 6 个质量属性进行了
判断;文献[11]对代码质量只是基于静态分析或者动态测试模型判断少数几个质量属性,质量属性的判断结果
较为片面.
2) 部分研究对复杂句的处理主要是针对复杂句中的复杂句式结构或成分进行简化,再对简化后的复杂句
进行相应的处理,如文献[12,13]将复杂句式分解为简单句,文献[16]使用简单词替换复杂句中的复杂词.然而,复
杂用户评论中通常包含多个代码质量属性,且多个代码质量属性之间存在一定的逻辑关系.因此,若是按照简化
复杂句式结构或成分的方法处理复杂用户评论,多个代码质量属性之间的关系并未被简化和处理,将难以判断