当前位置:   article > 正文

py2neo连接知识图谱(包含代码,导入csv文件)_py2neo批量处理csv

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("创建成功")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

出现了一个错误,是连接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("输入完成")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

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

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

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

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("创建成功")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/790299
推荐阅读
相关标签
  

闽ICP备14008679号