赞
踩
这里默认你已经知道了什么是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文件作为数据集,主要是为了演示方便。代码如下
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简单构造图谱的过程,其中有许多不合理的地方,包括结点创建了多次,结点合并的一些问题。这些在后续文章中会进行解决。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。