当前位置: 首页 > backend >正文

知识图谱和图数据库Neo4j

文章目录

      • 知识图谱概述
      • 图数据库
        • Neo4j安装配置
        • Neo4j基本操作

知识图谱概述

知识图谱(Knowledge Graph)是一种结构化的语义知识库,它以图形的方式组织和整合信息,使得数据之间的关系变得直观和易于理解。

知识图谱由节点(实体)和边(关系)组成。注意图数据库中,由于关系也具有属性,因此节点和关系都被视为实体

节点代表实物,如人、地点、物品等

边代表实体之间的关系,如“属于”、“创造”、“位于”等。

每个节点和边都可以带有属性,提供更详细的信息。

知识图谱的构建通常包括以下几个步骤

  • 数据抽取:从各种数据源中提取信息,如文本、数据库、网页等。
  • 实体识别:识别出数据中的关键实体。
  • 关系抽取:确定实体之间的关系。
  • 实体链接:将识别出的实体与已知的知识库中的实体进行链接。
  • 知识融合:整合来自不同源的知识,解决冲突和歧义。
  • 存储与查询:将构建好的知识图谱存储在图数据库中,并提供查询接口。

图数据库

图数据库(Graph Database)是一种用于存储和管理图形结构数据的数据库。

在图数据库中,数据结构的核心是节点(Node)、关系(Relationship)和属性(Property)。在此之上构成一个图,从图中还可以提取出子图。

Neo4j安装配置

Neo4j是目前最常使用的图数据库管理系统。它是一个高性能的NoSQL数据库

Neo4j使用Cypher作为查询语言

Neo4j依赖于Java环境,因此首先需要安装JDK

sudo apt update
sudo apt install openjdk-11-jdk
java -versioncurl -fsSL https://debian.neo4j.com/neotechnology.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/neo4j.gpg
echo "deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable 5" | sudo tee -a /etc/apt/sources.list.d/neo4j.list
sudo apt update
sudo apt install neo4jsystemctl start neo4j

访问http://localhost:7474,默认用户名为neo4j,密码为neo4j

Neo4j的主要配置文件位于/etc/neo4j/neo4j.conf

默认情况下,Neo4j只监听localhost。若需远程访问,需修改以下配置

dbms.security.auth_enabled=true
dbms.default_listen_address=0.0.0.0
dbms.default_advertised_address=your-server-ip
Neo4j基本操作

操作可在http://localhost:7474UI上进行,也可用python的包操作(更方便)

create创建节点

通过CREATE创建一个节点
()代表一个节点,节点包括标示符和标签label
{}包含了属性如果想返回创建的数据,需要指定标示符,即return标示符;
创建多个节点数据,多个元素间用逗号或者用create分开示例
1.创建一个无属性的节点
CREATE (f1:Fruit) 
RETURN f12.创建有属性的节点
CREATE (f2:Fruit {name: "apple", color: "green"}) 
RETURN f23.一次创造多个节点(多节点之间用create隔离)
CREATE (f3:Fruit {name: "apple", color: "yellow"})
CREATE (f4:Fruit {name: "banana", color: "yellow"})4.创建一个有多个标签的节点
CREATE (f5:Fruit:OnSale {name: "orange"})

create创建节点关系

关系是有标签的,也是有有属性无属性两类

–> 表示一个有指向的关系
[] 能够添加标示符,属性,类型等信息
先用"match(标示符:标签)"匹配到才能创建关系示例
1.创建无属性的指向关系
MATCH (f3:Fruit {name: "apple", color: "yellow"}), (f4:Fruit {name: "banana"})
CREATE (f3)-[:SameColor]->(f4)
# 删除该关系
# MATCH (f3:Fruit {name: "apple", color: "yellow"})-[r:SameColor]->(f4:Fruit {name: "banana"})
# DELETE r2.创建有属性的关系
MATCH (f2:Fruit {name: "apple"}), (f3:Fruit {name: "apple"})
CREATE (f2)-[:rules{color:"DiffColor",kind:"SameKind"}]->(f3)3.创建新节点及关系
CREATE (f5:Fruit {name: "apple"})-[:价格 {价格差: "20r"}]->(f6:Fruit {name: "strawberry"})

删除一个节点

先创建一个节点
CREATE (f7:Fruit {name: "banana", color: "yellow"})示例
1.通过name属性删除节点
MATCH (f:Fruit {name: "banana", color: "yellow"})
DELETE f
在有关系时使用下面语句
MATCH (f:Fruit {name: "banana", color: "yellow"})
DETACH DELETE f2.通过id属性删除一个节点及其所有的关系
MATCH (f)
WHERE id(f) = 2
DETACH DELETE f

删除一个标签下的所有节点与关系

MATCH (f:Fruit)
WHERE f.color = 'green'
DETACH DELETE f

删除所有节点与关系

MATCH (n)
DETACH DELETE n

显示所有数据

MATCH (n) RETURN n	# 返回图数据库中所有的节点
MATCH (n)-[r]->(m) RETURN n, r, m	# 返回所有节点以及它们之间的关系

参考链接

https://www.oryoy.com/news/ubuntu-huan-jing-xia-neo4j-tu-shu-ju-ku-de-an-zhuang-yu-pei-zhi-zhi-nan.html
https://github.com/liuhuanyong/QASystemOnMedicalKG
https://blog.csdn.net/weixin_45922644/category_12909166.html
http://www.xdnf.cn/news/13567.html

相关文章:

  • AI的发展过程:深度学习中的自然语言处理(NLP);大语言模型(LLM)详解;Transformer 模型结构详解;大模型三要素:T-P-G 原则
  • APP Trace 传参安装流程详解 (开发者视角)
  • Flotherm许可的跨平台兼容性
  • 在RK3588上部署ROS2与ORB-SLAM3实现Gazebo小车自主导航-环境搭建过程
  • 6月11日day51打卡
  • 机器学习与深度学习18-线性代数01
  • Java八股文——Spring「MyBatis篇」
  • RPC启动机制及注解实现
  • 基于OpenCV的图像增强技术:直方图均衡化与自适应直方图均衡化
  • JavaWeb期末速成
  • 力扣 Hot100 动态规划刷题心法:从入门到精通的蜕变之路
  • 论文略读:When Attention Sink Emerges in Language Models: An Empirical View
  • VAS1085Q奇力科技LED驱动芯片车规级线性芯片
  • OpenCV CUDA模块图像变形------ 构建仿射变换的映射表函数buildWarpAffineMaps()
  • Python文件读写操作详解:从基础到实战
  • 【笔记】NVIDIA AI Workbench 中安装 PyTorch
  • Monkey 测试的基本概念及常用命令(Android )
  • 网络安全中对抗性漂移的多智能体强化学习
  • 硬件测试 图吧工具箱分享(附下载链接)
  • 亚马逊商品数据实时获取方案:API 接口开发与安全接入实践
  • 安卓上架华为应用市场、应用宝、iosAppStore上架流程,保姆级记录(1)
  • MySQL 8配置文件详解
  • 数据淘金时代:公开爬取如何避开法律雷区?
  • 杉山将(Sugiyama Masa)《图解机器学习》
  • 重拾前端基础知识:CSS预处理器
  • 计算机视觉与深度学习 | 基于Matlab的低照度图像增强算法原理,公式及实现
  • 第二节:Vben Admin v5 (vben5) Python-Flask 后端开发详解(附源码)
  • 记一次nacos搭建
  • leetcode0684. 冗余连接-medium
  • kafka-生产者(day-2)