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

Python + Neo4j 构建知识图谱实战指南

介绍知识图谱与 Neo4j 图数据库基础概念。通过 Neo4j Desktop 安装环境,使用 Cypher 语言创建节点与关系。演示利用 Python 的 neo4j 驱动连接数据库,批量写入西游记人物关系数据,并在浏览器中进行可视化展示。适合零基础入门图数据库开发。

鲜活发布于 2026/4/6更新于 2026/5/2635 浏览
Python + Neo4j 构建知识图谱实战指南

摘要:大数据时代,数据之间的关系往往比数据本身更有价值。传统的 SQL 数据库在处理复杂关系(如社交网络、推荐系统、风控分析)时显得力不从心,而知识图谱和图数据库 Neo4j 正是为此而生。

一、什么是知识图谱与 Neo4j?

在动手写代码之前,我们先用大白话把两个核心概念捋清楚。

1. 什么是知识图谱 (Knowledge Graph)?

不要被高大上的名字吓到。知识图谱本质上就是把世界上的事物(节点)和它们之间的联系(关系)画成一张巨大的网。

  • Excel 思维: 罗列数据。例如:张三,25 岁;李四,30 岁。
  • 图谱思维: 链接数据。例如:(张三)--[朋友]-->(李四)。

它由三要素组成:

  • 实体 (Entity/Node): 比如'周杰伦'、'昆凌'。
  • 关系 (Relationship): 比如'夫妻'、'代言'。
  • 属性 (Property): 比如周杰伦的'年龄:40+'。
2. 什么是 Neo4j?

如果说 SQL 是关系型数据库的霸主,那么 Neo4j 就是图数据库(Graph Database)的王者。

  • 特点: 原生支持图存储,查询关联数据速度极快(秒杀 MySQL)。
  • 查询语言: 使用 Cypher 语言(类似 SQL,但更直观)。

一句话总结: 我们用 Python 处理数据,把数据喂给 Neo4j,最终形成可视化的知识图谱。

二、环境搭建:Neo4j Desktop 安装

对于初学者,推荐使用 Neo4j Desktop(桌面版),不仅免费,而且图形化界面非常友好,免去了复杂的命令行配置。

步骤 1:下载与安装
  1. 进入 Neo4j 官网下载中心。
  2. 填写基本信息后下载 Neo4j Desktop。
  3. 像安装普通软件一样安装并运行。
步骤 2:创建项目与数据库
  1. 打开 Neo4j Desktop,点击 "New Project"。
  2. 在右侧点击 "Add" -> "Local DBMS"。
  3. 关键设置: 设置一个密码(比如 123456),一定要记住!
  4. 点击 Create,然后点击 Start 启动数据库。
步骤 3:进入浏览器控制台

当状态灯变绿后,点击 Open 或者在浏览器输入 http://localhost:7474。

  • 用户名:neo4j
  • 密码:你刚才设置的(如 123456)

三、快速上手:Cypher 语言初体验

在用 Python 之前,我们先在 Neo4j 浏览器的输入框里敲一行代码,感受一下图的魅力。

输入以下命令并按回车(或点击播放按钮):

CREATE (p1:Person {name: '孙悟空', title: '齐天大圣'}) 
CREATE (p2:Person {name: '唐僧', title: '师傅'}) 
CREATE (p1)-[:PROTECT {role: '保镖'}]->(p2) 
RETURN p1, p2

你会看到屏幕上出现了两个圆圈(节点)和一条连线。这就是最简单的图谱!

四、实战:使用 Python 构建知识图谱

在实际工作中,我们不可能手动一条条敲 Cypher 命令,而是通过 Python 读取文件(CSV/Excel)并批量写入。

1. 安装 Python 驱动

打开终端或 CMD,运行:

pip install neo4j
2. 编写核心代码

下面我编写了一个通用的连接类,你可以直接复制使用。我们将构建一个简单的'西游记人物关系图谱'。

新建一个 build_graph.py 文件:

from neo4j import GraphDatabase

class KnowledgeGraph:
    def __init__(self, uri, user, password):
        """ 连接 Neo4j 数据库 """
        self.driver = GraphDatabase.driver(uri, auth=(user, password))

    def close(self):
        """ 关闭连接 """
        self.driver.close()

    def create_node_and_relationship(self, person1, relation, person2):
        """ 创建节点和关系 使用 MERGE 关键字,保证节点不被重复创建 """
        with self.driver.session() as session:
            # Cypher 语句说明:
            # 1. 查找或创建名为 person1 的节点
            # 2. 查找或创建名为 person2 的节点
            # 3. 建立两者之间的关系
            query = """MERGE (p1:Character {name: $name1})
MERGE (p2:Character {name: $name2})
MERGE (p1)-[r:RELATION {type: $rel}]->(p2)
RETURN p1, p2, r"""
            session.run(query, name1=person1, name2=person2, rel=relation)
            print(f"成功构建:{person1} --[{relation}]--> {person2}")

    def clear_data(self):
        """ (可选) 清空数据库,方便测试 """
        with self.driver.session() as session:
            session.run("MATCH (n) DETACH DELETE n")
            print("数据库已清空!")

