Page 255 - 《软件学报》2025年第9期
P. 255

4166                                                       软件学报  2025  年第  36  卷第  9  期


                    因此, 为了解决含实体类型的语义角色高度相似, 而忽视事件实际含义差异的问题, 我们考虑了关联句子成
                 分  (如主语、宾语和补语等) 的含实体类型语义角色标注. 例如, 在计算事件                    3  与事件  4  的相似度时, 实际上是在
                 衡量这两个事件的包含句子成分标注的余弦相似度                     (CosSim_SRL-ASC), 下面以事件    3  和事件  4  为例介绍
                 CosSim_SRL-ASC  的计算步骤.
                    首先, 基于   text-embedding-ada-002  模型分别获取事件  3  标注  (父母/施事: 人 爱 孩子/向事: 人) 和事件    4  标注
                 (朋友/施事: 人 爱 不合适的人/向事: 人) 的       1 536  维嵌入向量. 这两个向量的前后       4  个维度值   (保留小数点后    4  位)
                 分别为:
                    SRL-ASC  嵌入向量   1: [0.0066, −0.0206, −0.0093, −0.0098,…, 0.0077, 0.0024, 0.0020, −0.0213].
                    SRL-ASC  嵌入向量   2: [−0.0120, −0.0222, 0.0184, 0.0049,…, 0.0123, −0.0138, −0.0020, −0.0273].
                    其次, 使用公式     (1) 计算这两个向量余弦相似度, 从而得到事件            3  和事件  4  的  SRL-ASC  的余弦相似度.
                    (3) 语义角色标注结构      (semantic role labeling structure, SRLS)
                    事件中包含的词组结构能够揭示事件参与者之间的相互作用, 对深入理解事件之间的复杂关系起到了关键的
                 作用. 例如, 在标注“施事: 人 把 客事: 信息 告诉 向事: 人”中, 通过“把…告诉…”的结构, 指明了行为的方向与对象. 这
                 些结构特征在计算事件的语义相似度时提供了有力的指导. 因此, 本文将语义角色标注格式化为“施事-把-客事-告
                 诉-向事”, 进而计算语义角色标注结构的相似度              (Sim_SRLS), 以事件  5  和事件  6  具体阐述  Sim_SRLS  的计算过程:
                    事件  5: 把秘密告诉他人.
                    事件  6: 把物品归还给他人.
                    首先, 在  ECKG  标注数据中获取事件       5  和事件  6  的标注分别为:
                    事件  5  标注: 施事: 人 把 秘密/客事: 信息 告诉 他人/向事: 人.
                    事件  6  标注: 施事: 人 把 物品/受事: 人造物 归还 给 他人/向事: 人.
                    然后, 去除事件    5 标注和事件    6 标注中的句子成分和实体类型, 将中枢语义角色和周边语义角色通过连接符“-”
                 进行连接, 得到对应的语义角色标注结构为:
                    语义角色标注结构       5: 施事-把-客事-告诉-向事.
                    语义角色标注结构       6: 施事-把-受事-归还-给-向事.
                    最后, 使用公式     (2) 计算语义角色标注结构      5  和语义角色标注结构      6  的相似度. 公式   (2) 的定义如下.
                                                                                       L 1 = [s 11 , s 12 ,..., s 1m ]  和
                    假设, 两个事件的语义角色标注结构为              S 1  和  S 2  其包含的语义角色列表可以表示为
                 L 2 = [s 21 , s 22 ,..., s 2n ], 相似度计算公式如下:

                                                               min(m,n)
                                                               ∑
                                                                   (s 1i = s 2i )
                                                                i=1
                                                Sim_SRLS(S 1 ,S 2 ) =                                 (2)
                                                                max(m,n)
                 其中,  Sim_SRLS(S 1 ,S 2 ) 表示两个事件语义角色标注结构的相似度,        m 是  L 1  的元素数量,  n 是  L 2  的元素数量,  s 1i  和
                                   i
                 s 2i  分别是  L 1  和  L 2  的第   个元素.
                    将语义角色标注结构        5  和语义角色标注结构      6  使用公式  (2) 计算时, 对应的语义角色元素列表分别为:
                    语义角色标注结构       5  的元素列表: [ 施事, 把, 客事, 告诉, 向事    ].
                    语义角色标注结构       6  的元素列表: [ 施事, 把, 受事, 归还, 给, 向事   ].
                    这两个结构的语义角色元素个数分别为               m=5, n=6, 两个角色列表中相同位置上相等的元素数量为               2, 从而计
                 算出这两个语义角色结构的相似度约为              0.333 3.
                    (4) 事件反义
                    在  ECKG  中, 反义事件是指含义相对立的事件. 例如, “吃汉堡包”与“不吃汉堡包”这两个事件, 尽管它们在行
                 为  (吃) 和对象  (汉堡包) 上相同, 但表达的语义截然相反. 这种语义上的对立在计算事件相似度时尤为重要, 能够
                 影响人们对事件关系的理解. 然而, 传统的余弦相似度算法往往会将反义事件判定为高度相似. 为了解决这一问
                 题, 本文首先使用预先定义的规则识别反义词. 接着, 在计算事件余弦相似度时, 将这些互为反义的事件相似度进
   250   251   252   253   254   255   256   257   258   259   260