跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

基于 Neo4j 与 py2neo 的 Mac 知识图谱搭建实战

综述由AI生成在 macOS 环境下使用 Neo4j 图数据库和 py2neo 库搭建知识图谱的完整流程。内容包括 Neo4j 的安装配置、Cypher 语言的基本增删改查操作演示、数据预处理(清洗与建模)、以及利用 Python 连接数据库构建图谱的核心逻辑。通过麦当劳业务场景示例,展示了如何定义节点、属性及关系,帮助读者掌握图数据库的基础应用。

PgDevote发布于 2026/4/5更新于 2026/6/1331 浏览
基于 Neo4j 与 py2neo 的 Mac 知识图谱搭建实战

基于 Neo4j 与 py2neo 的知识图谱搭建实战

一、Neo4j 图数据库

Neo4j 是一个高性能的、原生的图数据库。它不采用传统的行和列的表格结构,而是使用节点和关系的图结构来存储和管理数据。

Neo4j Browser Interface

1、在 macOS 上通过 Homebrew 安装 Neo4j

安装了 Homebrew 后,直接在终端输入以下命令即可:

brew install neo4j

安装后,Neo4j 浏览器可通过 http://localhost:7474 访问。

2、登录 Neo4j

  1. Connect URL:输入 neo4j://localhost:7687
  2. Authentication type:保持为 "Username / Password"
  3. Username:输入 neo4j
  4. Password:首次连接时输入默认密码 neo4j
  5. 点击蓝色的 Connect 按钮

首次连接成功后,系统会强制要求修改默认密码。设置一个新的安全密码并记住。

测试连接:连接成功后,在顶部的命令行中输入 Cypher 查询语句,例如:

RETURN 'Hello World'

3、Neo4j 快速入门

  1. 点击左边栏的星星图标,在 Example Graphs 中选择 Movie Graph,点击运行,即可看到关于电影图谱的教程。
  2. 创建图谱:点击灰色代码框,创建图谱的代码会自动复制到代码框,点击运行即可看到创建的电影图谱。
  3. 查找:支持查找特定演员、电影标题、人数及上映年代等。

4、Neo4j 基本操作

接下来我们以【麦当劳】为背景,用 Neo4j 的 Cypher 查询语言演示基本增删改查操作。

建立简单的图谱,包含两种节点和一种关系:

  • 节点类型 1:Restaurant
    • 属性:name, address, year_opened
  • 节点类型 2:Product
    • 属性:name, price, category
  • 关系类型:SUPPLIES
    • 属性:since
(1)增操作

创建节点:

CREATE (r:Restaurant {name: 'McDonalds', address: 'New York'})
CREATE (p:Product {name: 'Burger', price: 10})

创建关系:

MATCH (r:Restaurant {name: 'McDonalds'}), (p:Product {name: 'Burger'})
CREATE (r)-[:SUPPLIES {since: 2020}]->(p)
(2)查操作

查找所有餐厅:

MATCH (r:Restaurant) RETURN r

查找特定餐厅供应的所有产品:

MATCH (r:Restaurant {name: 'McDonalds'})-[:SUPPLIES]->(p:Product)
RETURN p.name, p.price

查找供应可乐的所有餐厅:

MATCH (r:Restaurant)-[:SUPPLIES]->(p:Product {name: 'Coke'})
RETURN r.name

多跳查询 - 查找与 MC 销售同类产品的其他餐厅:

MATCH (mc:Restaurant {name: 'McDonalds'})-[:SUPPLIES]->(p:Product)<-[:SUPPLIES]-(other:Restaurant)
RETURN other.name

路径查询 - 查找两家餐厅通过共同产品产生的关联:

MATCH path = (r1:Restaurant)-[:SUPPLIES]->(p:Product)<-[:SUPPLIES]-(r2:Restaurant)
WHERE r1 <> r2
RETURN path
(3)改操作

更新节点属性:

MATCH (r:Restaurant {name: 'McDonalds'}) SET r.address = 'Beijing'

新增节点属性:

MATCH (r:Restaurant {name: 'McDonalds'}) SET r.rating = 4.5

更新关系属性:

MATCH (r:Restaurant)-[rel:SUPPLIES]->(p:Product) WHERE r.name = 'McDonalds' AND p.name = 'Burger'
SET rel.since = 2021
(4)删操作

删除关系:

MATCH (r:Restaurant)-[rel:SUPPLIES]->(p:Product) WHERE r.name = 'McDonalds' AND p.name = 'Burger'
DELETE rel

删除节点(必须先删除其所有关系):

MATCH (n:Restaurant {name: 'McDonalds'}) DETACH DELETE n

删除所有节点:

MATCH (n) DETACH DELETE n

通过以上例子,可以看到 Neo4j 的操作非常直观:

  • CREATE/MERGE:对应 SQL 的 INSERT,用于创建节点和关系。
  • MATCH:对应 SQL 的 SELECT ... FROM,是查询的起点,用于定位图形中的模式。
  • WHERE:对应 SQL 的 WHERE,用于过滤结果。
  • SET:对应 SQL 的 UPDATE,用于更新属性。
  • DELETE/DETACH DELETE:对应 SQL 的 DELETE,用于删除元素。

