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

1958                                                       软件学报  2025  年第  36  卷第  5  期


                 API, 可以提高二者的匹配合理性与准确性.
                    h m 为采用  SimCSE  为需求  mr 生成的功能向量. 采用     Word2Vec 为  mr 的潜在联合词  Law(mr) 生成词向量. 将这
                      r
                 些词向量的均值作为       mr 的潜在联合词向量与       h m 拼接, 形成的向量作为     mr 的需求向量, 记作    vf(mr), 参见公式  (10),
                                                      r
                 其中, 符号||表示向量拼接.

                                                      ∑
                                                             Word2Vec(w)
                                                        w∈Law(mr)
                                              v f(mr) =                ||h mr                        (10)
                                                           |Law(mr)|
                    同样, 对于   Cw(mr) 中的服务   s, 使用  SimCSE  为其生成功能向量    h s . 将其与潜在联合词向量均值拼接, 形成的
                 向量作为   s 的服务功能向量, 记作      vf(s), 参见公式  (11):

                                                      ∑
                                                             Word2Vec(w)
                                                        w∈Law(s)
                                                vf(s) =                ||h s                         (11)
                                                           |Law(s)|
                    将融合潜在联合词的服务功能向量命名为                SY-SimCSE. 采用  SY-SimCSE  为  Mashup  服务需求生成需求向量
                 vf(mr) 和候选  Web API 生成服务功能向量     vf(s) 的方法参见算法   1.
                 算法  1. 融合潜在联合词的     Mashup  服务需求向量与候选      Web API 功能向量生成.

                 输入: Mashup  服务需求  mr, Mashup  服务集合  MS, Web API 集合  WS;
                 输出: 融合潜在联合词需求向量          vf(mr), 候选组件服务的功能向量集合{vf(s)}.

                 1. h mr  = SimCSE(mr)
                 2. h m  = SimCSE(m) for each m ∈ MS
                 3. h s  = SimCSE(s) for each s ∈ WS
                 4. Nm(mr) = {m|Top-X(sim(h mr , h m )∧m ∈ MS)
                 5. for ∀m ∈ Nm(mr)
                 6.   Cw-1(mr) = Cw-1(mr)∪m.S
                 7. endfor
                 8. for ∀s ∈ Cw-1(mr)
                 9.   Ns(s) = {s|Top-Y(sim(h s , h s' )∧s' ∈ WS)
                 10.  Cw-2(mr) = Cw-2(mr)∪Ns(s)
                 11. endfor
                 12. Cw(mr) = Cw-1(mr)∪Cw-2(mr)
                 13. for ∀s ∈ Cw(mr) or ∀m ∈ Nm(mr)
                 14.   Lmr = Lmr∪SYAKE(s.d)
                 15.   Ls = Ls∪SYAKE(m.d)
                 16. endfor
                 17. for ∀l ∈ mr.L
                 18.   Law(mr) = Top-n(F(w, l))∧w ∈ Lmr
                 19. endfor
                 20. generate vf(mr) by Formula (10)
                 21. for ∀s ∈ Cw(mr) and l ∈ s.L
                 22.   Law(s) = Top-n(F(w, l))∧w ∈ Ls
                 23. endfor
                 24. generate vf(s) by Formula (11) for each s ∈ Cw(mr)
                 25. return (vf(mr), {vf(s)})
   53   54   55   56   57   58   59   60   61   62   63