Page 235 - 《软件学报》2026年第5期
P. 235
2114 软件学报 2026 年第 37 卷第 5 期
3.1.1 数据获取和预处理
在本文中, 使用软件的配置文档作为构建 CFRG 的数据源. 目前主流开源软件大都提供从 Web 端访问软件配置
文档的入口, 有的软件会提供官方文档的 pdf 版本以供下载. 我们使用 Python 语言编写脚本工具从官方网站获取
配置文档数据, 针对不同软件的官方网站编写适配器, 爬取配置文档并统一转化为{配置: 描述文本}的键值对形式.
获取的配置文档仍需要预处理来用于进一步分析. 本文借助 LLM, 通过 3 方面的预处理来提高数据质量:
1) 主语补充, 这一步补充文档语料中缺失的配置主语, 将配置项名称作为主语显式地补充在语句中, 如图 7 所示,
在配置项 enable_memory_limit 的描述中, Specifies 缺少 enable_memory_limit 作为主语, 此处引导 LLM 将主语补
充完整; 2) 共指消解 (coreference resolution), 该步将文本中不同的词语或短语, 识别为它们所指的同一个对象或实
体, 例如在图 7 中, enable_memory_limit 被 it 和 this parameter 指代, 经过替换后, 新的语句如图 7 右图蓝色部分所
示; 3) 配置标注, 这一步将语句中的配置项使用特定标识符标识出来, 这样便于引导大模型识别语料中的配置项关
键词, 提升大模型处理语料的效果, 如图 7 所示, enable_memory_limit 被使用<<>> 标注, 便于后续大模型将<<>>
中的内容识别为配置项关键词.
enable_memory_limit 1. 主语补充 enable_memory_limit
3. 配置标注
···
···
2. 共指消解
图 7 文档数据预处理示例
3.1.2 配置-功能关联图初始化
LLM-Extractor 首先遍历每个配置项的文本描述, 从中分析配置项基本属性信息并抽取软件功能实体, 构建
CRFG 的骨架, 完成关联图初始化.
(1) 类型抽取和合法取值抽取
LLM-Extractor 首先引导 LLM 分析文本描述并判断配置项的类型, 而后根据不同的类型抽取配置项的合法取
值. 本文结合已有工作的配置分类方法以及第 2.2.1 节中经验研究的结果, 将配置分为 4 类: 布尔、数值、枚举和
复杂字符串, 本文重点考虑前 3 种类型. 配置项类别以及对应的合法值抽取提示词如表 3 所示.
表 3 配置项分类和对应合法值抽取提示词
配置项类别 举例 合法值抽取提示词
If {config} belongs to Boolean type, please extract the value set for
Boolean enable_double_write: on/off
True as well as for False. Ex: True: [on, enabled] False: [off, disabled]
If {config} belongs to Numerical type, please extract the legal value
Numerical bgwriter_lru_maxpages: 0–1 000
range for {config}. Ex: int(1, 1 000)
If {config} belongs to Enum type, please extract the legal value for
Enum wal_sync_method: open_datasync/fsync…
{config}. Ex: [open_datasync, fsync, fsync_writethrough, open_sync]
ComplexString krb_srvname: {customed name} -
(2) 软件功能和状态实体抽取
LLM-Extractor 引导 LLM 分析文本抽取文本中存在的软件功能实体和状态实体. LLM-Extractor 逐句输入配
e Cond LeadTo AtStatus(e F ,e FS ) 逻辑关系的自然语言表述, 如果存在, 则从文本中抽
置文档, 判断语句中是否存在满足
取出对应的 e Cond 、e F 、e FS , 并输出关联关系, 最后将解析出的关联关系补充到 CFRG 中.
由于使用 LLM 提取软件功能实体时存在稳定性较差、依赖文档本身写作风格的问题, 本文对提取出的 E F 集
合进行实体消歧. 本文使用预训练的文本嵌入模型 bge-large-en 计算不同 E F 实体的向量表示, 随后通过计算向量
表示之间的相似度判断实体相似度 s, 若 s 高于设定的相似度阈值, 则认为该两个实体指向同一个 E F . 完成实体消

