在对《中国共产党简史》全书进行数据标注,从中提取了有效三元组三千余条之后,按照不同类型的实体和关系,将有效三元组分成30余种。接着我们团队使用Python语言和图形查询语言——Cypher将有效三元组导入Neo4j数据库中,形成知识图谱。
Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
Cypher 是 Neo4j 提出的图查询语言,是一种声明式的图数据库查询语言,它拥有精简的语法和强大的表现力,能够精准且高效地对图数据进行查询和更新。。它允许声明想要从图数据库中选择、插入、更新或删除什么,而不需要精确地描述如何做到这一点。通过 Cypher,用户可以构建表达性强且高效的查询,处理所需的创建、读取、更新和删除功能。并且Cypher使用方式丰富,既可以直接登录Neo4j服务器并在服务器上使用,也可以在Python中使用py2neo模块通过操作Python变量进而达到操作Neo4j的目的。
在我们团队对从《中国共产党简史》提取出的有效三元组进行导入工作时,除了常规的建立节点、在节点之间建立关系等操作之外,还有一个十分重要的步骤,就是合并重复节点及去除重复关系,在对Cypher语句进行了一段时间的学习之后,团队成员采用APOC插件(APOC是一个基于Neo4j的函数包插件,里面包含丰富的函数和过程,作为对Cypher所不能提供的复杂图算法和数据操作功能的补充)对建立的节点进行合并操作。
现阶段构建的知识图谱包括《新中国史》和《中国共产党简史》,其中共有实体节点四千二百余个,包括事件、人物、地点、政策、文件、时间等,同时节点间的关系共有四千三百余条,包括位于、内容、发生地点、起始时间等关系。
在后续阶段对《改革开放史》和《社会主义发展史》进行数据标注工作后,我们团队计划继续将得到的有效三元组进行分类并导入Neo4j中,形成较为完整的”四史“知识图谱。
http://www.dxsbao.com/shijian/525715.html 点此复制本页地址