py2neo介绍

  • 介绍

Py2neo是一个客户端库和工具包,用于从Python应用程序和命令行使用Neo4j(Neo4j Graph Data Platform | Graph Database Management System)。该库同时支持 Bolt 和 HTTP,并提供高级 API、OGM、管理工具、交互式控制台、Pygments 的 Cypher 词法分析器以及许多其他功能。

  • 安装

pip install py2neo

注:Neo4j也需要安装,地址https://neo4j.com/

py2neo基本使用

  • 启动Neo4j

  • 连接代码

from py2neo import Graph, Node, Relationshipgraph = Graph("http://localhost:7474//browser", name='neo4j', auth=("neo4j", "12345678"))
print(graph.run("show databases"))

基于xsls文件的demo

  • demo效果

  • xls文件内容

  • sheet 结构

  • "关系"sheet内容如下

id

from

to

type

1

令狐冲

宁中则

师娘

2

仪琳

令狐冲

倾慕

3

任盈盈

令狐冲

爱慕

4

令狐冲

岳林珊

小师妹

5

岳林珊

岳不群

父亲

6

任盈盈

任我行

父亲

7

岳不群

宁中则

夫妻

#8

林平之

岳林珊

夫妻

  • 下面的表格分别对应"恒山派"、"华山派"、"日月教"sheet中的内容()

id

title

1

令狐冲

2

仪清

3

仪和

4

仪琳

id

title

1

岳不群

2

宁中则

3

岳林珊

4

林平之

id

title

1

任我行

2

任盈盈

3

向问天

  • demo依赖

pip install pandas
pip install openpyxl

Neo4j和py2neo也是需要的。

  • demo主要代码块

import osimport pandas as pd
from py2neo import Graph, Node, RelationshipsheetNameList = [{'sheet':'恒山派',     'type':'Node'},{'sheet':'华山派',     'type':'Node'},{'sheet':'日月教',     'type':'Node'},{'sheet':'关系',       'type':'Relationship'},
]
def __init__(self, filename=None):self.filename = filenameself.nodeList             = []self.relationshipList     = []self._loadfile()self._buildGraph()
 def _loadfile(self):if not os.path.exists(self.filename):print('_loadfile', 'file not exist')return Falsefor sheetName in sheetNameList:sheetData = pd.read_excel(self.filename, index_col=None, comment='#', sheet_name=sheetName['sheet'])if sheetName['type'] == 'Node':keys=[]for index, row in sheetData.iterrows():if not row['title']:continuekeys.append(row['title'])keyval = dict(zip(keys, keys))node = Node(sheetName['sheet'], name=sheetName['sheet'], **keyval)self.nodeList.append(node)for index, row in sheetData.iterrows():if not row['title']:continuesubNode = Node(sheetName['sheet'], name=row['title'])self.nodeList.append(subNode)rel = Relationship(node, '属性', subNode)self.relationshipList.append(rel)elif sheetName['type'] == 'Relationship':startNode = NoneendNode   = Nonefor index, row in sheetData.iterrows():if not row['from'] or not row['to']:continuefor node in self.nodeList:if node['name'] == row['from']:startNode = nodeelif node['name'] == row['to']:endNode   = nodeelse:passrel = Relationship(startNode, row['type'], endNode)self.relationshipList.append(rel)else:pass
def _buildGraph(self):graph = Graph("http://localhost:7474//browser", name='neo4j', auth=("neo4j", "12345678"))graph.delete_all()for node in self.nodeList:graph.create(node)for rel in self.relationshipList:graph.merge(rel)passgraph.begin()

参考

  • The Py2neo Handbook — py2neo 2021.1

  • Python创建知识图谱_python知识图谱 md_趋吉避凶的博客-CSDN博客

  • Python neo4j建立知识图谱,药品知识图谱,neo4j知识图谱,知识图谱的建立过程,智能用药知识图谱,智能问诊必备知识图谱_医学小达人的博客-CSDN博客

  • Neo4j简介及Py2Neo的用法_neo4j py2neo_yayun_kg的博客-CSDN博客

  • pandas处理Excel基本方法_<编程路上>的博客-CSDN博客

