Page 216 - 《软件学报》2026年第4期
P. 216

袁中锦 等: 融合中文需求文本语义特征的            UML  活动图自动生成方法                                  1657



                 合需求文本的全局特征        P GW  经最大池化获得文本-标签局部特征表示           P L :

                                             P L = MaxPooling(Conv(P GW · P GL )· P GW )              (2)
                    最后, 本文选用二元交叉熵损失          (binary cross entropy loss) [30] 作为损失函数, 其定义如下:

                                                      J
                                                   I ∑∑
                                                           ( )         (    )
                                                                (   )
                                            L bce = −  l i j log l ij + 1−l i j log 1−l ij            (3)
                                                            b
                                                                          b
                                                   i=1  j=1
                                                                                           i
                 其中,  I  为需求文本句子总数,     J  为语义标签总数,    l ij  和  b  分别为语义多标签需求文本分类中第   个句子对应标签
                                                           l ij
                           j
                 集合  L i  中第   个标签的真实值和预测值.
                  2.2.2    UML  活动图图元素及其关系提取
                    通过语义多标签需求文本分类, 需求文本中的每条句子都获得了对应的相关性语义标签和时序性语义标签.
                 为了创建   UML  活动图, 需要考虑如何从包含语义标签的需求文本句子中提取活动图节点四元组和活动图边四元
                 组所需的向量信息.
                    UML  活动图边四元组包含两个相邻活动图节点之间的时间次序关系和关系内容描述. 需求文本的语义标签
                 可以作为确定活动图节点类型和相邻节点连接次序的依据, 具体方式如算法                         1  和算法  2  所示. 算法  1  利用需求文
                 本的相关性语义标签保留与          UML  活动图自动生成相关的需求文本句子, 再借助相关句的时序性语义标签确定相
                 关句之间的连接次序. 以图        1  中的需求文本    1  为例, 需求文本  1  中首句的相关性语义标签为         0, 表明该句与业务活
                 动无关, 故该句被算法      1  舍弃, 不参与后续的     UML  活动图图元素及其关系提取. 对于相关性语义标签为                1  的相关
                 句, 算法  1  将根据相邻相关句之间的时序性语义标签调整相关句的排列次序. 例如, 由于需求文本                           1  中第  2  句和
                 第  3  句描述的业务活动在执行时间上呈现顺序关系, 这两个句子将按照自然语言表述的次序进行连接.
                 算法  1. 需求文本相关句业务活动次序确定.


                 输入: 包含   n 个句子的需求文本句子序列         T[s 1 , s 2 ,..., s n ] 及其对应的相关性语义标签序列;  Rel_s[rel_s 1 ,rel_s 2 ,...,
                 rel_s n ];
                                       ′′
                 输出: 需求文本相关句序列        T .
                    ′
                 1.  T ← [ ]
                 2. for  i ← 1 to  n
                 3.  if   rel_s i == 1 then //根据相关性语义标签确定  s i  与  UML  活动图自动生成具备相关性
                                 ′
                 4.   把   s i  添加到  T  末尾
                        ′
                 5.  m ← T  的长度
                 6.  T ← [s 1 ]
                    ′′
                 7. for  i ← 2 to  m
                                    t    T  ′′  中最后一个句子
                 8.       s temp ← s last + s i  //s las 表示
                 9.     seq_s ← s temp  的时序性语义标签
                 10.  if   seq_s == 0 then //s las 与  s i  为逆序关系
                                       t
                 11.     temp ← s last
                 12.     s last ← s i
                 13.   将   temp 添加到  T  ′′  末尾
                 14.  else if   seq_s == 1 then //s las 与  s i  为同步关系
                                          t
                 15.      s last ← s last + s i
                            t
                 16.  else //s las 与  s i  为顺序关系
                 17.   将   s i  添加到  T  ′′  末尾
   211   212   213   214   215   216   217   218   219   220   221