[知识图谱] Neo4J实战骚操作--用图数据库找到自己的远房亲戚 [手动捂脸]

本文主要是介绍[知识图谱] Neo4J实战骚操作--用图数据库找到自己的远房亲戚 [手动捂脸],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

NLP应用中一个很重要的内容是知识图谱,而图数据库是构建知识图谱的很好选择,所以,耍起


基本语句


Step 1 :创建实体
(1) CREATE (:Person {name:'TangBrother1', gender:'Male'}) 

Step 2 : 查询实体
(2) MATCH (p:Person) RETURN p  

然后可以看到我们刚刚创建的Person实体TangBrother:
这里写图片描述


Step 3 :创建关系

首先,我们加入Uncle1 作为TangBrother1的父亲

(3) CREATE (:Person {name:'Uncle1', gender:'Male'})

然后,我们通过MATCH来得到这两个实体,并新建关系ChildOf

(4)
MATCH (u1:Person {name:'Uncle1'}), (b1:Person {name:'TangBrother1'}) 
CREATE (b1)-[:ChildOf]->(u1)

我们用命名(2)来查看一下当前的Person关系图,发现TangBrother1已经是Uncle1的Child了:
这里写图片描述


Step 4 :补充家庭关系

首先,创建我的家庭,包含我、我爹和我娘:

(5)
CREATE (:Person {name:'Me', gender:"Male"}), (:Person {name:'Father', gender:"Male"}), (:Person {name:'Mother', gender:"Female"})

创建我们家的关系:

(6)
MATCH (me:Person {name:'Me', gender:"Male"}), (dad:Person {name:'Father', gender:"Male"}), (mom:Person {name:'Mother', gender:"Female"}) CREATE (me)-[:ChildOf]->(dad), (me)-[:ChildOf]->(mom)

然后添加小姨妈一家,创建实体以及创建关系可以同时进行:

(7)
CREATE (aunt:Person {name:'Aunt1', gender:"Female"}), (brother:Person {name:'BiaoBrother1', gender:"Male"}), (brother)-[:ChildOf]->(aunt)

现在就有了三个家庭:我家,我叔叔家,和我小姨妈家
这里写图片描述

最后,将叔叔、小姨妈和我爹妈联系起来

(8)
MATCH (dad:Person {name:'Father'}), (uncle:Person {name:'Uncle1'}) CREATE (dad)-[:BrotherOf]->(uncle), (uncle)-[:BrotherOf]->(dad)MATCH (mom:Person {name:'Mother'}), (aunt:Person {name:'Aunt1'}) CREATE (mom)-[:SisterOf]->(aunt), (aunt)-[:SisterOf]->(mom)

Step 5 :查找亲戚

我想要查找的远房兄弟姐妹,首先要做的就是找父母的兄弟姐妹,然后再找父母的兄弟姐妹的孩纸,有了这个思路,问题就很简单了

查找父母的兄弟姐妹,并查找他们的孩子:

(9)
MATCH (dad:Person {name:'Father'}), (mom:Person {name:'Mother'}), (p1:Person), (p2:Person) WHERE 
((p1)-[:BrotherOf]-(dad) or (p1)-[:SisterOf]-(dad) or(p1)-[:BrotherOf]-(mom) or (p1)-[:SisterOf]-(mom)) 
AND 
((p2)-[:ChildOf]-(p1) or (p2)-[:ChildOf]-(p1)) RETURN p2

得到最终结果:
这里写图片描述

完美!


总结

Neo4J确实好用,但是刚开始的时候还是遇到了很多坑

算是为知识图谱打基础了

这篇关于[知识图谱] Neo4J实战骚操作--用图数据库找到自己的远房亲戚 [手动捂脸]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/687075

相关文章

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Python与DeepSeek的深度融合实战

《Python与DeepSeek的深度融合实战》Python作为最受欢迎的编程语言之一,以其简洁易读的语法、丰富的库和广泛的应用场景,成为了无数开发者的首选,而DeepSeek,作为人工智能领域的新星... 目录一、python与DeepSeek的结合优势二、模型训练1. 数据准备2. 模型架构与参数设置3

Java实战之利用POI生成Excel图表

《Java实战之利用POI生成Excel图表》ApachePOI是Java生态中处理Office文档的核心工具,这篇文章主要为大家详细介绍了如何在Excel中创建折线图,柱状图,饼图等常见图表,需要的... 目录一、环境配置与依赖管理二、数据源准备与工作表构建三、图表生成核心步骤1. 折线图(Line Ch

Java使用Tesseract-OCR实战教程

《Java使用Tesseract-OCR实战教程》本文介绍了如何在Java中使用Tesseract-OCR进行文本提取,包括Tesseract-OCR的安装、中文训练库的配置、依赖库的引入以及具体的代... 目录Java使用Tesseract-OCRTesseract-OCR安装配置中文训练库引入依赖代码实

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE