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

1656                                                       软件学报  2026  年第  37  卷第  4  期


                 图提供错误的内容. 此外, 一些包含业务活动描述但不符合某种 UML 活动图图元素及其关系提取规则的句子可
                 能在图元素提取过程中被忽略, 从而造成最终生成的                 UML  活动图成分残缺. 因此, 本文在进行活动图图元素及其
                 关系提取之前先对需求文本进行筛选, 保留与业务活动相关的句子, 舍弃与业务活动无关的句子. 这种操作能够有
                 效避免图元素及其关系提取过程中可能出现的错漏, 进而提高自动生成的活动图中正确图元素出现的概率. 在本
                 文中, 包含业务活动描述的句子为与           UML  活动图自动生成相关的句子, 不包含业务活动描述的句子为与                    UML  活
                 动图自动生成无关的句子. 软件需求文本具备种类多样、有迭代变更诉求的特征                           [26] . 不同于完全依赖语法规则的
                 方法  [6−8] , 基于神经网络的机器学习方法可以通过数据驱动的方式覆盖多样化的需求                      [27] , 能够同时学习需求文本
                 的显式特征和隐式特征, 弥补纯规则方法泛化性弱和可维护性差的不足. 因此, 本文采用文本分类器确定需求文本
                 与  UML  活动图自动生成之间的语义相关性.
                    除了获取软件需求文本中包含业务活动信息的相关句, 还需要考虑如何从这些相关句中提取                                UML  活动图节
                 点和边四元组所需的文本向量. UML           活动图的边四元组包含两个活动图节点之间的时间次序关系和关系内容描
                 述. 其中, 两个活动图节点之间的时序关系一般分为以下                3  种: (1) 逆序关系: 对于句子中的活动      A、B, 若自然语言
                 陈述次序与活动实际发生的次序相反, 则称              A  与  B  之间存在逆序关系; (2) 顺序关系: 对于句子中的活动         A、B, 若
                 自然语言陈述次序与活动实际发生的次序相同, 则称                 A  与  B  之间存在顺序关系; (3) 同步关系: 对于句子中的活动
                 A、B, 若  A  与  B  可以同时发生, 则称  A  与  B  之间存在同步关系.
                    为了获得上述需求文本的相关性语义特征和时序性语义特征, 本文将中文需求文本的语义特征提取问题建模

                 为一个多标签文本分类问题. 具体描述为: 给定语义多标签需求文本分类训练集                         T = {(T i ,L i )|1 ⩽ i ⩽ M }, 其中  T i =
                                                            {   }
                 {w i |1 ⩽ i ⩽ D} 表示由  D 个词构成的需求文本序列,   L i = l i 1  ,l i 2   为需求文本对应的标签序列, 其中  l i 1  表示相关性语
                 义标签,   l i 2   表示时序性语义标签,  M  为训练集样本数. 语义多标签需求文本分类的目标是学习一种预测函数
                                                                   {                     }
                                                                   (   )

                 f(x) = T i → L i  来预测输入需求文本序列  T i  的对应标签集合   L i = l i 1  ,l i 2  l i 1  ∈ {0,1},l i 2  ∈ {0,1,2} , 其中  l i 1   取  0、1  分
                 别表示该需求文本与        UML  活动图自动生成无关、相关,         l i 2   取  0、1、2  分别表示该需求文本中的多个业务活动在
                 开展次序上属于逆序、顺序、同步关系.
                    本文提出的语义多标签需求文本分类模型结构如图                   5  所示. 该模型共分为两层, 底层为全局特征提取层, 用于
                 提取需求文本和语义标签的全局特征; 顶层为局部特征提取层, 用于获得需求文本和语义标签进一步交互下的语
                 义信息.


                              全局特征提取层                     局部特征提取层


                  需求                  需求文本
                  文本                全局特征 P GW
                          ALBERT
                           预训练                        Conv &         MaxPooling    分类器    BCE  需求文本的
                            模型                         ReLU                               损失    语义标签
                  语义                  语义标签
                  标签                全局特征 P GL


                                              图 5 语义多标签需求文本分类模型

                    由于基于深度学习的特征提取方法通常需要大规模的专门数据进行训练, 并且对内存资源的需求较高, 故本
                 文使用预先在     BookCorpus 和  Wikipedia  数据集上进行分类训练的      ALBERT  模型  [28] 提取需求文本的全局特征
                 P GW  和语义标签的全局特征      P GL . 该模型包含嵌入层和多个相同的编码器层, 主要通过多头注意力机制进行切分
                 多层计算以获取深层次的语义信息, 且通过高度并行以充分利用有限的计算资源. 除了全局特征, 需求文本本身的
                 局部特征也拥有丰富的语义信息. 由于在人工进行语义多标签需求文本分类时, 需求文本中某一关键词与语义标
                 签之间的关联性通常决定对语义标签的判断. 根据文献                  [29] 的建议, 局部特征提取层通过点积操作使需求文本词
                 级信息与语义标签信息充分交互, 并使用卷积神经网络                  Conv(·) 提取需求文本和语义标签的深层交互信息, 然后结
   210   211   212   213   214   215   216   217   218   219   220