knowledge_graph:30秒把任意文本变成知识图谱,它是怎么做到的
2026/8/22 15:51:15 网站建设 项目流程

knowledge_graph:30秒把任意文本变成知识图谱,它是怎么做到的

【免费下载链接】knowledge_graphConvert any text to a graph of knowledge. This can be used for Graph Augmented Generation or Knowledge Graph based QnA项目地址: https://gitcode.com/gh_mirrors/kn/knowledge_graph

你手头堆了几十份 PDF 和报告,能搜到关键词,却说不出文档的核心关注点,更分不清哪些主题彼此相关。knowledge_graph 项目就是把任意文本转成知识图谱的 Python 工具:它从文档里提取概念及其关系,画成一张可视化网络,让文本结构一眼可见。

knowledge_graph 是什么

一句话定位:一个 Python 写的文本转知识图谱生成工具。丢进去一份文档,出来一张概念表、一张关系表和一张可交互的图谱页面,适合快速摸清自己语料的结构,或者用图谱代替向量库做检索试验。它不是图数据库,不适合大规模在线存储,也不带现成的问答界面。

核心能力一览

  • 分块与概念抽取:文档切成长度约 1500 字的块,本地 LLM 从每块里挑出最原子的概念,并标注类别和重要性(1-5 分)
  • 关系边:LLM 为每对概念写一句两句话的关系描述;同一块里出现的两个概念,额外连一条"上下文邻近"边
  • 权重合并:同一概念对在多个块里出现时,权重相加、关系拼接,最终任意两个概念之间只留一条边
  • 图分析:节点度数决定节点大小,社区聚类决定颜色,枢纽概念和边缘概念一眼可分
  • 全本地免费:模型由 Ollama 托管(Mistral 7B 或 zephyr),不调任何付费 API,一台电脑跑完全流程

30 秒上手:安装与第一条命令

前置条件:装好 Docker 和 Ollama。

git clone https://gitcode.com/gh_mirrors/kn/knowledge_graph cd knowledge_graph docker build -t knowledge-graph . docker run -p 8888:8888 knowledge-graph

另开一个终端启动本地模型:

ollama run zephyr

浏览器打开 localhost:8888 进入 JupyterLab,运行预置的 extract_graph.ipynb。默认它直接读取算好的 data_output/cureus/graph.csv,在 docs/index.html 生成可交互图谱;把 regenerate 改成 True 才会重新跑 LLM 抽取。跑完你能看到的是一张可拖拽缩放的力导向网络图,节点按主题分好颜色簇。

幕后原理:图谱是怎么建出来的

流水线共四步:一,把语料切成带唯一 id 的块;二,LLM 为每块抽取概念对和关系描述;三,同一块里出现的概念对补一条"上下文邻近"边;四,按概念对分组、权重求和、关系拼接,得到最终边表。

之后全靠现成库:pandas 存中间表,NetworkX 建图,Pyvis 把图导出成单个 HTML 文件,就是那个能直接打开的图谱页面。

社区检测(community detection,把关联紧密的概念自动归成一堆的算法)决定节点颜色,节点度数(一种中心度指标,衡量一个节点在图里有多枢纽)决定节点大小。核心转换代码在 helpers/df_helpers.py,提示词模板在 helpers/prompts.py,两个文件都不到 100 行。

实际使用场景与同类方案对比

项目自带两套真实产出:一篇 Cureus 医学期刊论文,几十个块算出 data_output/cureus/graph.csv;另一份关于印度医疗体系的更大语料,图上能看出清晰的主题簇——医生、保险、公共卫生、数字技术各自成区。

作者说得很直白:建图是为了回头做问答。图给出概念间的显式边,还能直接跑图算法,这是向量库 RAG 的"哪段话相似"给不了的。相比正式图数据库,它不用额外部署数据库、不用学专用查询语言,产出全是能直接带走的 CSV 和 HTML。代价是抽取质量依赖 LLM 输出,"doctor" 和 "doctors" 这类同义概念合并还没做,README 里列着待办。

上手建议与下一步路径

想跑自己的文本:把文档放进 data_input/ 下的新目录,改 extract_graph.ipynb 顶部的 data_dir,设 regenerate=True。想调抽取效果,优先改 helpers/prompts.py 里两个提示词模板,它决定产出质量的很大一部分。已知改进方向(用嵌入去重相似概念、过滤高频泛化概念)见 README 的 "Looking for contributions" 一节。

knowledge_graph 更接近一个跑通的方法雏形,代码简单,每一步都能拆开看。如果你手头有一份翻了很多遍却始终没吃透的 PDF,把它丢进 data_input 跑一遍 notebook,出来的概念图往往比你手动梳理的更清楚。

【免费下载链接】knowledge_graphConvert any text to a graph of knowledge. This can be used for Graph Augmented Generation or Knowledge Graph based QnA项目地址: https://gitcode.com/gh_mirrors/kn/knowledge_graph

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询