py2neo连接知识图谱(包含代码,导入csv文件)

py2neo简单教程

这里默认你已经知道了什么是neo4j(不清楚可以科学上网,了解一下),并且已经安装好neo4j,配置好环境成功启动neo4j。本人使用的是neo4j-4.1.12。
在这里插入图片描述
neo4j是图数据库,其中最重要的就是实体和关系,实体之间和关系构成三元组,<head,relation,tail>。同时每个实体拥有自己的一些属性。

首先,我们安装第三方库:pip install py2neo

from py2neo import *

# 连接neo4j
graph = Graph("http://localhost:7474",auth=("neo4j", "neo4j"))    # neo4j默认账户密码为neo4j,改成自己的
graph.delete_all()  # 需要清空数据库

# 创建结点
# 语义类型person,结点名字张三,也是它的属性
node1 = Node('person', name = '张三')
node2 = Node('address', name = '北京市海淀区')
node3 = Node('person', name = '李四')

# 给node1添加属性
node1['age'] = 22

# 给node3添加一个属性 sex
node3['sex'] = '男'

# 结点实例化
graph.create(node1)
graph.create(node2)
graph.create(node3)

# 创建关系
address = Relationship(node1, '地址', node2)
classmates = Relationship(node1, '同学', node3)
address1 = Relationship(node3, '地址', node2)

# 关系实例化
graph.create(address)
graph.create(address1)
graph.create(classmates)

print("创建成功")

出现了一个错误,是连接neo4j版本语法的问题,改成auth=(“username”,“password”)即可。
在这里插入图片描述
创建成功后到 http://localhost:7474/browser/ 查看图谱。
在这里插入图片描述
在这里插入图片描述

读写csv文件,创建图谱

这里自己随便写了一个csv文件作为数据集,主要是为了演示方便。代码如下

import csv

row_list =[['id', 'name', 'age', 'sex', 'address'],
           [0, 'John', '23', 'man', 'Beijing'],
           [1, 'Bob', '23', 'man', 'Shanghai'],
           [2, 'Ben', '23', 'man', 'Shanghai'],
           [3, 'Mike', '23', 'man', 'Beijing'],
           [4, 'John', '23', 'man', 'Beijing'],
           [5, 'Robert J', '23', 'man', 'Beijing'],
           [6, 'Zhangsan', '23', 'man', 'ShanDong'],
           [7, 'Lisisi', '23', 'man', 'ShanDong'],
           [8, 'Liuyiyi', '23', 'man', 'Beijing'],
           [9, 'Heyi', '23', 'man', 'JiangSu'],]

with open('data.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(row_list)

print("输入完成")

可以看到我们写入的数据如下:
在这里插入图片描述
然后需要 import csv,读取csv文件中的内容,进行测试,看是否导入成功

with open('data.csv', 'r') as f:
    reader = csv.reader(f)
    data = list(reader)
print(data[1])  # 测试

在这里插入图片描述
导入成功之后,接下来就是创建图谱部分,直接上代码:

for i in range(1,len(data)):
    node = Node('person', id = data[i][0], name = data[i][1], age =data[i][2])
    relation = Node('address', name = data[i][4])
    relation1 = Node('sex', name = data[i][3])

    graph.create(node)
    graph.create(relation)
    graph.create(relation1)

    address = Relationship(node, '居住地', relation)
    sex = Relationship(node, '性别', relation1)
    graph.create(address)
    graph.create(sex)

print("创建成功")

创建成功之后,打开 http://localhost:7474/browser/,图谱长这样:
在这里插入图片描述
这就是利用py2neo简单构造图谱的过程,其中有许多不合理的地方,包括结点创建了多次,结点合并的一些问题。这些在后续文章中会进行解决。

  • 3
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值