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

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



                 18.  end if
                 19. end for
                 20. return  T  ′′
                    算法  2  借助相关句的时序性语义标签进一步确定该句所对应的活动图节点类型和相邻节点连接次序, 并提取
                 构成当前活动图边四元组所需源节点、目标节点和活动转换内容描述的短语文本向量. 该算法将根据句中关联词、
                 逗号和分号将句子划分为多个短语, 再按照时序性语义标签确定短语之间的连接次序. 如图                             6  所示, 算法  2  将通过
                 句中的关联词“如果”“那么”将需求文本            1  的第  3  句划分为两个短语, 分别对应决策节点和动作节点. 因为这两个
                 短语中包含的业务活动在开展时间上属于顺序关系, 所以这两个短语对应的节点将按照与自然语言陈述次序一致
                 的次序连接.
                 算法  2. UML  活动图节点类型和节点次序确定.


                 输入: 需求文本相关句序列        T  ′′   中的一个需求文本相关句   s;
                 输出: 一个包含节点次序的需求文本短语数组              P h , 节点类型数组  .
                                                                  P t
                 1.  P h ← [ ]
                 2.  P t ← [ ]
                 3.  W ← Tok(s) //分词

                 4. 根据关联词、逗号和分号将         s 划分为   n (n ⩾ 1) 个短语  [sub 1 , sub 2 ,..., sub n ]
                 5.  P sub ← [sub 1 , sub 2 ,..., sub n ]
                 6.  P h ← [sub 1 ]
                 7. for  i ← 2 to  n
                 8.      sub temp ← sub last + sub i  //sub las 表示  P sub  中最后一个句子
                                           t
                 9.     seq_s ← sub temp  的时序性语义标签
                                         p
                 10.  if   seq_s == 0 then //sub tem 与  sub i  为逆序关系
                 11.     temp ← sub last
                 12.     sub last ← sub i
                 13.   将   temp 添加到  P h  末尾
                 14.  else if   seq_s == 1 then //sub tem 与  sub i  为同步关系
                                            p
                 15.     sub last ← sub last + sub i
                              p  sub i  为顺序关系
                 16.  else //sub tem 与
                                  P h  末尾
                 17.   将   sub i  添加到
                 18.  end if
                 19. end for
                 20.   P t ← [typ 1 ,typ 2 ,...,typ n ] //将  P h  中各短语对应的节点类型初始化为“动作节点”
                 21. for  i ← 1 to  n
                 22.  if  sub i  包含表示条件关系的关联词 then
                 23.    typ 1 ← “决策节点”
                 24.  end if
                 25. end for
                 26. return   P h P t
                           ,
   212   213   214   215   216   217   218   219   220   221   222