Python操作Neo4j数据库使用案例

这篇具有很好参考价值的文章主要介绍了Python操作Neo4j数据库使用案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  Neo4j是一个世界领先的开源的基于图的数据库。其语言操作简单直观,本文假设你已经安装好Neo4j数据库,并对知识图谱有一定的了解。Neo4j数据库的查询语言为CQL,其代表Cypher查询语言。 像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。你可以访问(https://www.w3cschool.cn/neo4j/neo4j_cql_introduction.html)学习Cypher查询语言。

  本文将使用Python结合Cypher语言对Neo4j数据库进行操作,在上一篇文章中:基于Brat标注数据集的python包network网络构建和搜索,我们使用network进行替代处理,在学习本文后,可以直接使用快捷方便的Neo4j数据库。

一、数据结构

  首先将数据放在表格中,每一行数据为“头实体”、“头实体类别”、“头尾实体关系”、“尾实体类别”、“尾实体”,如图:
Python操作Neo4j数据库使用案例
  你可以将数据构造成这样的结构,我们为你提供了一项非常便捷的工具:“实体关系标注软件” (或者访问博客主页查找),该软件可以快速的帮助你将文本构造成5元组形式,以及字符标签一对一的形式,并提供了许多便捷之处。

二、上传数据

1、连接数据库

#----打开数据库-----
from py2neo import Node, Relationship, Graph, NodeMatcher, RelationshipMatcher,Subgraph
graph = Graph("http://localhost:7474/", auth=("neo4j", "替换为你的密码"))

2、读取数据

path = r"C:\Users\DELL\data\5501-6000_input_pre_5元组.csv"

file = open(path,'r',encoding = 'utf-8').readlines()


con = list()
zh = ['病名','病症','其它','药名','诊断方案','治疗方案','包含','治疗','危险因素','辅助诊断','特征','并发','别名','作用','条件','诊断']

3、上传数据

for j in file:
    try:
        a = j.replace("\t","").strip('\n').split(",")
        # a = [eval(i) for i in a] #引号里面有引号-两对引号
        a = [i for i in a] #只有一对引号
        
        if (a[1] not in zh) or (a[2] not in zh) or (a[3] not in zh):
            continue
        #['甲状腺功能亢', '病名', '治疗', '其它', 'HCV感染患者']
        con.append(a)
    except:
        continue
    # print(a)


for j in con:
    
    try:
        selector = NodeMatcher(graph) #创建图,实质上为句柄
        # ---创建头实体节点---
        entity1 = selector.match(j[1], name = j[0]) #检索是否存在头实体节点
        if len(list(entity1)) == 0: #不存在头实体节点,则创建头实体
            entity1_node = Node(j[1], name = j[0])
            graph.create(entity1_node) #创建头实体
        else: #存在头实体节点,跳过
            pass

        # ---创建尾实体节点---
        entity3 = selector.match(j[3], name = j[4])
        if len(list(entity3)) == 0: #不存在尾实体节点,则创建
            entity3_node = Node(j[3], name = j[4])
            graph.create(entity3_node)
        
        
        else: #存在节点,跳过
            pass

        #将两虚点建立关系
        e1_node = graph.nodes.match(j[1], name = j[0]).first()
        e2_node = graph.nodes.match(j[3], name = j[4]).first()
        e12 = Relationship(e1_node, j[2], e2_node)
        graph.create(e12)
    except:
        continue

print("ok1")

4、查看结果。打开neo4j端口,可以看到下图结果:

Python操作Neo4j数据库使用案例
Python操作Neo4j数据库使用案例

三、清空数据库

  Neo4j是非结构化的数据库,不同于结构化的数据库有分区分表的思想。Neo4j数据库是将所有的数据,不论这些数据是否来自于哪里,及时它们毫无相关,都放在同一个库中。

  倘若需要清空该库,可以使用:

#----打开数据库-----
from py2neo import Node, Relationship, Graph, NodeMatcher, RelationshipMatcher,Subgraph
graph = Graph("http://localhost:7474/", auth=("neo4j", "替换为你的密码"))


#----删除所有内容-----
graph.delete_all()

项目数据和代码

以下任意方式均可:
1、文末评论,或者私信留言你的邮箱,博主定期回复。
2、点击:GitHub-neo4j(或者访问:https://github.com/chenyiadam/python_neo4j.git)进行下载。文章来源地址https://www.toymoban.com/news/detail-436679.html

到了这里,关于Python操作Neo4j数据库使用案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 图数据库(六):Neo4j中的查询操作

    上一篇文章我们学习了Neo4j中的更新操作,今天我们学习一下Neo4j的查询。 说到查询我们就不得不提到Match 查询所有节点 条件查询 在条件查询的过程中我们经常会使用where来进行过滤,有时候我们还可以使用到With,With可以看成用于向后面的查询传递结果

    2024年02月09日
    浏览(68)
  • 图数据库(五):Neo4j中的更新操作

    学过Mysql的人都知道,对于数据库的操作大多数都是增删改查,同样对于Neo4j图数据库也一样,今天我们就学习一下Neo4j中的更新操作。 使用set来修改节点,属性的值,但是如果该属性没有就新增该属性 此时我们可以看到,在id为172的Role节点中没有age属性,我们使用set属性就

    2024年02月07日
    浏览(47)
  • Neo4j数据库使用相关

    做知识图谱相关项目,初步使用了neo4j数据库,简单记录一下使用过程和踩坑备忘~ 操作系统Win10+Neo4j社区版(community,版本4.4.30) 目录 一、安装 1.1 安装Java和Neo4j 1.2 环境变量设置 二、 Neo4j使用 2.1 安装服务 2.2 数据库使用 2.3 数据库备份  Java下载链接:Java Downloads | Oracle

    2024年04月16日
    浏览(62)
  • 在Windows操作系统上安装Neo4j数据库

    点击 MySQL可跳转至MySQL的官方下载地址。 在 VUE3项目的工程目录 中,通过以下命令可生成node_modules文件夹。 (1)选择安装目录 (2) (3) (4) 点击下一步后开始安装。 (5)点击“finish”后, (6)显示安装完成。 默认数据库的存放位置,C:UsersAdministratorDocumentsNeo4jd

    2024年02月11日
    浏览(42)
  • 图数据库Neo4j——SpringBoot使用Neo4j & 简单增删改查 & 复杂查询初步

    图形数据库是专门用于存储图形数据的数据库,它使用图形模型来存储数据,并且支持复杂的图形查询。常见的图形数据库有Neo4j、OrientDB等。 Neo4j是用Java实现的开源NoSQL图数据库,本篇博客介绍如何在SpringBoot中使用Neo4j图数据库,如何进行简单的增删改查,以及如何进行复杂

    2024年02月06日
    浏览(63)
  • 图数据库_Neo4j和SpringBoot整合使用_实战创建明星关系图谱---Neo4j图数据库工作笔记0010

    2023-09-10 10:37:48 补充 注意:下面是旧版本的语法,如果你发现@NodeEntity这样的注解没有的话可以这样: 这里就要用@Node 另外如果@StartNode和@EndNode都没有了,那么说明是用法变了. 关于最新的用法,在官网有明确的说明和案例,很有用: 下面给出官网的案例:

    2024年02月12日
    浏览(47)
  • 【大数据】Neo4j 图数据库使用详解

    目录 一、图数据库介绍 1.1 什么是图数据库 1.2 为什么需要图数据库 1.3 图数据库应用领域

    2024年02月08日
    浏览(51)
  • 图数据库—Neo4j使用指南

    目录 Q / A Neo4j 安装 Basic concept Cypher Basic MATCH 查询 WITH INDEX 索引 最短路径 Shortest path Movie Graph Create 创建 Find 查找 Query 查询 Solve 最短路径 Bacon Path Recommend 推荐 Clean up 删除电影数据 LOAD CSV 加载 Persons Movies 数据 Northwind Graph Northwind 数据表结构 加载 Product Catalog CSV 文件 创建 Pr

    2024年02月02日
    浏览(50)
  • Neo4j数据库介绍及简单使用

    图数据库是一种专门设计用于存储和管理图形数据的数据库类型。在图数据库中,数据以图的形式表示,其中节点表示实体,边表示实体之间的关系。这种表示方式非常适合处理具有复杂关系的数据,如社交网络、推荐系统、网络拓扑、生物信息学等领域的数据。 图数据库通

    2024年02月04日
    浏览(47)
  • Neo4j图数据库的使用笔记

    安装准备: neo4j-3.4.0版本的zip包 找个目录解压安装zip包 启动neo4j 下载neo4j-3.4.0版本的zip包 可以去neo4j官网下载,也可以去微云数聚官网下载。 微云数聚是neo4j在国内的代理商。 解压到F:neo4jneo4j-chs-community-3.4.0-windows 控制台方式启动neo4j 通过7474端口访问neo4j提供的web管理工具

    2024年02月16日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包