Page 60 - 《软件学报》2025年第12期
P. 60

李春奕 等: 基于时序逻辑的需求文本隐含语义解析与推理                                                     5441


                 数据预处理步骤. 如果自然语言文本存在语义模糊性和序列过长的问题, 可能会导致对权限需求的分析不准确.
                 NL2LTL  基于大模型分析语义, 在处理复杂语境或模糊表达时可能出现错误的分析和解释. 因此, 本文基于神经网
                 络的方法, 综合多种      NLP  技术来实现数据预处理工作, 在文本中提取特征来强调时序语义信息, 同时构建有效的
                 小样本神经网络结构, 克服了识别隐含和复杂的语义的难点, 并加入模型增强模块提高模型的鲁棒性和泛用性, 克
                 服了时序标签样本的稀疏和不平衡问题.
                  2   基础知识

                    本文所提方法主要基于         PPTL  和监控语义, 具体给出了       PPTL  的语法和语义, 并介绍了自然文本的时序语义
                 分类类型, 即时序操作符作为研究内容的理论基础, 最后也给出了监控语义的定义和解释. 下面就相关概念和基本
                 知识予以介绍.
                  2.1   PPTL  语法
                       Prop 表示可数的原子命题集合, PPTL       通过公式    (1) 给出语法定义:
                    令

                                               P = p|¬p|P 1 ∧ P 2 | P|(P 1 ,...,P m ) prj P          (1)
                 其中,  P ∈ Prop 的原子命题,   (P 1 ,...,P m ) 和  P 表示  PPTL  公式,   next () 和投影  (prj) 是两个基本的时序操作符. 依据
                 PPTL  公式是否包含时序操作符, 可以划分为两大类: 一类是时序公式, 一类是状态公式.
                  2.2   PPTL  语义
                    PPTL  的状态定义: 使用字母      s 表示一个区间状态. 接着引入  ,                        B 表示真值集合, 该集合
                                                                   p p ∈ Prop. 用大写字母
                                                             s
                                                                              s
                 包了两个元素:     B = {true,false}, 分别代表真和假. 在状态   上,  p 的真值是由从   到   B 的映射确定,    s[p] = true 就意
                                             s
                 味着状态   s 下,  p 的值为真. 对于状态   上的任意原子命题, 其真值公式定义为公式               (2):

                                                        s : Prop → B                                  (2)
                    PPTL  中的区间定义: 定义区间      σ 为非空状态序列, 表示为       σ =< s 0 , s 1 ,..., s |σ| >, 并且依据状态个数可将区间状
                                                              |d| = c−1, 其中   表示区间内状态个数. 无穷区间长度
                                                                          c
                 态划分为两种类型: 有穷区间和无穷区间. 有穷区间长度
                 |d| = ω, 其中  ω 表示无穷大. 为了统一区间长度描述, 将非负整数集            N 0  扩展为  N ω = N 0 ∪{ω}. 在  N ω  中,  ω = ω, 对于
                          N 0  中的操作符  、                                                    σ  的子区间使用
                                      <
                 ∀i ∈ N 0 , 将            ⩽  和  =  扩展到  N ω  中, 并定义操作符  ≺  为  ⩽ −{(ω,ω)}. 定义区间
                                                                      −
                 σ m...n (0 ⩽ m ≺ n ⩽ |σ|)  表示.
                          −
                    PPTL  中的投影定义: 定义一个连续的非负整数序列              r 1 ,...,r n , 以及一个区间  σ =< s 0 , s 1 ,..., s |σ| >, 其中  n ⩾ 1 且
                                                                                r 1 ,...,r n  上的结果如公式  (3) 所
                 0 ⩽ r 1 ⩽ ... ⩽ r n ≺ |σ|. 为了表示投影操作, 引入辅助算子   ↓. 那么区间   σ 投影在序列
                             −
                 示, 其中  t 1 ,t 2 ,...,t l  为  r 1 ,...,r n  删除重复项所得严格递增序列:

                                                                       >                              (3)
                                                 σ ↓ (r 1 ,...,r n ) =< s t 1  , s t 2  ,..., s t l
                  2.3   时序操作符
                                                                                                 def
                                                                         ,
                                                                    ,  ,
                    基本操作符的定义与经典一阶逻辑中的定义相同, 例如                    true ∨ → ¬, 并且对任意公式都有        true = P∨¬P、
                                    def
                 P 1 ;P 2 = (P 1 ,P 2 ) prj ε  和  ε = ¬true. 以下分别介绍本文用到的时序操作符:

                                                               def
                                              A1 sometimes (♢) : ♢P = true;P
                                             
                                             
                                             
                                             
                                             
                                                            def
                                             
                                              A2 always (□) : □P = ¬♢¬P
                                             
                                             
                                             
                                             
                                             
                                                           def            ,
                                                          n
                                             A3 next () :  P = ( n−1 P)(n > 0)
                                             
                                             
                                             
                                             
                                             
                                                                   def
                                             
                                              A4 implication (→) : P → Q = ¬P∨ Q
                                             
                                             
                                             
                                             
                                             
                                             
                                               A5 prj : (P 1 ,...,P m ) prj Q
                 其中,   A1 公式在区间  σ =< s 0 , s 1 ,..., s |σ| > 上成立且仅当存在某个子区间  σ (i...|σ|) (0 ⩽ i ≺ |σ|)  使得  P 成立,  ♢P 语义表
                                                                                  −
                 示如图   1(a) 表示;   A2 公式在区间  σ 上成立当且仅当     P 在所有子区间上均成立.       □P 的语义如图     1(b) 所示; 公式在
   55   56   57   58   59   60   61   62   63   64   65