如何用 knowledge_graph 把一堆文本变成可查询的知识图谱
【免费下载链接】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
资料越攒越多,却理不清它们之间的联系。知识图谱就是把实体和它们的关系变成一张能查询的图;开源项目 knowledge_graph(作者 rahulnyk)专门干这件事:把任意文本语料变成这样一张图。
🕐 30 秒了解:本地跑通的 Python 知识图谱工具
它不是打包好的 API 库,而是 Notebook 里一条可跑的流水线:把文本切成块,让本地小模型(Mistral 7B,通过 Ollama 运行——Ollama 是把大模型跑在自己机器上的工具)从每块里抽概念,再抽概念间的关系,汇成图,最后渲染成交互式网页。刚接触知识图谱、想零成本试一下用图做问答的人,适合拿它上手。
最小跑法,4 行:
git clone https://gitcode.com/gh_mirrors/kn/knowledge_graph cd knowledge_graph docker build -t knowledge-graph . docker run -p 8888:8888 knowledge-graphJupyterLab 起来后打开 extract_graph.ipynb,指向你自己的 PDF 即可。
⚙️ 拆解它是怎么工作的
三元组到底怎么存:3 张 CSV 表就够
知识图谱的标准数据模型是三元组(subject–predicate–object,即"谁、以什么关系、指向谁")。这个项目没把三元组塞进图数据库,而是每条写进 graph.csv 的一行:node_1、node_2 两个概念,edge 用一句话描述两者关系,chunk_id 记下关系出自哪块文本——像一张社交关系表:谁跟谁什么关系、在哪次对话里提到。concepts.csv 存每个概念(节点)及分类,chunks.csv 存原文,每条边都能回溯出处。
为什么抽"概念"而不是抽"实体"
实体识别(NER,从文本里自动找人名地名的技术)能抽出"班加罗尔",但抽不出"班加罗尔天气好"。项目把前者叫实体、后者叫概念,让 LLM 直接抽概念——作者的经验是概念图谱比实体图谱更有语义含量。另有一条隐规则:同一块文本里共现的概念视为相关(上下文邻近),它与模型抽取的关系各记一个权重;同一对概念被多次提及时权重累加,高频概念自然更重。
依赖哪些成熟库,能不能换
pandas 用表格承载一切(不需要图数据库),NetworkX 负责建图、算节点度和社区划分(决定节点大小与颜色),pyvis 把图渲染成交互 HTML。想换任何一环都能单独换:换 LLM 调用、换可视化,互不影响。
🎯 三个适用场景
- 研究者梳理领域:灌一本专著或一批论文,立刻看出哪些概念是全文枢纽(节点度高)、哪些是边缘,再用社区划分把相关概念抱团,帮你想清楚下一个深耕方向。
- 做文档问答(GRAG):RAG(检索增强生成)是捞几段文本塞进提示词;换成知识图谱当检索源,回答能解释 A 和 B 怎么关联,关系型问题效果好得多。
- 整理个人笔记:把笔记或同领域文章变成图,看章节间没注意过的关联——作者说这步纯属艺术享受。
⚖️ 客观评价
值得喜欢的点:
- 完全本地跑:Ollama 起本地小模型,不调付费 API,跑一本书不花钱。
- 中间产物全是普通 CSV 表(data_output/ 目录可看),任何一步都能用 Excel 检查修改。
- 流水线短、代码可读:一个 notebook 加 helpers/ 里几个函数,提示词透明写在 helpers/prompts.py,一遍能看懂。
需要注意的地方:
- 它是 notebook 流水线而非可安装包,没有 add_triple 式 API,想集成进生产系统得自己改造。
- 没有 SPARQL(RDF 数据的查询语言,可理解为"图上的 SQL")层,也没有图数据库;习惯 SPARQL 查询的人要转到"表格 + NetworkX"的工作方式。概念去重(doctor 和 doctors 被当成两个节点)也还在 TODO 里。
🧭 下一步建议
- 适合谁先试:刚接触知识图谱想完整动手一遍的人;已在跑 RAG、想对比图检索与向量检索的人。
- 从哪个场景切入:用一份短 PDF 起步(仓库自带样例输入输出),先打开 docs/graph.html 看渲染效果,再自己跑。
- 去仓库看哪些文件:extract_graph.ipynb 是主流程,helpers/prompts.py 是抽取提示词,dockerfile 是环境搭建,assets/Method.png 是完整方法流程图。
【免费下载链接】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),仅供参考