Page 90 - 2024年第55卷第1期
P. 90
齐,并划分评价指标级别,实现指标名称的标准化。与水文模型类似,同样采用词汇映射表的方法,
将文献中出现的同义评价指标整理对齐后更新。以相对误差为例,表 4为评价指标对齐分级示例。
表 3 部分水文模型词汇表示例
标准名称 文献中出现的同义名称
SWAT模型 SWAT SWAT水文模型 soilandwaterassessmenttool 流域 SWAT模型 Soil&WaterAssessmentTool
VariableInfiltrationCapacity VIC可变下渗能力 可变下渗容量 大尺度陆面水文 VICdistributed
VIC模型
Macroscalehydrologymodel 水文模型 水文模型( VIC) 模型 VIC模型 hydrologicalmodel
新安江模型 三水源新安江模型 XinanjiangModel XAJ模型 新安江水文模型 Xin’anjianghydrologymodel
NAM模型 NAM HydrologicalModel NAM 降雨径流模型(NAM) NAM model 流域水文模型 NAM
表 4 评价指标对齐分级示例
一级指标 同义指标 二级指标 二级同义指标
平均相对误差 相对误差平均值、相对误差均值
相对误差 相对偏差、相对误差 Relativeerror?%、相对偏差 RB、相比误差…… 相对误差最大值 最大相对误差
相对误差最小值 相对误差最小值
3.5 知识存储 Neo4j是目前主流的属性图数据库之一,采用的是基于节点和关系的数据模型,每个
节点代表一个实体或概念,每条边代表两个实体之间的关系,通过节点和边之间的连接构成一个图形
化存储结构,这种结构极大地方便了复杂关系的表示和查询,且有良好的伸缩性与灵活性,具有较高
的用户认可度。根据水文模型知识图谱对关系查询、快速响应与持续扩展的要求,本研究选择 Neo4j
图数据库进行知识存储与更新管理。
知识抽取与融合的结果以篇论文为单位存储在表格中,每一行为一篇文章的抽取结果,表头代表
了抽取的实体类型,如 “论文名字” “作者” “水文模型” 等。每个单元格内的数据以字符串列表的
形式存储,可包含 多 个 条 目,其 中 “计 算 时 段” 和 “指 标 数 值 实 体” 嵌 套 了 字 典 来 描 述 键 值 对
信息。
本研究使用 py2neo库对 Neo4j数据库进行操作,包括节点关系的创建、数据查询、数据更新等。
py2neo是 Python编程语言的 Neo4j图数据库驱动程序,它提供了一个 Pythonic的 API,用于连接 Neo4j
数据库,与数据库进行交互。
( 1)节点关系创建。使用 py2neo库的 Graph类创建一个数据库连接;遍历处理后的每一行表格数
据创建节点关系,使用 Node类创建一个新的节点,并使用 graph.create()将其添加到数据库中;使用
Relationship(a_node,relation,b_node,kwargs)来创建 a_node与 b_node之间的关系。
(2)数据库更新。构建实体关系补充与数据库更新工具。在采集新数据之后,通过 py2neo连接数
据库,查询图数据库 以判 断新 实 体 和 关 系 是 否 已 存 在,将 新 的 实 体 和 关 系 进 行 入 库 保 存,并 通 过
update()方法对已存数据进行更新,完成自动抽取、融合、入库的知识更新流程。
4 图谱构建实例与应用
4.1 数据处理 本文训练数据来源于 CNKI中国期刊全文数据库,设置检索主题为 “水文模型”,年
份范围为 2005—2022年,筛选后得到 1209篇水文模型领域期刊论文。
通过 PDF解释器将期刊解析成文本数据,利用 jieba工具对分词去停用词,并结合模式匹配的方
式对解析后的文本过滤清洗。通过分句算法,使文本转换为规则句子,为保证实体识别的准确性,截
断超长句子,并通过实体匹配的方式使包含实体的句子和非包含实体的句子满足均匀分布,得到处理
后的规则句子集。用 BMOES标注法对句子进行人工标注。将标注好的句子集转换成输入模型的序列
— 8 5 —