使用Neo4j+InteractiveGraph实现豆瓣电影知识图谱可视化

本文详细介绍了如何利用Neo4j处理豆瓣电影数据,构建包含电影、演员、导演的知识图谱,并通过InteractiveGraph进行可视化。数据包含2.7万个节点和5万条关系,涉及数据处理、导入、配置可视化系统和展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.介绍

本文基于豆瓣电影数据构建了一个电影知识图谱。其中包括电影、演员、导演三种节点及相关关系。并使用InteractiveGraph对图谱完成可视化工作。

  • 数据丰富,图谱包含2.7万个节点,5万条关系
  • 使用Neo4j图数据库进行图存储
  • 支持大图全局可视化预览
  • 支持节点关联发现
  • 支持节点展开浏览可视化

所用到的程序包括:

1.数据处理

该数据来自openKG(http://www.openkg.cn/dataset/douban-movie-kg),抽取自豆瓣电影。示例数据如下,包括电影的标题、封面、分类、语言基本信息以及导演、编剧和主演等人员信息。

豆瓣电影

{
  "id": 1292052, 
  "title": "肖申克的救赎",
  "url": "http://movie.douban.com/subject/1292052/", 
  "cover": "http://img3.douban.com/view/movie_poster_cover/lpst/public/p480747492.jpg", 
  "rate": 9.6, 
  "director": ["弗兰克·德拉邦特"],
  "composer": ["弗兰克·德拉邦特", "斯蒂芬·金"], 
  "actor": ["蒂姆·罗宾斯", "摩根·弗里曼", "鲍勃·冈顿", "威廉姆·赛德勒",  "克兰西·布朗", "吉尔·贝罗斯", "马克·罗斯顿", "詹姆斯·惠特摩", "杰弗里·德曼", "拉里·布兰登伯格", "尼尔·吉恩托利", "布赖恩·利比", "大卫·普罗瓦尔", "约瑟夫·劳格诺", "祖德·塞克利拉"], 
  "category": ["剧情", "犯罪"], 
  "district": ["United States of America_美国"], 
  "language": ["英语"], 
  "showtime": 1994.0, 
  "length": 142.0, 
  "othername": ["月黑高飞(港)", "刺激1995(台)", "地狱诺言", "铁窗岁月", "消香克的救赎"]
 }

数据集为JSON格式,在导入Neo4j之前还需要做一些处理。
首先使用Pandas读入数据集:

 

import pandas as pd
import numpy as np
# 读入数据集
data = pd.read_json('data/dbmovies.json', dtype=object)

由于最终构建的图谱包含电影和人这两类节点,因此需要将人物信息从电影信息中抽取出来。观察数据集可以发现,人物信息出现在主演、导演和编剧这三个字段中,所以需要将这三类信息转换成边信息并合并出人员节点数据。

以演员为例,首先把原数据中actor中的演员集合转换成包含<电影id,演员姓名>这两列的DataFrame,然后导出为CSV文件作为边数据。导出为CSV是因为方便Neo4j导入。

有了边数据之后,将这三

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值