Neo4j的使用②| 使用Python操作Neo4j | 更新中
使用Python操作Neo4j
本文主要讲解了py2neo的使用方法,主要面向对象为大二本科生,旨在让同学们能初步使用该工具,完成一些简单的任务,因此没有过多讲授py2neo的复杂用法。
如果想学习后续的高级用法可以关注本文,后面我们会持续更新。
首先补充一个知识点,清空一张图的命令。
MATCH (n) DETACH DELETE n
py2neo的介绍
简单来说就是python与neo4j的接口,安装了py2neo就可以使用python操作Neo4j了。
我们也就可以在线处理大规模的数据,实现知识图谱的自动构建了。
安装方法非常简单,直接在cmd中输入下列命令即可,
pip install py2neo
py2neo使用方法
1. 连接数据库
首先 确保 你已经运行了你的数据库,也就是说在浏览器中是可以打开http://localhost:7474
的。
用户名密码分别是neo4j和12345678
from py2neo import Node, Relationship, Graph, NodeMatcher, RelationshipMatcher#导入我们需要的头文件
# 连接neo4j 数据库
test_graph = Graph('http://localhost:7474',auth=('neo4j','12345678'), name = 'neo4j')
2. 创建实体
在这里还是以清华大学EDUKG的一个图谱片段为例子给大家进行演示。
下列代码创建了2个类型分别为概念和属性的实体,它包含3个属性分别是name,chapter,ID
,也可以根据自己需要 定义更多的属性。

A = Node("概念", name="向量", chapter = 1 , ID = 100)
B = Node("属性", name="向量叉积", chapter = 2 , ID = 99)
test_graph.create(A)
test_graph.create(B)
我们运行这一行代码,会发现已经创建好了这样2个实体,并且用不同的颜色已经做好了区分。

3. 创建关系
test_graph.create(Relationship(B, "下属于", A))

现在让我们 一次性创建大量实体以及关系 ,实际上下列数据都应该存放于csv文件中,为了方便演示我将其写成了列表。
# 下列数据均为相对于“向量”实体的关系
#################### 说明 ###########################
# 强相关于 strong_related
# 相关于 related
# 下属于 belong_to [概念上的,如平面向量 下属于 向量]
# 部分于 part_to [性质上的,如起点 部分于 向量]
#################### 说明结束 #######################
part_to =["方向","起点","内积","模","终点","数量积"]
strong_related = ["几何表示","向量模的性质","数轴上向量的坐标运算","向量共线的性质","单位向量的定义",
"运算律""坐标表示","向量的长度的定义","向量的数量积的定义","向量的投影的定义","三角形法则",
"向量的模的定义","要素","向量正交分解的定义","第一分配率","向量平行的性质","第二分配率","向量的性质",
"坐标运算","线性运算","平行四边形法则","零向量的性质","向量的减法的定义","平面几何中的向量方法",
"向量内积的性质","向量的夹角的定义","向量的数乘的定义","向量垂直的性质","向量在物理中的应用",
"向量的定义","取值范围","向量的加法的定义","向量的起点的定义","向量的终点的定义","结合律",]
related = ["复合变换的定义","立体几何中的向量方法","单位正交基底的定义","向量共线的性质","几何表示",
"空间直角坐标系的定义","向量平行的性质","基本定理","坐标表示","向量的终点的定义","坐标运算",
"列向量的性质","要素","共面向量的定义","向量的数乘运算的定义","零向量的性质","相等向量的定义",
"向量形式","向量的定义","向量的投影的定义","数列与向量综合","平面几何中的向量方法","相反向量的定义",
"单位向量的定义","平面向量基本定理","复数的模的定义","数列与解析几何综合","向量的数乘的定义",
"向量的起点的定义","线性运算","数列与立体几何综合","向量正交分解的定义","空间向量线性运算的性质",
"向量在物理中的应用","三角形法则","向量的长度的定义","方向向量","矩阵特征向量的性质","共面向量定理",
"向量的模的定义","平行四边形法则","空间向量的性质","空间向量模的性质","向量的加法的定义","取值范围",
"向量的性质","数轴上向量的坐标运算","零向量的定义","向量的夹角的定义","向量的减法的定义","几何意义",
"向量的基底的定义","行向量的性质",]
belog_to = ["平面向量","法向量","非零向量","共面向量","单位向量",
"平行向量","零向量","基底","相反向量","相等向量","空间向量","共线向量"]
接下来我们进行关系的创建。
# 为了便于演示,后面的ID和chapter都是任意赋值的,无实际意义。
ID = 100
for i in belog_to:
ID += 1
temp = Node("概念", name = i, chapter = 2, ID = ID)
test_graph.create(Relationship(temp, "下属于", A))
for i in part_to:
ID += 1
temp = Node("属性", name = i, chapter = 3, ID = ID)
test_graph.create(Relationship(temp, "部分于", A))
for i in related:
ID += 1
temp = Node("属性", name = i, chapter = 4, ID = ID)
test_graph.create(Relationship(temp, "相关于", A))