知识图谱介绍以及Neo4j+Python图结构数据库使用案例
创始人
2024-06-02 00:45:03
0

知识图谱介绍以及Neo4j+Python图结构数据库使用案例

  • 一、数据结构
  • 二、上传数据
  • 三、清空数据库
  • 项目数据和代码

  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数据库。

一、数据结构

  首先将数据放在表格中,每一行数据为“头实体”、“头实体类别”、“头尾实体关系”、“尾实体类别”、“尾实体”,如图:
在这里插入图片描述
  你可以将数据构造成这样的结构,我们为你提供了一项非常便捷的工具:“实体关系标注软件” (或者访问博客主页查找),该软件可以快速的帮助你将文本构造成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:continueprint("ok1")

4、查看结果。打开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)进行下载。

相关内容

热门资讯

电视安卓系统哪个品牌好,哪家品... 你有没有想过,家里的电视是不是该升级换代了呢?现在市面上电视品牌琳琅满目,各种操作系统也是让人眼花缭...
安卓会员管理系统怎么用,提升服... 你有没有想过,手机里那些你爱不释手的APP,背后其实有个强大的会员管理系统在默默支持呢?没错,就是那...
安卓系统软件使用技巧,解锁软件... 你有没有发现,用安卓手机的时候,总有一些小技巧能让你玩得更溜?别小看了这些小细节,它们可是能让你的手...
安卓系统提示音替换 你知道吗?手机里那个时不时响起的提示音,有时候真的能让人心情大好,有时候又让人抓狂不已。今天,就让我...
安卓开机不了系统更新 手机突然开不了机,系统更新还卡在那里,这可真是让人头疼的问题啊!你是不是也遇到了这种情况?别急,今天...
安卓系统中微信视频,安卓系统下... 你有没有发现,现在用手机聊天,视频通话简直成了标配!尤其是咱们安卓系统的小伙伴们,微信视频功能更是用...
安卓系统是服务器,服务器端的智... 你知道吗?在科技的世界里,安卓系统可是个超级明星呢!它不仅仅是个手机操作系统,竟然还能成为服务器的得...
pc电脑安卓系统下载软件,轻松... 你有没有想过,你的PC电脑上安装了安卓系统,是不是瞬间觉得世界都大不一样了呢?没错,就是那种“一机在...
电影院购票系统安卓,便捷观影新... 你有没有想过,在繁忙的生活中,一部好电影就像是一剂强心针,能瞬间让你放松心情?而我今天要和你分享的,...
安卓系统可以写程序? 你有没有想过,安卓系统竟然也能写程序呢?没错,你没听错!这个我们日常使用的智能手机操作系统,竟然有着...
安卓系统架构书籍推荐,权威书籍... 你有没有想过,想要深入了解安卓系统架构,却不知道从何下手?别急,今天我就要给你推荐几本超级实用的书籍...
安卓系统看到的炸弹,技术解析与... 安卓系统看到的炸弹——揭秘手机中的隐形威胁在数字化时代,智能手机已经成为我们生活中不可或缺的一部分。...
鸿蒙系统有安卓文件,畅享多平台... 你知道吗?最近在科技圈里,有个大新闻可是闹得沸沸扬扬的,那就是鸿蒙系统竟然有了安卓文件!是不是觉得有...
宝马安卓车机系统切换,驾驭未来... 你有没有发现,现在的汽车越来越智能了?尤其是那些豪华品牌,比如宝马,它们的内饰里那个大屏幕,简直就像...
p30退回安卓系统 你有没有听说最近P30的用户们都在忙活一件大事?没错,就是他们的手机要退回安卓系统啦!这可不是一个简...
oppoa57安卓原生系统,原... 你有没有发现,最近OPPO A57这款手机在安卓原生系统上的表现真是让人眼前一亮呢?今天,就让我带你...
安卓系统输入法联想,安卓系统输... 你有没有发现,手机上的输入法真的是个神奇的小助手呢?尤其是安卓系统的输入法,简直就是智能生活的点睛之...
怎么进入安卓刷机系统,安卓刷机... 亲爱的手机控们,你是否曾对安卓手机的刷机系统充满好奇?想要解锁手机潜能,体验全新的系统魅力?别急,今...
安卓系统程序有病毒 你知道吗?在这个数字化时代,手机已经成了我们生活中不可或缺的好伙伴。但是,你知道吗?即使是安卓系统,...
奥迪中控安卓系统下载,畅享智能... 你有没有发现,现在汽车的中控系统越来越智能了?尤其是奥迪这种豪华品牌,他们的中控系统简直就是科技与艺...