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

py2neo简单教程

这里默认你已经知道了什么是neo4j(不清楚可以科学上网,了解一下),并且已经安装好neo4j,配置好环境成功启动neo4j。本人使用的是neo4j-4.1.12。

py2neo连接知识图谱(包含代码,导入csv文件)
neo4j是图数据库,其中最重要的就是实体和关系,实体之间和关系构成三元组,

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

from py2neo import *

graph = Graph("http://localhost:7474",auth=("neo4j", "neo4j"))
graph.delete_all()

node1 = Node('person', name = '张三')
node2 = Node('address', name = '北京市海淀区')
node3 = Node('person', name = '李四')

node1['age'] = 22

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”)即可。

py2neo连接知识图谱(包含代码,导入csv文件)
创建成功后到 http://localhost:7474/browser/ 查看图谱。
py2neo连接知识图谱(包含代码,导入csv文件)
py2neo连接知识图谱(包含代码,导入csv文件)

读写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("输入完成")

可以看到我们写入的数据如下:

py2neo连接知识图谱(包含代码,导入csv文件)
然后需要 import csv,读取csv文件中的内容,进行测试,看是否导入成功
with open('data.csv', 'r') as f:
    reader = csv.reader(f)
    data = list(reader)
print(data[1])

py2neo连接知识图谱(包含代码,导入csv文件)
导入成功之后,接下来就是创建图谱部分,直接上代码:
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连接知识图谱(包含代码,导入csv文件)
这就是利用py2neo简单构造图谱的过程,其中有许多不合理的地方,包括结点创建了多次,结点合并的一些问题。这些在后续文章中会进行解决。

Original: https://blog.csdn.net/weixin_44516623/article/details/126836047
Author: PromiseToT
Title: py2neo连接知识图谱(包含代码,导入csv文件)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/557109/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球