Page 33 - 《软件学报》2025年第5期
P. 33

董黎明 等: 结合主动学习和半监督学习的软件可追踪性恢复框架                                                  1933



                                                      表 3 特征集合

                           特征             ID                              描述
                                          a1                           developer(I)
                         人物特征             a2                           committer(C)
                                          a3               1, (if committer(C) ∈ developer(I)); 0, otherwise
                                          a4                       committed(C)−created(I)
                                          a5                      resolved(I)−committed(C)
                       制品时序特征
                                          a6                     1 (if a4 and a5 ⩾ 0);0 otherwise
                                          a7                   |a5| < ε,ε = median_perpro ject(|a5|)
                                                                 committed(C)−committed(Cp),
                                          a8
                       前序关联制品                       Cp = {maxCommitted(Cx)|is_linked(Cx,F)∧committed(Cx) < committed(C)}
                           特征             a9        overlap(C,Cp),overlap = (mod(C)∩mod(Cp))/max(mod(C),mod(Cp))
                                          a10                          committer(Cp)
                                                                 committed(Cn)−committed(C),
                                          a11
                       后序关联制品                       Cn = {minCommitted(Cx)|is_linked(Cx,I)∧committed(Cx) > committed(C)}
                           特征             a12       overlap(C,Cn),overlap = (mod(C)∩mod(Cn))/max(mod(C),mod(Cn))
                                          a13                          committer(Cn)
                                          a14       I_opened = |{Ix|opened(I)∧created(I) ⩽ committed(C) ⩽ resolved(I )}|
                    当前潜在匹配制品特征            a15                       |developer(I_opened)|
                                                                     (

                                          a16        C_linked = |{Cxis_linked Cx,I)∧committed(Cx) < committed(C )}|
                                          a17                  VSM (sim(description(I),message(C))
                                          a18               VSM-2gram(sim(description(I),message(C))
                                          a19                  LSI (sim(description(I),message(C))
                   制品多维文本相似性特征
                                          a20                  JS (sim(description(I),message(C))
                                          a21                  LDA(sim(description(I),message(C))
                                          a22                  NMF(sim(description(I),message(C))
                                          a23               VSM +LDA(sim(description(I),message(C))
                                          a24                JS + LDA(sim(description(I),message(C))
                   制品混合文本相似性特征            a25               VSM +NMF(sim(description(I),message(C))
                                          a26                JS +NMF(sim(description(I),message(C))
                                          a27                VSM + JS (sim(description(I),message(C))

                    但通过观察历史制品数据, 本文发现企业对于需求、缺陷和测试用例等制品的文本描述比较丰富, 一些团队
                 还会制定描述规则及模板. 因此本文通过充分挖掘和利用企业项目中制品间的语义信息, 帮助模型学习更加有效
                 的特征, 从而区分“真”和“假”链接. 需求补充的是, 企业项目由于数据保密性规则                      (源代码保密), 将   Rath  等人提出
                 的缺陷文本描述与代码提交文件的文本相似性特征舍去, 计算了以下多维度混合文本相似性特征.
                    ● 多维文本相似性      (a17–a22). 本文使用了  6 种主流的  IR  模型度量了制品文本相似性, 包括        VSM, VSM-2gram ,
                                                                                                      [46]
                 LSI, JS, LDA  和  NMF [12] .
                    ● 混合文本相似性      (a23–a27). 考虑到单一文本相似性特征稀疏性问题比较严重, 本文参考了                  Gethers 等人  [47]
                 的工作, 使用混合文本相似性特征, 通过归一化加权, 结合不同                 IR  模型度量制品文本相似性特征.

                 3.1.4    样本分割
                    如图  7  所示, 本文将标注的样本数据依据时间顺序进行分割, 参照                 Rath  等人选择的分割参数, 比例为       4:1, 将
                 标注数据分为     80%  的训练集和    20%  的测试集. 选择时序分割法是因为考虑到制品之间存在时序关系, 其次特征
                 集合中包含时序特征        (a4–a7), 且训练集样本在测试集样本之前更加符合真实可追踪任务中实践场景                      [10,48] , 即通过
                 历史数据预测未来的制品链接.

                 3.1.5    样本重采样
                    不难发现, 通过样本跟踪对匹配函数            is_candidate 生成的样本是严重不平衡的, 其中包含了过多“假”链接样
   28   29   30   31   32   33   34   35   36   37   38