# --- 主程序执行 ---
if __name__ == "__main__":
    # 1. 配置数据库连接 (请修改你的密码)
    URI = "bolt://localhost:7687"
    USER = "neo4j"
    PASSWORD = "123456"  # 替换为你自己的密码

    # 2. 准备数据 (模拟从 Excel 读取的数据)
    data = [
        ("唐僧", "师徒", "孙悟空"),
        ("唐僧", "师徒", "猪八戒"),
        ("唐僧", "师徒", "沙僧"),
        ("孙悟空", "师兄弟", "猪八戒"),
        ("孙悟空", "师兄弟", "沙僧"),
        ("孙悟空", "结拜兄弟", "牛魔王"),
        ("牛魔王", "夫妻", "铁扇公主"),
        ("铁扇公主", "母子", "红孩儿")
    ]

    # 3. 开始构建
    kg = KnowledgeGraph(URI, USER, PASSWORD)
    try:
        # 先清空旧数据,防止重复
        kg.clear_data()
        print("开始构建知识图谱...")
        for p1, rel, p2 in data:
            kg.create_node_and_relationship(p1, rel, p2)
        print("\n图谱构建完成!请去 Neo4j Browser 查看效果。")
    except Exception as e:
        print(f"发生错误:{e}")
    finally:
        kg.close()
3. 运行效果

运行上述脚本,控制台会输出:

数据库已清空!
开始构建知识图谱...
成功构建:唐僧 --[师徒]--> 孙悟空
成功构建:唐僧 --[师徒]--> 猪八戒
...
图谱构建完成!

五、见证奇迹的时刻:可视化展示

现在回到你的 Neo4j Browser (http://localhost:7474)。

在顶部输入框输入以下命令查询所有数据:

MATCH (n) RETURN n

点击播放按钮。你将看到一张错综复杂、可以拖拽的人物关系网!

你可以尝试:

  1. 点击'孙悟空'节点,改变它的颜色。
  2. 拖动节点,感受力导向图的物理效果。
  3. 鼠标悬停在连线上,查看关系类型。

六、总结与展望

恭喜你!你已经完成了从 0 到 1 的知识图谱构建。我们通过 Python 的 neo4j 库,成功将结构化的数据转化为了图谱。

本文学到了什么?

  1. 理解了图数据库与传统数据库的区别。
  2. 学会了安装 Neo4j Desktop。
  3. 掌握了 Python 连接 Neo4j 并批量写入数据的核心代码。

下一步可以做什么? 构建图谱只是第一步。有了这个图谱,我们不仅可以'看',还可以让 AI 去'理解'。后续可探索结合 BERT 模型与 Neo4j 实现智能问答系统 (KBQA),让 AI 能回答复杂问题。

目录

  1. 一、什么是知识图谱与 Neo4j?
  2. 1. 什么是知识图谱 (Knowledge Graph)?
  3. 2. 什么是 Neo4j?
  4. 二、环境搭建:Neo4j Desktop 安装
  5. 步骤 1:下载与安装
  6. 步骤 2:创建项目与数据库
  7. 步骤 3:进入浏览器控制台
  8. 三、快速上手:Cypher 语言初体验
  9. 四、实战:使用 Python 构建知识图谱
  10. 1. 安装 Python 驱动
  11. 2. 编写核心代码
  12. --- 主程序执行 ---
  13. 3. 运行效果
  14. 五、见证奇迹的时刻:可视化展示
  15. 六、总结与展望
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • HDU 6635 Nonsense Time 题解:逆向思维求解动态 LIS
  • Legado 开源阅读器部署与使用指南
  • Git 回退到某个 commit
  • 《SCUM》自建服务器与虚拟局域网联机教程
  • 数据结构顺序表定义、操作与综合应用题解析
  • 纯 C# 自研轻量 UI 引擎 XchyUI,内核小于 200KB 支持跨平台
  • Neo4j Desktop 安装与使用指南
  • Git 下载及安装教程
  • 基于 Spring Cloud 的分布式智能推荐系统实现
  • FasterWhisperGUI音频断句终极优化指南:3步快速提升识别质量 [特殊字符]
  • Linux 系统版本控制工具 Git 基础教程
  • 2026 年测试工程师必备的 10 个免费开源 AI 工具
  • 大语言模型入门指南:原理、类型与应用
  • SuperMap iClient3D for WebGL 集成大华 RTSP 与 WebSocket 视频投放方案
  • C++ 二叉搜索树实现详解
  • 从 Copilot 到 Agent:构建私有化开发助手指南
  • 动态规划入门:斐波那契模型与经典例题
  • Go 语言泛型与 WebAssembly 技术解析
  • Kiro 辅助 Python 开发实战指南
  • 基于魔搭社区环境从零开始微调 Yi 开源大模型

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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