py2neo创建知识图谱合并结点

这篇具有很好参考价值的文章主要介绍了py2neo创建知识图谱合并结点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上篇文章简单的构造了一个知识图谱,但是其中包含了许多重复的结点,看起来也非常乱,不清晰。科学上网之后,发现了一个 apoc 的工具,关于 apoc 是什么如何安装,这篇文章有很好的介绍 Neo4j:入门基础(三)之APOC插件_Dawn_www的博客-CSDN博客_apoc neo4j,应下载与neo4j相应版本的jar包Releases · neo4j-contrib/neo4j-apoc-procedures · GitHub

于是乎我根据步骤操作完之后,检验是否安装成功,这样就是安装成功了,代码跑起来也没有报错不过重复结点并没有删除。

py2neo创建知识图谱合并结点

graph.run('MATCH (n:sex) WITH n.name AS name, COLLECT(n) AS nodelist, COUNT(*) AS count WHERE count > 1 CALL apoc.refactor.mergeNodes(nodelist) YIELD node RETURN node')

 在neo4j启动的时候,有这样一个语句,但是上网查找并没有找到合适的解决办法,所以这个 apoc 工具暂且搁置,后面再研究。

APOC couln't set a URLStreamHandlerFactory since some other tool already did this (e.g. tomcat). This means you cannot use s3:// or hdfs:// style URLs in APOC. This is caused by a limitation of the JVM which we cannot fix.

继续科学上网之后,最后发现了 merge() 方法,相见恨晚。(以后还是要多去看看源码或者官方文档)。使用的时候程序报错如下命令:

Primary label and primary key are required for MERGE operation

这个是因为py2neo版本语法的问题。看源码可以解决。

create 和 merge的主要区别就是,create不会去判断节点中是否有重复数据,只是添加;而merge等于是create+match,如果节点中有重复数据,就不会添加进去。

基于上一篇文章py2neo连接知识图谱(包含代码,导入csv文件)_想不出叫啥名的博客-CSDN博客修改的去重复结点代码

import csv

from py2neo import *


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

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.merge(relation, 'address', 'name')
    graph.merge(relation1, 'sex', 'name')

    address = Relationship(node, '居住地', relation)
    sex = Relationship(node, '性别', relation1)
    graph.create(address)
    graph.create(sex)


print("创建成功")

neo4j可视化效果:

py2neo创建知识图谱合并结点

很明显,调理更加清晰了 

 文章来源地址https://www.toymoban.com/news/detail-411445.html

 

 

到了这里,关于py2neo创建知识图谱合并结点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【知识图谱】python连接neo4j报错:py2neo.errors.ProtocolError: Cannot decode response content as JSON

    源代码如下 报错信息: 从graph.run这里报错,报出一个JSon相关的错误,百思不得其解。 解决方法: 需要加上一个name=“neo4j”,才能成功,如下 或者这样 完整demo

    2024年02月11日
    浏览(39)
  • Py之py2neo:py2neo的简介、安装、使用方法之详细攻略

    CV之DL之YOLOv8:YOLOv8的简介、安装和使用方法、案例应用之详细攻略 目录 YOLOv8的简介 1、Yolov8的概述 2、YOLOv8对比前身YOLOv5 YOLOv8的安装和使用方法 1、安装和使用 T1、采用yolov8安装和使用 第1步,安装YOLOv8 第2步,使用YOLOv8 T1、采用CLI T2、采用Python T2、采用ultralytics安装和使用

    2024年02月13日
    浏览(35)
  • py2neo 查询语句

    可以对查询结果进行进一步查询: =~是不等于的意思,.是任意字符,*是前面的字符大于等于0个。整体意思就是查到节点中name属性不以J开头的节点

    2024年02月08日
    浏览(32)
  • py2neo和neo4j

    py2neo 和 neo4j 是两个 Python 中与 Neo4j 图数据库交互的库,但它们有不同的设计和使用方式。 py2neo : 类型 : py2neo 是一个面向对象的库, 提供了一个对象模型 ,使得与 Neo4j 数据库的交互 更加 Pythonic 。 API 风格 : 使用 Node 和 Relationship 对象表示图数据库中的节点和关系,使得代码

    2024年02月21日
    浏览(32)
  • Python中py2neo库的基本使用方法

    因为需要将处理好的csv文件用neo4j存储,因此想到使用python将数据导入neo4j,就需要用到py2neo库。 安装py2neo库: 首先是建立连接: 注意:这里传入用户名和密码使用的auth元组形式 Node和Relationship可以定义对应的实例,Node第一个参数是label, 再利用graph.create()创建。打开neo4j可以

    2024年02月16日
    浏览(36)
  • python 与 neo4j 交互(py2neo 使用)

    参考自:neo4j的python.py2neo操作入门 官方文档:The Py2neo Handbook — py2neo 2021.1 安装: pip install py2neo -i https://pypi.tuna.tsinghua.edu.cn/simple 节点(Node)和关系(relationship)是构成图的基础,节点和关系都可以有多个属性(property),并且均可以作为实体 重点: 节点:在图数据库中,节点代

    2024年02月21日
    浏览(35)
  • 关于5.x版本的Neo4j与py2neo的访问技巧

    先说结果。 Neo4j是可以使用py2neo来操作的。而且网上搜到的教程和方法里,首推的http连接方法可能并不是最好的,应该用 bolt 方法可能更好。 对于大多数使用  py2neo  与 Neo4j 数据库进行交互的应用程序来说,建议使用 Bolt 协议(即第二个指令)。确保您的 Neo4j 服务器配置

    2024年04月26日
    浏览(43)
  • 探索Py2neo:Python与Neo4j图数据库的交互实践

    在数据驱动的世界中,图形数据库如Neo4j成为处理复杂关系数据的强大工具。这种数据库类型以图结构存储数据,优秀地表示和查询实体间的连接关系。Py2neo,作为Neo4j的Python驱动程序,使得在Python环境中使用Neo4j变得简单而直观。以下内容,将详细介绍如何利用Py2neo在Python中

    2024年03月11日
    浏览(37)
  • SySeVR环境配置:joern-0.3.1、Neo4j-2.1.5、py2neo2.0

    最近希望在基于图神经网络的漏洞检测上有所推进,准备复现文章SySeVR: A Framework for Using Deep Learningto Detect Software Vulnerabilities开源代码,基本环境配置是python库环境以及joern-0.3.1、Neo4j-2.1.5环境的配置,环境具体要求如下 假期的时候就已经完成过joern的配置,光是安装就卡了我

    2023年04月08日
    浏览(27)
  • Neo4j报错:py2neo.errors.ProtocolError: Cannot decode response content as JSON 解决方案

    环境: neo4j-5.1.0、py2neo-2021.2.3、Neo4j Desktop-1.5.2、python3.9.13 1、创建neo4j链接,对数据库进行增删改的时候报错。 报错代码: 奇怪的是,同样的代码、数据,用在python3.8.3的环境中没有报错,所以首先查看两个版本python的区别,发现json的__init__中有一些小区别,关于json解析的,

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包