基于电影知识图谱的智能问答系统(二) -- Neo4j导入CSV文件

 

基于上一篇:基于电影知识图谱的智能问答系统(一) -- Mysql数据准备

 

我们已经准备好了CSV数据文件,接下来,就是如何导入这些数据到Neo4j中了

 


一、Neo4j默认导入目录路径

 

 

比如我的neo4j安装根路径在D盘下,其默认的导入文件的入口文件夹是

 

 

 

 

如果没有,请自行创建这个文件夹

 

随后我们将我们从mysql导出的csv文件copy到这个文件夹下面

 

 

 

和mysql的导出默认文件夹一样,neo4j的导入文件夹也是默认好的,如果你导入csv文件选择了其他文件夹下,则会报目录不存在或者目录权限不足,如果你有强迫症,可以自行修改默认设置的导入文件夹路径

 

 

 

二、Neo4j导入CSV文件

 

 

csv文件导入neo4j语句

 

找到neo4j的安装路径,并在D:\neo4j-community-3.4.0\目录下创建import目录
完整路径如下D:\neo4j-community-3.4.0\import
因为neo4j支持导入csv文件,其默认目录入口是 ...\import


//导入节点 电影类型  == 注意类型转换
LOAD CSV WITH HEADERS  FROM "file:///genre.csv" AS line
MERGE (p:Genre{gid:toInteger(line.gid),name:line.gname})
	

//导入节点 演员信息	
LOAD CSV WITH HEADERS FROM 'file:///person.csv' AS line
MERGE (p:Person { pid:toInteger(line.pid),birth:line.birth,
death:line.death,name:line.name,
biography:line.biography,
birthplace:line.birthplace})


// 导入节点 电影信息
LOAD CSV WITH HEADERS  FROM "file:///movie.csv" AS line  
MERGE (p:Movie{mid:toInteger(line.mid),title:line.title,introduction:line.introduction,
rating:toFloat(line.rating),releasedate:line.releasedate})


// 导入关系 actedin  电影是谁参演的 1对多
LOAD CSV WITH HEADERS FROM "file:///person_to_movie.csv" AS line 
match (from:Person{pid:toInteger(line.pid)}),(to:Movie{mid:toInteger(line.mid)})  
merge (from)-[r:actedin{pid:toInteger(line.pid),mid:toInteger(line.mid)}]->(to)
	
//导入关系  电影是什么类型 == 1对多
LOAD CSV WITH HEADERS FROM "file:///movie_to_genre.csv" AS line
match (from:Movie{mid:toInteger(line.mid)}),(to:Genre{gid:toInteger(line.gid)})  
merge (from)-[r:is{mid:toInteger(line.mid),gid:toInteger(line.gid)}]->(to)


-- 问:章子怡都演了哪些电影?
match(n:Person)-[:actedin]->(m:Movie) where n.name='章子怡' return m.title

--  删除所有的节点及关系
MATCH (n)-[r]-(b)
DELETE n,r,b

 

由于csv导入neo4j的数据都是字符串的数据类型,因此,对于一些有特殊要求的字段,我们需要在导入的时候进行类型转换

 

比如

 

 

再比如

 

 

 

语句一个个执行,最终执行完在neo4j中的的效果如下

 

 

 

我们利用cypher语句查询一下关系actedin有哪些

 

 

match (n)-[r:actedin]-(b) return n,r,b limit 10

 

 

 

 

 

CSV数据包下载地址:

 

 

 

 

百度网盘:https://pan.baidu.com/s/1QJRS8eyZXQt44wBwNyZ6eQ

 

 

 

下一篇:基于电影知识图谱的智能问答系统(三) -- Spark环境搭建

 

 

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值