怎么做优惠卷网站seo排名网
怎么做优惠卷网站,seo排名网,做二手房产网站多少钱,网站免费云主机文章目录 安装py2neo创建节点-连线关系图导入csv文件删除重复节点并连接边 安装py2neo
安装python中的neo4j操作库#xff1a;pip install py2neo 安装py2neo后我们可以使用其中的函数对neo4j进行操作。
图数据库Neo4j中最重要的就是结点和边#xff08;关系#xff09;pip install py2neo 安装py2neo后我们可以使用其中的函数对neo4j进行操作。
图数据库Neo4j中最重要的就是结点和边关系结点之间靠边联系在一起每个结点也有属于自己的属性。
也就是说我们在用pyhton操作Neo4j的时候只需要创造出节点Node 和节点之间的关系边Relationship 如果节点存在附加属性可以再给结点附上一些属性。
注意 在我们用python的时候我们必须启动Neo4j。如图所示点击connect进行连接。 创建节点-连线关系图
下面我们就创建三个结点每个结点有两个属性两结点之间有一个关系。
from py2neo import Graph, Node, Relationship
# 连接neo4j数据库输入地址、用户名、密码
graph Graph(http://localhost:7474, nameneo4j, passwordxxx)
graph.delete_all() #清除neo4j中原有的结点等所有信息# 创建结点
node1 Node(person, name chenjianbo) #该结点语义类型是person 结点名字是chenjianbo 也是它的属性
node2 Node(major,name software) #该结点语义类型是major 结点名字是software 也是它的属性
node3 Node(person,name bobo) #该结点语义类型是person 结点名字是bobo 也是它的属性#给结点node1 添加一个属性 age
node1[age] 18
#给结点node2 添加一个属性 college
node2[college] software college
#给结点node3 添加一个属性 sex
node3[sex] 男#把结点实例化 在Neo4j中显示出来
graph.create(node1)
graph.create(node2)
graph.create(node3)
# 创建关系
maojor Relationship(node1, 专业, node2)
friends Relationship(node1, 朋友, node3)
maojor1 Relationship(node3, 专业, node2)
#把关系实例化 在Neo4j中显示出来
graph.create(maojor)
graph.create(maojor1)
graph.create(friends)导入csv文件
该网站有大量汇总的知识图谱数据集可供学习使用。 http://openkg.cn/dataset 周杰伦歌曲知识数据集csv应用三元组的形式将歌曲、歌手和所属专辑联系在一起。 dataframe格式读入数据
import pandas as pddf pd.read_csv(relation.csv,index_col0)dfColumn1 Column2 Column3
id
1 Dare for more 周杰伦 歌手
2 Dare for more 蔡依林 歌手
6 Mine Mine 惊叹号 所属专辑
7 Now You See Me 周杰伦 歌手
8 Now You See Me 方文山 作词
... ... ... ...
624 最后的战役 周杰伦 歌手
625 最后的战役 方文山 作词
626 最后的战役 八度空间 所属专辑
627 最长的电影 周杰伦 歌手
628 最长的电影 我很忙 所属专辑使用py2neo向neo4j添加节点和边
graph.delete_all() #清除neo4j中原有的结点等所有信息for index,row in df.iterrows():node1 Node(person,namerow[0])node2 Node(person,namerow[1])graph.create(node1)graph.create(node2)each Relationship(node1, row[2], node2)graph.create(each)这样生成的知识图谱只是简单的节点-边的关系存在大量冗余的实体entity。
可以通过neo4j的删除方法将重复节点进行删除之后将边重新连接。
删除重复节点并连接边
查询重复节点如果有重复节点就不create。这样节点和边全部联系在一起形成完整的没有冗余的知识图谱。
目前的缺点是节点Node的命名都是以person命名所以节点暂时没有区分。
graph.delete_all() #清除neo4j中原有的结点等所有信息
from py2neo import NodeMatcher
entity []for index,row in df.iterrows():if row[0] not in entity:entity.append(row[0])node1 Node(person,namerow[0])graph.create(node1)else:node_matcher NodeMatcher(graph) node1 list(node_matcher.match(person).where(namerow[0]))[0]print(node1)if row[1] not in entity:entity.append(row[1]) node2 Node(person,namerow[1])graph.create(node2)else:node_matcher NodeMatcher(graph) node2 list(node_matcher.match(person).where(namerow[1]))[0]print(node2)each Relationship(node1, row[2], node2)graph.create(each)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89089.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!