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

知识图谱和图数据库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

相关文章:

  • ETLCloud中数据生成规则使用技巧
  • DDoS攻防实战:从应急脚本到AI云防护系统
  • 系统入侵排查实战指南:从Windows到Linux的应急响应与溯源分析​
  • 6.10【Q】网络安全期末复习
  • Mac电脑 SSH客户端 - Termius
  • 【电路物联网】SDN架构与工作原理介绍
  • leetcode 135. 分发糖果
  • 由编译osgEarth源码引发的一系列问题(三)利用vcpkg安装osg与OSGEarth
  • Spring Boot 完整教程 - 从入门到精通(全面版)
  • Seaborn入门到上头:让数据可视化变成享受的艺术(附防秃指南)
  • 在WordPress中彻底关闭生成缩略图的方法
  • Python实现自动化识别蛋白-配体氢键
  • 爬取汽车之家评论并利用NLP进行关键词提取
  • Sentinel介绍
  • MongoDB入门指南:环境安装与基本操作
  • AR互动协助:开启企业协作新纪元​
  • R语言缓释制剂QBD解决方案之一
  • 96页PPT华为销售战略规划市场洞察品牌策略
  • 移动端 1px 问题解决方案
  • 如何诊断服务器硬盘故障?出现硬盘故障如何处理比较好?
  • 河南省住房城乡建设门户网站/合肥网站排名提升
  • 网站建设方向/深圳网络营销和推广方案
  • 有没有做任务给钱的网站/怎么做网站平台
  • wordpress on sent ok/合肥网站优化平台
  • ppt模板下载的网站/爱站网关键词排名
  • 东莞营销型网站建设费用/营销方法有哪些方式