Page 276 - 《软件学报》2021年第7期
P. 276
2194 Journal of Software 软件学报 Vol.32, No.7, July 2021
节点“所以”为因果连词中的结果连词.由图 8 可以看出,由于主题“可读性 2”对应的节点中包含因果连词中的结
果连词“所以”,所以“可读性 2”对应的主题相关词“看不懂”作为分句“而且没有注释所以看不懂”对应代码质量
属性“可读性”的代码质量属性表现结果,而主题“可读性 1”对应的主题相关词“没有”“注释”作为“可读性”的
表现.
通过代码质量属性表现与代码质量属性表现结果的识别算法,可以识别出主题对应代码质量属性表现与
表现结果.代码质量属性表现与代码质量属性表现结果可以较为清晰、完整地描述复杂用户评论中的代码质量
属性,使得复杂用户评论中的代码质量属性之间初步有了较为清晰的逻辑关系,从而为分析复杂用户评论中的
代码质量属性表现与表现结果,并以此判断代码质量属性奠定了基础.
4.4 分析复杂用户评论的代码质量属性表现与表现结果
通过第 4.2 节和第 4.3 节的处理,可以获得复杂用户评论中各主题对应的代码质量属性表现与表现结果.复
杂用户评论或是包含多个分句,或是包含连词.由于分句之间通过标点符号进行连接,无论是否存在连词,分句
之间的代码质量属性逻辑关系都为并列关系.在语言学中,连词是用来连接词与词、词组与词组或句子与句子,
表示某种逻辑关系的虚词.在文本中,连词的语义不同,则连词连接的两个文本之间的逻辑关系会根据连词的并
列、承接、转折、因果等不同的语义而发生改变.因而,若由连词连接的多个主题,主题间的关系会因连词的语
义不同而具有不同的逻辑关系.因此,最终判断需要综合考虑分句之间存在标点符号和连词对代码质量属性逻
辑关系的影响,若不考虑分句间的关系直接进行合并,就会使合并后的结果失去连贯性,甚至改变原有的含义.
综上,为了更加准确地判断复杂用户评论的代码质量属性,本文通过对复杂用户评论的研究,根据是否存在
连词/标点符号、连词类别对代码质量属性逻辑关系的影响,对主题之间的逻辑关系进行了详细的定义.然后基
于主题间关系提出了相同主题与不同主题的处理规则,通过主题处理规则分析复杂用户评论中的代码质量属
性表现与表现结果,从而获得复杂用户评论的代码质量属性判断结果.主题间关系主要 5 种,见表 2.
Table 2 Definition of intertopic relationship
表 2 主题间关系定义
序号 主题间关系 连词 标点符号
以及,和,跟,与,同,而且,还有,况且,何况 , . ; ! ? 、, . ; ! ?
1 并列关系(Ti,coo,Tj)
无连词 无标点符号
2 承接关系(Ti,con,Tj) 比如,此外,像,好像,如,比方,而,则,乃,就
3 转折关系(Ti,tur,Tj) 但是,却,然而,只是,不过,不料,岂知
4 让步关系(Ti,alt,Tj) 虽然,固然,尽管,纵然,即使
5 因果关系(Ti,cal,Tj) 因为,由于,因此,所以,是故,是由于,以致
由于复杂用户评论在预处理时划分为了多个分句,在判断复杂用户评论的代码质量属性时,需要综合分析
复杂用户评论中各分句的主题对应的代码质量属性表现与代码质量属性表现结果.基于表 2 给出的主题间关
系的定义可知,当主题间具有不同的关系时,主题对应的代码质量属性相关信息之间的关系也会发生改变.然
而,针对复杂用户评论中存在多个主题时,若多个主题对应同一代码质量属性,则具有同一代码质量属性的相同
主题可以根据不同主题间关系进行合并处理.如果是因果关系,可以进行代码质量属性表现与代码质量属性表
现结果的划分;若为并列关系,则可以根据相同主题是否具有相同的代码质量属性表现与表现结果进行不同的
处理.因此,在对复杂用户评论的代码质量属性进行判断并产生代码质量属性相关结果之前,需要对复杂用户评
论中对应同一种代码质量属性的相同主题进行处理.
本文通过对复杂用户评论的研究发现,在对复杂用户评论中对应同一种代码质量属性的相同主题进行处
理时,根据主题间的关系不同,主题处理主要有以下两种规则.
(1) 当复杂用户评论中两个主题 Ti、Tj 的主题间关系为并列关系、承接关系、转折关系、让步关系时,