基于neo4j构建西游记知识图谱

《西游记》是明代创作的中国古代第一部浪漫主义章回体长篇神魔小说。该小说以“玄奘取经”这一历史事件为蓝本,经作者的艺术加工,深刻地描绘出明代百姓的社会生活状况。《西游记》是中国神魔小说的经典之作,达到了古代长篇浪漫主义小说的巅峰,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。

西游记国人物众多,人物关系复杂,非常适合构建知识图谱,通过知识图谱梳理西游记人物关系。

知识图谱在以前文章中介绍过,需要进行本体构建—信息抽取——知识融合。通过deepke抽取人物实体,人物关系与人物属性。

本节介绍知识图谱存储---neo4j。

neo4j是图数据库。我们平常用的数据库一般是RDBMS(关系型数据库),那么什么是图数据库呢?既然有了关系型数据库,那么为什么要有图数据库呢?

简单来说:
图形数据库(图形数据库也称为图形数据库管理系统或GDBMS。

图数据库的基本含义是以“图”这种数据结构存储和查询数据,而不是存储图片的数据库。它的数据模型主要是以节点和关系(边)来体现,也可处理键值对。它的优点是快速解决复杂的关系问题。

数据结构:
在一个图中主要包含两种数据类型:Nodes(节点)和Relationships(关系)。他们各自内部又包含key-value形式的属性,然后节点之间通过关系相连,形成了关系型的网状结构

基于neo4j构建西游记知识图谱_第1张图片

Neo4j的特点
SQL就像简单的查询语言Neo4j CQL
它遵循属性图数据模型
它通过使用Apache Lucence支持索引
它支持UNIQUE约束
它包含一个用于执行CQL命令的UI:Neo4j数据浏览器
它支持完整的ACID(原子性,一致性,隔离性和持久性)规则
它采用原生图形库与本地GPE(图形处理引擎)
它支持查询的数据导出到JSON和XLS格式
它提供了REST API,可以被任何编程语言(如Java,Spring,Scala等)访问
它提供了可以通过任何UI MVC框架(如Node JS)访问的Java脚本
它支持两种Java API:Cypher API和Native Java API来开发Java应用程序
Neo4j的优点
它很容易表示连接的数据
检索/遍历/导航更多的连接数据是非常容易和快速的
它非常容易地表示半结构化数据
Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
它使用简单而强大的数据模型
它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引
Neo4j的缺点或限制
Neo4j 2.1.3最新版本,它具有支持节点数,关系和属性的限制。
它不支持Sharding。

应用

对于西游记知识图谱,通过deepke通过结构化数据后,通过sql插入到数据,如下所示

CREATE (x_Person:X_Person{name:"唐三藏",age:39})
CREATE (x_Person:X_Person{name:"孙悟空",age:520})
CREATE (x_Person:X_Person{name:"猪八戒",age:512})
CREATE (x_Person:X_Person{name:"沙悟净",age:444})

最后得到效果如下

爱阅书

 

你可能感兴趣的:(知识图谱,neo4j,人工智能)