Page 281 - 《软件学报》2025年第10期
P. 281
4678 软件学报 2025 年第 36 卷第 10 期
抽取模型种, 获得其对应的输出结果, 并与人工标注的结果进行比较. 实验结果显示, 抽取模型信息抽取的准确率
达到了 97.76%, 能够较好地识别领域术语和关键信息. 这表明上述方法为抽取领域特定自然语言文本中的关键信
息提供了一种有效的解决方案.
图 4 需求信息抽取模型提示词
2.3 领域知识库的构建
我们将领域知识分为两大类, 分别是交易概念领域知识和交易操作序列领域知识, 分别用于需求的操作化和
关系识别. 其中交易概念领域知识关注对交易中静态概念的分类、解释和组合关系的描述, 而交易操作序列领域
知识则涉及交易过程中操作执行的顺序和状态变化的相关知识.
(1) 交易概念领域知识. 交易概念领域知识主要包括解释型、分类型和组合型知识. 其中, 解释型领域知识主要是
对领域特定名词的定义和解释, 比如“价格优先原则是指较高价格买入申报优先于较低价格买入申报, 较低价格卖出
申报优先于较高价格卖出申报”. 分类型领域知识是对领域特有概念的分类, 比如“债券交易方式有匹配成交、点击成
交、询价成交、竞买成交、协商成交以及本所认可的其他交易方式”. 组合型领域知识是对领域概念之间的组合关系
的描述, 比如“意向申报的申报要素应当包括证券代码、交易方向、发送范围、证券账户号码、是否匿名等内容”.
交易概念领域知识的获取主要有两种来源: 文档自动提取和领域专家补充. 我们定义了一组启发式的规则, 结
合算法自动提取文档中的领域知识. 对于规则过滤模型判断为领域知识的句子, 算法首先会依据句子中的关键字
判断它对应领域知识的类别. 若包含“是指”“为”等表示解释型的词, 则为解释型知识, 算法提取要解释的名词及它
对应的解释; 若包含“是一种”“有”等表示 is-a 关系的词, 则为分类型知识, 算法提取要分类的概念以及它包含的具
体类别; 若包含“下列”“包括”等表示 has-a 关系的词, 则为组合型领域知识, 算法对这种知识的处理同分类型知识.
最后, 算法将领域知识整合到领域知识库中, 供需求可操作化使用. 在实际使用中, 根据测试, 我们的算法能够自动
处理超过 90% 的领域知识, 其余领域知识将被手动补充到领域知识库中.
(2) 交易操作序列领域知识. 交易操作序列领域知识主要包含证券交易操作执行顺序及状态变化, 我们采用状
态机描述交易过程中不同事件触发的不同交易状态, 用以对不同操作之间的先后顺序进行约束. 针对不同业务的
不同交易过程, 可以用不同的状态机描述. 图 5 就是一个针对债券交易的状态机, 其交易状态有 8 个, 从未委托开
始, 经过多个操作进入终结状态. 操作可能会触发状态的迁移, 如申报、撤销申报等, 也可能不触发状态迁移, 比如
撤销申报失败. 这些知识将会被用来识别软件需求间的依赖关系.
最终, 我们构建了一个实用的证券领域知识库, 其中包含了 266 条交易概念领域知识和 56 条交易操作序列领
域知识. 这些知识为后续步骤的执行提供了必要的基础. 通过对领域知识的整合与应用, 我们能够更有效地分析和
处理模型抽取得到的形式化软件需求, 生成更全面、更高质量的需求规约.

