知识图谱之py2neo
创始人
2024-06-01 23:56:29
0

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博客

相关内容

热门资讯

三晋真情洒青湖 亮剑之师再扬... 7月9日,鸟瞰五家渠第一幼儿园。该幼儿园是山西省对口支援六师五家渠市的民生项目之一,占地面积3500...
“老油条”平时不系安全带监管时... 转自:上观新闻今天(7月9日)下午,伴随着提示音,徐汇区市场监管局远程实时监管平台大屏幕上弹出一条安...
首批旅游市场严重失信主体 典型... 转自:中国旅游报 本报讯(记者 魏彪)7月9日,文化和旅游部发布第一批旅游市场严重失信主体典型失信行...
“背调”不能成“背刺” 转自:嘉兴日报   ■李英锋  近日,北京市丰台区人民法院审理了一起求职者起诉背景调查公司的案件。法...
国新办发布会聚焦我国“十四五”... 转自:嘉兴日报   今年是“十四五”规划收官之年。  “十四五”时期,我国经济社会发展取得哪些成就?...
“飞机锁座”并不违规 争议在于... 转自:中国旅游报 □ 本报记者 唐伯侬 记者在采访中发现,有些消费者会把“飞机锁座”简单理解为都是为...
“十四五”规划接近收官 多项民... 今年是“十四五”规划收官之年,国务院新闻办将举行“高质量完成‘十四五’规划”系列主题新闻发布会。7月...
国台办:“台独”分裂势力爪牙必... 新华社北京7月9日电 7月9日,商务部公告将8家台湾地区实体列入两用物项出口管制管控名单。对此,国务...
联合国教科文组织将三处世界遗产... 转自:北京日报客户端当地时间7月9日,联合国教科文组织宣布,位于非洲的三处世界遗产地因面临的威胁大幅...
美联储会议纪要:一些官员考虑7... 会议纪要显示美联储内部出现三大阵营。一些官员支持本月降息,多数决策者担心关税的通胀压力,呼吁保持耐心...