Page 74 - 2024年第55卷第9期
P. 74

模式一:第 k行与第 k + 1行都为险情措施,则把第 k行的措施加入列表 method1。
                  模式二:第 k行为险情措施,第 k + 1行为子措施,则把第 k行的措施加入列表 method2,第 k + 1
              行的子措施加入列表 subMethod。在逻辑上,此模式中的第 k + 1一定为第 k行的子措施,根据此对应
              关系可建立字典 subMethodDic存放 {措施:子措施} 键值对。
                  模式三:第 k行与第 k + 1行都为子措施,则提取第 k + 1行的子措施内容,放入列表 subMethod。
              在逻辑上,该模式中的两行子措施对应的措施是同一个,同时因为循环按行进行带有天然的先后顺
              序,第 k行子措施与对应措施已经在模式二中作为键值对添加进了字典 subMethodDic,因此只需在字
              典中找到该键值对,将第 k + 1 行子措施添加进相应的值中即可。
                  模式四:第 k + 1 行为险情措施并且是该段落最后一行,则将该行加入列表 method1。对于每一个
              具体情形段落,其结尾都是措施段最后一行,如果该行为子措施行,则经由以上三种模式处理后会被
              提取,但该行如果是措施行则可能会被遗漏,因此模式四针对这种情况进行了补充和完善,以保证规
              范中每一条措施都会被准确提取。
                  可以看出,以上四种模式将所有措施分为了两类:有子措施的险情措施与无子措施的险情措施,
              较好地解决了自然语言表述中类别和层次结构提取困难的问题,同时该形式也利于通过三元组表达两
              组对应关系,即:(具体情形,hasMethod,险情措施),(子措施,isIncludedin,险情措施)。
              4.3 语义对齐 语义对齐旨在将文本中标注的元素映射到知识库中相应的概念                                    [32] 。在土石坝领域中,
              险情的发生受多方因素影响,对险情原因进行类型划分利于对症下药地采取治理措施,尽可能避免、
              减轻人员伤亡和财产损失。本研究基于本体和 NLP的方法制定规则,对提取到的险情原因进行处理使
              其映射到 KG模式层的 “原因类型” 概念中,以便于图谱的表达。
                  在这过程中,首先追根溯源,将原因类型划分为人为原因、环境原因、机械原因、生物原因等。
              其次对抽取的险情原因数据进行处理,采用中文文本分词库 jieba                            [33] 进行分词,分词时首先在词典中
              添加《水利水电工程技术术语》等专业文本以避免水利术语被错分、漏分,并引入停用词表优化分词结
              果。分词结束后,采用哈尔滨工业大学开发的 NLP工具 LTP                          [34] 进行词性标注。根据词性标注结果,
              文本中占比较多的为名词,其次为动词,因此建立 “名词主导、动词辅助” 语义对齐规则。在该规则
              中,通过 NLP的分词与词性标注等引入了中文句法信息,而先前建立的本体则提供了语义信息,例如
              过程本体中定义了土石坝全生命周期与人为活动有关的概念,因此若某条原因的分词结果经判断属于
              “过程本体”,则该条原因可判定为人为原因。类似地,对所有险情原因进行这种对齐操作,并将该映
              射转化为一组关系:(险情原因,isIncludedin,原因类型)。
              4.4 知识存储 KG的存储方式通常有:RDF三元组、关系型数据库、图数据库                                   [35] 等。其中图数据运
              用图的结构存储数据,以节点和边为基本要素,具有表现形式直观、数据类型多样、可拓展性强的优
              点,因此本文选用图数据库存储 KG。
                  在主流图数据库中,开源平台 Neo4j在 KG领域使用较多,它具有 Cypher查询语言,提供了一系
              列操作使用户能十分便捷地创建数据及其相互关系,如:MATCH(匹配)、CREATE(创建)、RETURN
              (返回)、DELETE(删除)等         [36] 。本文采用 Neo4j进行土石坝险情 KG的存储,首先将抽取的知识从
              Python编译平台导出为 Neo4j支持的文件格式.csv,其次在 Neo4j中通过 LOADCSV命令导入知识,当
              出现新的知识时,可通过 CREATE或 MERGE命令对图谱进行扩展。存储的知识根据不同类型以不同
              的颜色显示,直观明了地实现 KG可视化。

              5 土石坝险情知识图谱构建实例及应用


                  按照本文提出的土石坝险情领域 KG具体构建方法,分别采用自顶向下法构建模式层、自底向上
              法构建数据层,建立了包含土石坝结构、过程、环境、材料本体的本体库,从规范和事故库中抽取了
              具体的知识内容并进行语义对齐,将结果全部转化为 Neo4j图数据库可兼容的.csv格式,其中知识内
              容示例可见表 5,语义对齐示例可见表 6。

                                                                                                   0
                                                                                              —   1 7 9 —
   69   70   71   72   73   74   75   76   77   78   79