【知识图谱】07图谱可视化(使用neo4j)

目录

1、建立neo4j数据库

2、数据导入工作

2.1、导入 genre

2.2、导入movie

2.3、导入actor

3、生产关系信息

3.1、生成电影和类型关系

3.2、生成 演员和电影的关系

3.3、关系最终效果预览

4、推理实现

4.1、节点建立

4.2、关联关系


neo4j的安装配置参考:

https://blog.csdn.net/u012052268/article/details/89553588

先来一张预览图:

1、建立neo4j数据库

对conf文件右键进行编辑

搜索关键词 dbms.active_database= 

将#dbms.active_database=graph.db 修改成dbms.active_database=kg_movie.db,注意删除符号“#”

启动neo4j服务器

neo4j console

可以看到在neo4jxxx/data/databases目录下新增了数据库kg_movie.db

 

2、数据导入工作

2.1、导入 genre

使用如下命令:

LOAD CSV WITH HEADERS  FROM "file:///genre.csv" AS line
CREATE (g:Genre{genre_id:toInteger(line.genre_id),genre_name:line.genre_name})

效果:

2.2、导入movie

使用如下命令:

LOAD CSV WITH HEADERS  FROM "file:///movie.csv" AS line
CREATE (m:Movie{movie_id:toInteger(line.movie_id),movie_bio:line.movie_bio,movie_chName:line.movie_chName,movie_foreName:line.movie_foreName,movie_prodTime:line.movie_prodTime,movie_prodCompany:line.movie_prodCompany,movie_director:line.movie_director,movie_screenwriter:line.movie_screenwriter,movie_genre:line.movie_genre,movie_star:line.movie_star,movie_length:line.movie_length,movie_releaseTime:line.movie_releaseTime,movie_language:line.movie_language,movie_achiem:line.movie_achiem})

效果如图:

对于如果节点名称显示不是actor_chName的情况,如下操作可以解决:

点击图中1处的节点,然后点击2处的展开按钮,选择3处的movie_chName属性作为节点名称显示即可。

2.3、导入actor

使用如下命令:

LOAD CSV WITH HEADERS  FROM "file:///actor.csv" AS line
CREATE (a:Actor{actor_id:toInteger(line.actor_id),actor_chName:line.actor_chName,actor_foreName:line.actor_chName,actor_nationality:line.actor_nationality,actor_constellation:line.actor_constellation, actor_birthplace:line.actor_birthplace, actor_birthday:line.actor_birthday, actor_repWorsk:line.actor_repWorks, actor_achiem:line.actor_achiem,actor_brokerage:line.actor_brokerage})

 效果如下:

 

3、生产关系信息

生成关系信息,因为neo4j本身就属于数据库,所以我们没必要再利用关系文件生成了。

3.1、生成电影和类型关系

直接进行如下操作:

match (m:Movie),(g:Genre) where m.movie_genre contains g.genre_name create (m) - [r:belong_to] -> (g) return r

关系标签可通过左侧导航栏进行快速选择:

选择刚刚生产的belong_to关系,可看到如下效果:

3.2、生成 演员和电影的关系

如下操作:

match (m:Movie),(a:Actor) where m.movie_star contains a.actor_chName create (a) - [r:参演] -> (m) return r

选择左侧参演关系,看到如下效果:

这里有个瑕疵要特殊说明下,这里就再次彰显了数据清洗的重要性,因为我们知道不可能有名字叫None,我们理应在数据准备环节对数据进行清洗,完成这种脏数据的删除工作,避免后续对分析工作的影响。

 

3.3、关系最终效果预览

如下:

4、推理实现

之前有通过Jena+Fuseki来实现自定义规则的推理机,在neo4j中,只能自行通过逻辑实现关系,例如,对于喜剧演员,我们想要实现和Jena+Fuseki一样的效果,则必须做两件事情:(1)建立喜剧演员节点;(2)根据逻辑关系,关联喜剧演员和演员的关系

4.1、节点建立

create (comedian:Comedian {name:'喜剧演员'})

4.2、关联关系

喜剧演员推理实现:

match (comedian:Comedian),(m:Movie),(a:Actor) where m.movie_genre contains "喜剧" and m.movie_star contains a.actor_chName merge (comedian) - [r:喜剧人] -> (a) return r

 这里一定要使用merge而不是create来创建关系,避免节点之间多次指向。

效果图如下:

 

其他:

neo4j和jena+fuseki区别还是体现了出来,neo4j需要通过关系建立匹配,将所有数据跑一遍生成关系才可以完成推理,等于是已有数据的二次加工,而jena+fuseki则是不用对数据进行二次加工,直接关联规则就行了,省去对数据关系关联的处理时间,实时性较好。当然,从工具本身来看,neo4j在业务可读性上,完胜,毕竟自带GUI界面。

附:

关系的删除使用以下:

match p=()-[r:喜剧人]->() delete r

完成。 

  • 8
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Neo4j是一个非常流行的图数据库,它可以用于存储和查询大规模的关系数据。同时,Neo4j也提供了一些可视化工具,可以帮助用户更好地理解和分析存储在图数据库中的数据。 下面介绍几种常见的Neo4j知识图谱可视化工具: 1. Neo4j Browser:Neo4j自带的浏览器,可以通过Cypher查询语言对数据库中的数据进行查询和可视化展示。通过浏览器内置的图形显示功能,可以将查询结果以图谱的形式呈现出来,便于用户更好地理解和分析数据。 2. Gephi:Gephi是一种开源的图形分析和可视化软件,支持多种数据源,包括Neo4j。通过Gephi,用户可以将从Neo4j数据库中提取的数据以图谱的形式进行可视化展示,同时还可以进行一系列的图形分析和处理操作,如节点度数分布、社区检测等。 3. Linkurious:Linkurious是一种商业化的Neo4j可视化工具,提供了丰富的图形化数据分析和可视化功能,包括动态图谱展示、搜索和过滤、节点标签和关系类型的定制等功能。用户可以通过Linkurious轻松地浏览和分析Neo4j数据库中的数据,并且可以通过可视化的方式更好地理解和发现数据之间的关系。 4. Tom Sawyer Perspectives:Tom Sawyer Perspectives是一种专业级的图形可视化和分析工具,支持多种数据源,包括Neo4j。Tom Sawyer Perspectives提供了强大的图形分析和可视化功能,包括图谱布局调整、节点和关系的可视化配置、数据过滤和查询等功能,可以帮助用户更好地理解和分析Neo4j数据库中的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值