如何把任意文本转成知识图谱:开源 knowledge_graph 工具实战指南 如何把任意文本转成知识图谱开源 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当文档问答只剩关键词匹配时假设你手头有一份 200 页的医学 PDF想回答文中提到的药物、疾病、机构之间是什么关系。传统 RAG 的向量检索按语义相似度捞回几个独立片段片段与片段之间的关联就丢了——孟买的气温和孟买出现在不同段落里检索器看不出它们属于同一话题。你需要的不是更多文本块而是一张能表达实体 关系的知识图谱。这正是开源项目 knowledge_graph 要解决的问题把任意语料转成一张概念知识图谱。一句话定位文本进图谱出knowledge_graph 是一个基于 Python 的开源工具输入 PDF/文本语料输出节点为概念、边为关系、带权重和出处chunk_id的知识图谱可直接用于 Graph RAG图增强生成或基于知识图谱的问答。它和普通 RAG 方案的区别在于检索单元从独立文本块变成了关系子图而且整条流水线跑在本地 Ollama 模型上不产生任何 API 调用费用。三步跑通从 Docker 到第一张图上手体验的主打是顺。仓库自带 Dockerfile装好 Docker 后四条命令就能进入开发环境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容器起来后访问 8888 端口就是 JupyterLab主流程在 extract_graph.ipynb 这个 notebook 里。唯一的前置依赖是本机 Ollama装好后执行ollama run zephyr拉取模型即可项目默认用 Mistral 7B OpenOrca 做概念抽取。跑完 notebook 后data_output/ 目录下会生成三张 CSVchunks.csv文本分块及来源页、concepts.csv概念、类别、重要度、所属块、graph.csv概念对、关系描述、块 ID以及一个可交互的 HTML 图谱页面docs/graph.html可以直接拖进浏览器看节点拖拽、缩放。核心能力拆解用 LLM 抽概念而不是用 NER 抽实体传统做法靠命名实体识别模型抓人名、地名、机构名但作者的经验是概念比实体更有图谱价值——Bangalore是实体Pleasant weather in Bangalore才是概念。项目通过 prompts.py 里的系统提示词让 LLM 对每个文本块抽取原子化概念并标注类别concept/organisation/event 等和 1–5 的重要度。这一步没有现成模型可用提示词工程就是核心。双来源加权边语义关系 上下文邻近每条边有两种来源各带权重W1 是 LLM 从句子中读出的显式语义关系如WHO 认为健康公平应在……时实现W2 是同一文本块内共同出现带来的上下文邻近关系。同一个概念对若在多个块中重复出现权重累加、关系描述拼接最终每对概念之间只保留一条带权边。这套设计让高频共现的概念自然聚成社区而不需要额外调参。图数据落到 CSV 和 NetworkX算法随手可用图谱用 NetworkX 构建、Pyvis 渲染中间结果全部落成 pandas DataFrame 形式的 CSV。这意味着你可以脱离 notebook直接在 data_output/ 的 graph.csv 上跑中心度、社区发现等算法——仓库示例里就用社区给节点着色、用度中心性给节点定大小用来回答哪些概念是这篇文档的骨架。适合谁上手不适合谁诚实的取舍它适合单机、单领域、原型验证场景——你有一台能跑 7B 模型的机器约 8GB 显存以上语料是一本 PDF 到几百页的量级目标是先看图谱、试 Graph RAG 原型。不适合的场景也要说清楚它不是生产级知识图谱平台。没有图数据库没有基于 embedding 的同义概念归并doctor和medical practitioner会被当成两个节点LLM 输出格式偶发漂移需要人工清洗代码以 notebook 形式组织、缺少封装好的 API 包。如果你的需求是多语料库合并、增量更新、对外提供查询服务应该看 Neo4j 抽取管道的组合而不是这个项目。落地场景医学文献分析仓库自带的 India 公共卫生论文样例data_output/OrfPathHealth/把一篇 150 页 PDF 拆成了概念社区医生社区和政策社区各自独立且边界清晰。个人研究语料组织把自己的论文集、技术报告扔进去用社区发现代替手工做文献综述的主题聚类。Graph RAG 问答原型用 graph.csv 里的 chunk_id 反查原文把子图 原文片段一起喂给 LLM 做问答验证图谱检索是否比纯向量检索更准。图谱算法练习CSV 格式友好适合拿来做中心度、社区检测的入门练习。决策建议什么时候值得试如果你正在做 RAG 项目且发现片段之间缺关联花一个晚上值得跑一遍先 clone 仓库Docker 起 JupyterLab选一份 50 页左右的单主题 PDF 走通 extract_graph.ipynb重点看两样东西——graph.csv 里的关系描述质量以及 HTML 图谱里的社区结构是否符合你对文档的预期。如果质量可用下一步再考虑加 embedding 做概念归并、或把 CSV 换成图数据库如果 LLM 抽取质量不稳先换指令遵循更强的本地模型再下结论。项目明确标注了路线图概念去重、冗余过滤、前端交互社区在持续接收贡献属于拿来学方法、改造成自己管道的好素材而非开箱即用的黑盒服务。【免费下载链接】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),仅供参考