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

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

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

鲜活发布于 2026/4/6更新于 2026/10/24122 浏览
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. 六、总结与展望

更多推荐文章

查看全部
  • Whisper-WebUI 语音转文字工具搭建与使用指南
  • airsim无人机仿真深度强化学习自动避障辅导
  • OpenClaw Web 控制台使用全解析:可视化配置与监控
  • ops-nn 自定义算子开发全流程:注册与测试
  • 【verilog语法详解:从入门到精通】
  • Moon VR Video Player 使用教程:支持 8K/12K 多音轨与外挂字幕
  • MySQL 数据库核心操作指南:创建、编码、备份与连接管理
  • 大模型如何逐步侵蚀人类对真相的认知与信任
  • 数据结构:红黑树原理与实现
  • Java InputStream 和 OutputStream 实现类详解
  • 本地语音识别技术:Whisper 的隐私保护与多场景应用
  • 《Agent Runtime 工程化》第二章 TypeScript / Node Runtime 基础:2.2 async iterator 与流式输出
  • 二分答案专题实战:木材加工与砍树问题解析
  • NLP 任务预训练模型选择与方案规范建议
  • GitHub MCP 服务配置与调用实战指南
  • Linux 系统安装 Microsoft Edge 浏览器步骤指南
  • Redis:从消息中间件到分布式核心
  • MySQL 核心技术详解:架构、索引与高可用实战
  • 企业大模型微调项目落地的关键岗位角色与职责
  • 钉钉 Webhook 完全指南

相关免费在线工具

  • 加密/解密文本

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