知识图谱之py2neo相关推荐

  1. [知识图谱]利用py2neo从Neo4j数据库获取数据

    1 # -*- coding: utf-8 -*- 2 3 from py2neo import Graph 4 import json 5 import re 6 7 8 class Neo4jTo ...

  2. 知识图谱构建:py2neo的实体关系以及节点显示图片

    简单示例 py2neo 节点可以显示图片.你可以将图片作为节点的属性存储在 Neo4j 数据库中,然后使用 py2neo 读取这些属性并在应用程序中显示.举个例子,你可以这样创建一个节点: from ...

  3. 【知识图谱】py2neo基本操作(2021-11-11)

    py2neo基本操作(2021-11-11) 1. 连接Neo4j数据库 2. 节点的建立 3. 节点间关系的建立 4. 删除节点 5. 节点/关系的属性赋值以及属性值的更新 6. 通过属性值来查找节 ...

  4. 【知识图谱】Py2neo操作Neo4j使用教程

    Py2neo操作Neo4j使用教程 1. Py2neo 安装 2. 连接 Neo4j 3. 数据对象 Object 3.1 Node 3.2 Relationship 3.3 Subgraphs 4. ...

  5. “基于医疗知识图谱的问答系统”代码解析(一)

    "基于医疗知识图谱的问答系统"代码解析(一) build_medicalgraph.py -建立医疗知识图谱的代码解析 "基于医疗知识图谱的问答系统"代码解析( ...

  6. 基于Python实现的医疗知识图谱的知识问答系统

    资源下载地址:https://download.csdn.net/download/sheziqiong/85942554 资源下载地址:https://download.csdn.net/downl ...

  7. 四、py2neo 使用及构建图谱(知识图谱构建射雕人物关系)

    Neo4j 为多种语言提供了 API 接口,如 java,python,C#,RUBY,.NET等.本文首先介绍用 python 操作 Neo4j. 首先安装好py2neo库 sudo pip3 in ...

  8. 知识图谱实战应用11-基于py2neo构建一个简单的问答功能

    大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用10-基于py2neo构建一个简单的问答功能,利用知识图谱来实现智能的问答功能.知识图谱是一种用于表示实体之间关系的图形化模型,它是人工智能和自 ...

  9. NLP模型笔记2022-31:neo4j+py2neo构建图GCN卷积神经网络数据集知识图谱(Karate俱乐部)

    [只展示图谱,下一篇文章给出GCN模型构建方法,将包含训练与预测两部分] 目录 往前文章链接 1.数据集 2.实现源码 3.图谱生成结果 参考资料 往前文章链接 NLP模型笔记2022-30:neo4 ...

最新文章

  1. orgman set触发的pricing set创建逻辑
  2. golang http Specifically check for timeout error
  3. RabbitMQ入门学习系列(四) 发布订阅模式
  4. ASP.NET Core Api网关Ocelot的中文文档
  5. HTML5 footer元素
  6. gettid()和pthread_self()的区别
  7. 造成ORA-01843 无效的月份 的一些原因
  8. PHP curl传输文件的版本兼容性
  9. 数据库系统概论第五版课后习题答案王珊
  10. oneno浏览器插件_Send to OneNote 1.2.13
  11. 串口服务器与串口协议转换器,串口服务器和串口转以太网模块有什么不同(示例代码)...
  12. 新形势下国家医疗保障局信息化建设注意点(二)标准先行
  13. 自学web前端课程大纲分享,适合所有人学习
  14. vue设置LED字体
  15. NOIP2016普及组复赛全国一等奖名单及排名(1~745名)
  16. Lumen 中对 Dingo API 异常接管并自定义响应结果
  17. rabbitMQ的使用概述及使用rabbitMQ进行短信验证码发送案例
  18. layui点击表格图片放大
  19. 微信小程序 - 查看输入值的长度
  20. STM8L101时钟管理

热门文章

  1. GitHub 热榜:轻量级无 Agent 的自动化运维平台!
  2. 【ESP 保姆级教程】玩转巴法云篇④ —— TCP创客云,同步时间,OLED时钟
  3. 深入理解电容器的等效串联电阻(ESR),多个小电容并联取代大电解电容的作用
  4. 微信小程序商机_微信小程序可能有哪些创业机会?
  5. 5.5直流稳压电源电路
  6. student(sid,sname,sage,ssex) 学生表course(cid,cname,tid) 课程表sc(sid,cid,score) 成绩表teacher(tid,Tnam
  7. atos阿托斯电磁方向阀DLOH-3C-U 21
  8. 计算机毕业设计Java网上图书销售系统(源码+系统+mysql数据库+Lw文档)
  9. 分享 | 如何在不同工艺间进行设计的移植转换
  10. 一个老程序员的工作经历