Neo4j 的核心优势在于通过 MATCH 子句描述关联模式,这使得查询复杂的关系网络变得简单和高效。

5、安装 py2neo

py2neo 是 Python 连接和操作 Neo4j 图数据库的主要工具库,适用于需要处理复杂关系数据的应用场景。

pip install py2neo

二、数据预处理

数据预处理包括数据清洗、实体识别等步骤,目的是将原始数据转换为适合构建知识图谱的格式。

1、数据清洗

  • 补全缺失值:对于明显缺失的信息,可以标记为【缺失】或根据上下文推断。
  • 格式标准化:将日期统一为【YYYY-MM-DD】格式。
  • 去除重复值:删除重复的条目。

2、知识建模

我们需要从业务角度理解数据,设计出合理的图谱结构。

(1)识别实体

实体是知识图谱中的【节点】。主要实体类型包括:

  • 订单记录:核心实体,每一笔订单就是一个销售事件。
  • 产品:订单中的商品。例如,'生日蛋糕'、'马卡龙'。
  • 配方标准:制作产品的依据和标准。
  • 客户反馈:客户对订单或产品的评价与建议。
  • 促销活动:与订单关联的营销方案。
  • 门店:订单发生的背景。
(2)识别实体属性

属性是描述实体的键值对。例如:

  • 订单记录的属性:下单时间、订单金额、支付方式。
  • 产品的属性:产品名称、单价、保质期。
  • 门店的属性:门店地址、营业时间。
(3)识别关系

关系是连接实体的边,是图谱价值的体现。

  • 门店 -- 提供 --> 产品
  • 订单记录 -- 产生于 --> 门店
  • 订单记录 -- 包含 --> 产品
  • 订单记录 -- 触发 --> 促销活动
  • 产品 -- 依据 --> 配方标准

三、搭建知识图谱

以下是利用 Python 和 py2neo 连接 Neo4j 并构建图谱的示例逻辑,需根据自己的数据集进行修改。

from py2neo import Graph, Node, Relationship

# 连接数据库
graph = Graph("bolt://localhost:7687", auth=("neo4j", "your_password"))

# 创建节点
restaurant_node = Node("Restaurant", name="McDonalds", address="New York")
product_node = Node("Product", name="Burger", price=10)

# 创建关系
relationship = Relationship(restaurant_node, "SUPPLIES", product_node)

# 写入数据库
graph.create(restaurant_node)
graph.create(product_node)
graph.create(relationship)

运行后效果可在 Neo4j Browser 中查看图谱结构。

目录

  1. 基于 Neo4j 与 py2neo 的知识图谱搭建实战
  2. 一、Neo4j 图数据库
  3. 1、在 macOS 上通过 Homebrew 安装 Neo4j
  4. 2、登录 Neo4j
  5. 3、Neo4j 快速入门
  6. 4、Neo4j 基本操作
  7. (1)增操作
  8. (2)查操作
  9. (3)改操作
  10. (4)删操作
  11. 5、安装 py2neo
  12. 二、数据预处理
  13. 1、数据清洗
  14. 2、知识建模
  15. (1)识别实体
  16. (2)识别实体属性
  17. (3)识别关系
  18. 三、搭建知识图谱
  19. 连接数据库
  20. 创建节点
  21. 创建关系
  22. 写入数据库
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 使用 NVM 安装 Node.js 22 并配置国内镜像加速
  • 7 系列 FPGA 万兆以太网通信实现方案
  • Linux 命令行核心指令与权限控制指南
  • Java Object 类详解:继承体系与常用方法解析
  • AI产品经理核心能力与行业落地全景指南
  • 增强现实(AR)技术全解析:从概念到应用
  • ComfyUI ControlNet 预处理器功能介绍与安装指南
  • Python3.8 图像生成应用:Stable Diffusion 轻量化部署
  • Z-Image-Turbo 文生图模型技术优势与本地部署指南
  • AI 自动化代码生成实战:电商订单模块开发实践
  • 机器学习与数据挖掘实战:基于 K-means 和决策树的餐饮企业分析
  • C++核心特性解析:函数重载、引用、内联函数、auto 与 nullptr
  • Java 对象比较详解:基本类型与自定义类实现
  • Visual C++ 运行库修复指南:解决 Windows 程序启动问题
  • 腾讯 C++ 面试常见问题汇总(2025-2026)
  • OpenClaw 新手入门:环境搭建、模型配置与 WebUI 远程访问
  • BFS 实现 FloodFill 算法及经典题目解析
  • JVS-APS:算法驱动与低代码融合的智能排产系统
  • 从 Copilot 到 Agentic:快手重构“人×AI×流程”研发范式实践
  • Windows Server 2022/2025 搭建 Web 服务器实验指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online