KGGen:用大模型从纯文本中提取高质量知识图谱,解决信息稀疏难题代码
KGGen用大模型从纯文本中提取高质量知识图谱解决信息稀疏难题本文基于斯坦福大学等机构发表于NeurIPS 2025的论文《KGGen: Extracting Knowledge Graphs from Plain Text with Language Models》进行解读。文章介绍了如何利用大语言模型LLM从非结构化文本中自动构建高质量、稠密的知识图谱并提出了首个用于评估文本到图谱提取能力的基准测试MINE。项目地址https://github.com/stair-lab/kg-gen/引言知识图谱的“数据荒”与质量困境知识图谱KG作为以“实体-关系-实体”三元组形式组织知识的结构化表示已成为信息检索、推荐系统及检索增强生成Graph RAG等任务的核心基础。然而当前主流知识图谱如 Wikidata、DBpedia面临两大挑战数据稀缺高质量图谱多为人工标注规模有限。质量参差自动化提取的图谱如基于早期NLP技术或规则通常存在信息不完整、关系缺失严重的问题。传统提取方法如OpenIE和较新的方案如微软的GraphRAG虽能直接从文本中抽取三元组但普遍缺乏有效的实体解析和关系归一化机制。这导致生成的图谱中不同实体和关系类型过多图谱极度稀疏、连通性差严重制约了其在下游任务如图嵌入、RAG中的实用价值。为此研究团队提出了KGGen——一个开创性的文本到知识图谱生成器。它不仅能利用大语言模型从纯文本中提取知识更关键的是通过一种新颖的迭代聚类算法对实体和关系进行解析与去重显著减少了图谱的稀疏性生成了更稠密、更通用的知识图谱。KGGen核心方法三步构建高质量图谱KGGen采用一种多阶段的、稳健的流程确保最终生成的知识图谱既丰富又紧凑。1. 实体与关系提取首先使用大语言模型论文中采用 Google Gemini 2.0 Flash分两步处理输入文本第一步识别并列出文本中的所有关键实体。第二步基于已识别的实体列表提取出规范的主语谓语宾语三元组。这种两步法优于单步提取能更好地保证实体在不同三元组中的一致性。2. 图谱聚合将从多个文本源中提取出的所有三元组实体和边汇集合并成一个统一的原始图谱并进行基础的正规化如全部转为小写。此步骤主要在结构层面进行整合不涉及语义理解。3. 实体与边解析核心创新这是KGGen区别于以往方法的关键。前两步得到的原始图谱包含大量指代相同现实概念的重复或同义实体/关系例如“冬季奥运会”、“冬奥会”、“Winter Olympic Games”。KGGen采用一种结合了嵌入聚类与大模型判别的混合策略来解决此问题聚类使用Sentence-BERT获取所有实体和关系的语义嵌入然后用k-means进行初步聚类。相似性检索在每个簇内为每个项目通过融合BM25和语义相似度的方法检索出top-k个最相似的项目。大模型判别将检索出的相似项目组合并输入给大语言模型由其判断哪些是真正的重复项考虑时态、单复数、缩写等变体。规范代表选择对于被判定为重复的一组项目由LLM选出一个最能代表其共同含义的“规范名称”类似知识库中的“别名”机制。通过这一步骤KGGen能够将分散的、表达各异的同义信息进行合并大幅减少图中节点和边类型的数量从而得到一个更稠密、更具通用性、更适合进行嵌入学习的知识图谱。全新基准测试MINEMINE‑1 简要解析MINE‑1 是一个不依赖下游任务的知识图谱KG抽取器评测指标直接衡量抽取器从文章中能捕捉到的真实信息比例避免因下游任务提升干扰对抽取器本身效果的判断。数据集构成共100 篇文章每篇对应15 条已验证存在于文中的事实平均长度 592 词标准差 85范围 440–976主题均衡覆盖艺术文化社会、科学、技术、心理/人类体验、历史文明文章由 LLM 生成保证领域分布均衡评估流程用待测 KG 抽取器从每篇文章生成知识图谱预先通过 LLM 人工校验得到每篇 15 条真实事实用语义嵌入all‑MiniLM‑L6‑v2对事实与 KG 节点做相似度检索取 top‑k 节点并扩展两跳关系子图再用 LLM 判断该事实能否从子图推理得出输出 0/1最终得分100 篇文章中能被 KG 恢复的事实占比的平均值可靠性验证随机选 60 对事实‑KG 做人工标注与 LLM 判断一致率 90.2%相关系数 0.80证明评估方式可信。MINE‑2 简要解析研究在WikiQA 数据集20400 个问题、1995 篇维基百科文章上评估 RAG 系统。先用对应方法从数据集文章里构建统一知识图谱KG。用all-MiniLM-L6-v2对问题和 KG 三元组做向量编码计算余弦相似度同时用BM25算相关性两者等权融合。取融合得分最高的top‑10 三元组再做两跳扩展补充 10 个相邻三元组支持多跳推理。因为 KGGen、GraphRAG 会把关系关联到原文块所以把20 个三元组原文块问题一起输入大模型生成答案。最后用LLM-as-a-Judge自动评估答案是否正确。OpenIE 未参与对比因为它生成的 KG 无法把关系关联回原文块。文提出了MINE基准测试包含两个任务MINE-1知识留存评估评估提取器从短文本文档中保留原始信息的能力。它包含100篇涵盖各领域的文章每篇文章附带15个已知事实。通过计算从生成的知识图谱中能成功推断出这些事实的比例来评价提取器的“信息保真度”。实验表明KGGen在不同大模型Claude Sonnet 3.5, GPT-4o等上均能保持稳健且领先的性能。MINE-2图谱辅助的RAG性能评估评估基于所生成图谱进行问答检索的效果。基于WikiQA数据集用提取器从所有相关文章构建一个大型知识图谱然后测试在该图谱上检索答案的准确率。KGGen在此项任务上与GraphRAG表现相当但其图谱结构更为简洁和通用。效果对比KGGen为何更胜一筹论文从多个维度将KGGen与OpenIE、GraphRAG进行了对比图谱质量与稀疏性KGGen提取的三元组符合规范实体和关系经过合并图谱稠密关系可复用性强。例如当文本语料库规模增大时KGGen定义的关系类型会被重复使用平均每个关系类型可使用约10次且次数随语料库增大而增加。GraphRAG提取的结构通常包含很长的、非规范的文本片段作为节点和边更接近“带关系的文本摘要”而非标准知识图谱。其图谱通常非常稀疏且关系泛化能力弱平均每个关系类型仅使用约2次。OpenIE常产生大量超特定、不连贯的短语作为节点并包含大量无信息的通用节点如“it” “are”导致图谱嘈杂、冗余且连通性不合理。效率与扩展性在处理百万字符量级的大型文本时KGGen包含提取和解析全过程的总处理时间551秒远低于GraphRAG仅完成提取阶段所需的时间2319秒。在去重效果上对于百万字符文本KGGen通过智能合并减少了约22.4%的实体和23%的边且去重率随规模增大而提升证明了其算法的高效性。应用前景与社区反响KGGen为缓解高质量知识图谱数据稀缺的问题提供了一个强大、开源的解决方案。更优质的知识图谱提取器有望促进结构化知识的普及提升信息检索系统的准确性和可靠性。自发布以来KGGen已在社区中获得广泛关注其GitHub仓库已收获超过700颗星下载量超过12000次。局限性尽管优势明显KGGen仍有改进空间例如在实体/关系合并过程中可能存在“过度合并”或“合并不足”的情况。此外当前基准测试的语料规模最高500万词元与构建真正的“图谱基础模型”所需的网络级文本规模相比仍有差距。在医疗、金融等专业领域通用大语言模型可能缺乏领域知识影响提取精度未来可探索结合领域本体来提升效果。总结KGGen通过巧妙地将大语言模型的强大理解能力与传统的语义聚类、去重算法相结合成功实现了从纯文本到高质量、低稀疏性知识图谱的自动化构建。它不仅提供了实用的工具还通过MINE基准测试为这一研究方向设立了评估标准。对于任何需要从大量非结构化文档中构建结构化知识并用于增强RAG、图分析或机器学习的开发者来说KGGen都是一个值得关注和尝试的优秀框架。项目代码简要解析kg-gen 项目全面解读项目核心功能1️⃣主要用途从纯文本中自动提取结构化知识图谱支持 RAG检索增强生成应用生成用于模型训练的图数据分析概念间的关系2️⃣支持的模型支持多种模型提供商OpenAI (如openai/gpt-4o,openai/gpt-5)Google Gemini (如gemini/gemini-2.5-flash)Ollama 本地模型 (如ollama_chat/deepseek-r1:14b)Anthropic、Deepseek 等️项目架构kg-gen/ ├── src/kg_gen/ # 核心代码 │ ├── kg_gen.py # 主类 KGGen 实现 │ ├── cli.py # 命令行接口 │ ├── models.py # 数据模型定义 │ ├── steps/ # 处理步骤 │ │ ├── _1_get_entities.py # 实体提取 │ │ ├── _2_get_relations.py # 关系提取 │ │ └── _3_deduplicate.py # 去重聚类 │ └── utils/ # 工具函数 │ ├── chunk_text.py # 文本分块 │ ├── deduplicate.py # 去重逻辑 │ └── visualize_kg.py # 可视化 ├── mcp/ # MCP 服务器AI 助手记忆 ├── examples/ # 示例代码 └── tests/ # 测试文件核心工作流程三步处理流程# 第 1 步实体提取entitiesget_entities(text)# 输出{Linda, Ben, Andrew, Josh}# 第 2 步关系提取relationsget_relations(text,entities)# 输出{(Linda, is mother of, Josh), ...}# 第 3 步去重聚类deduplicated_graphdeduplicate(graph)# 合并相似实体和关系核心 API 使用基础用法fromkg_genimportKGGen# 初始化kgKGGen(modelopenai/gpt-4o,temperature0.0)# 从文本生成知识图谱graphkg.generate(input_dataLinda 是 Josh 的母亲。Ben 是 Josh 的兄弟。,context家庭关系)# 结果包含# - entities: 实体集合# - relations: (主体谓词客体) 三元组# - edges: 关系类型集合高级功能处理长文本分块处理graphkg.generate(input_datalarge_text,chunk_size5000,# 每块 5000 字符clusterTrue# 自动聚类)对话数据处理messages[{role:user,content:法国的首都是},{role:assistant,content:巴黎}]graphkg.generate(input_datamessages)多图聚合combinedkg.aggregate([graph1,graph2])可视化KGGen.visualize(graph,output.html,open_in_browserTrue)技术亮点1. DSPy 框架使用 DSPy 进行结构化输出生成自动优化提示词支持思维链Chain of Thought2. 智能去重三种去重策略SEMHASH: 基于语义哈希的规则去重LM_BASED: KNN 聚类 LLM 去重FULL: 两者结合3. 嵌入与检索# 生成嵌入node_emb,rel_embkg.generate_embeddings(graph)# 检索相关节点top_nodes,contextkg.retrieve(query,node_emb,graph)MCP 服务器AI 助手记忆这是项目的特色功能为 AI 助手提供持久化记忆能力# 启动 MCP 服务器kggen mcp# 自定义配置kggen mcp--modelgemini/gemini-2.0-flash --storage-path ./memory.json提供的工具add_memories: 从文本提取并存储记忆retrieve_relevant_memories: 检索相关记忆visualize_memories: 生成记忆图谱可视化get_memory_stats: 查看记忆统计安装与依赖# 基础安装pipinstallkg-gen# 从源码安装pipinstall-e.[dev]# MCP 功能pipinstallkg-gen[mcp]核心依赖dspy-ai: 提示词优化litellm: 统一模型调用接口sentence-transformers: 语义嵌入semhash: 语义去重networkx: 图算法pydantic: 数据验证可视化功能项目提供了精美的交互式 Web 可视化界面力导向图展示实体和关系支持聚类分组显示可交互探索节点邻居统计面板显示图谱指标实际应用示例fromkg_genimportKGGen text 神经网络是一种机器学习模型。 深度学习是机器学习的子集使用多层神经网络。 监督学习需要训练数据来学习模式。 kgKGGen(modelopenai/gpt-4o)graphkg.generate(input_datatext,chunk_size5000,clusterTrue)# 查看结果print(f实体{graph.entities})print(f关系{graph.relations})# 可视化KGGen.visualize(graph,ml_knowledge_graph.html,open_in_browserTrue)适用场景✅ 构建领域知识库✅ RAG 系统的图结构索引✅ 对话历史的结构化存储✅ 学术论文概念关系提取✅ 法律文档事实抽取✅ AI 助手的长期记忆系统

相关新闻

【网络安全】新手必看!2026年网络安全行业发展全景解析,零基础看这一篇就够了!

【网络安全】新手必看!2026年网络安全行业发展全景解析,零基础看这一篇就够了!

2026年网络安全行业发展全景解析 随着数字化转型进入深水区,AI、云原生、物联网等技术的普及,网络安全已从辅助保障升级为核心刚需。 一、行业发展现状:政策与市场双轮驱动,规模持续攀升 当前,网络安全行业正处于高…

2026/7/5 22:59:55 阅读更多 →
工程建筑行业如何通过WebUploader实现BIM模型文件夹的目录结构续传?

工程建筑行业如何通过WebUploader实现BIM模型文件夹的目录结构续传?

Vue大文件上传方案重构:从WebUploader到分片断点续传的实践 作为项目技术负责人,近期在处理4GB级文件上传时遇到WebUploader组件的兼容性瓶颈(尤其在IE11及国产浏览器中频繁出现内存溢出)。经过两周技术调研与POC验证&#xff0c…

2026/5/17 9:26:51 阅读更多 →
51单片机智能加湿器控制系统proteus仿真(仿真+源码+原理图) 仿真图proteus 7...

51单片机智能加湿器控制系统proteus仿真(仿真+源码+原理图) 仿真图proteus 7...

51单片机智能加湿器控制系统proteus仿真(仿真源码原理图) 仿真图proteus 7.8/protues 8.9 程序编译器:keil 4/keil 5 主要功能: 本设计由STC89C52单片机温湿度传感器电路按键电路液位传感器电路液晶1602显示电路LED指示灯电路蜂鸣…

2026/7/4 16:49:38 阅读更多 →

最新新闻

Excel COUNT系列函数:数据质量诊断与业务逻辑翻译指南

Excel COUNT系列函数:数据质量诊断与业务逻辑翻译指南

1. 项目概述:Excel中COUNT系列函数不是“数数”那么简单,而是数据质量的守门员 在Excel里写个COUNT(A1:A100),看起来只是统计非空单元格个数——但如果你真这么想,说明你还没摸到Excel数据处理的门槛。我带过二十多个企业数据分析…

2026/7/6 10:28:04 阅读更多 →
Plone 4教职员目录系统:组织级身份服务中间件实践

Plone 4教职员目录系统:组织级身份服务中间件实践

1. 项目概述:一个被低估的组织级信息基础设施重建 Plone 4 时代的 Faculty/Staff Directory(教职员工名录)绝不是简单做个“通讯录页面”——它是一套嵌入在高校数字生态毛细血管里的身份服务中间件。我2012年接手某州立大学文理学院的这个项…

2026/7/6 10:26:00 阅读更多 →
Excel乘法的三层逻辑:从单元格相乘到矩阵运算

Excel乘法的三层逻辑:从单元格相乘到矩阵运算

1. 为什么“乘法”是Excel里最被低估却最该优先掌握的核心能力 很多人刚学Excel时,第一反应是学求和、排序、筛选——这没错,但真正拉开效率差距的,往往不是你会不会用数据透视表,而是你能不能在3秒内把一整列价格打85折、把12个月…

2026/7/6 10:26:00 阅读更多 →
Hermes+Kimi K2.6构建高可用智能体生产流水线

Hermes+Kimi K2.6构建高可用智能体生产流水线

1. 项目概述:这不是一个“搭个API就能跑”的玩具,而是一套可量产、能扛压的智能体生产流水线“万字保姆级教程:HermesKimi K2.6 打造7x24h Agent军团”——光看标题,你可能以为这是又一篇调用大模型API的入门笔记。但实际操作过的…

2026/7/6 10:23:56 阅读更多 →
STM32F407ZG与MC6470 IMU的硬件协同设计与姿态解算

STM32F407ZG与MC6470 IMU的硬件协同设计与姿态解算

1. MC6470与STM32F407ZG的硬件协同设计MC6470作为一款6自由度惯性测量单元(IMU),其核心价值在于集成了三轴加速度计和三轴陀螺仪于单芯片中。在实际项目中,这款IMU的加速度计量程可达16g,陀螺仪范围达2000dps,且内置数字运动处理器…

2026/7/6 10:23:56 阅读更多 →
家政服务全流程实战项目:客户预约+师傅接单+评价反馈+后台数据看板

家政服务全流程实战项目:客户预约+师傅接单+评价反馈+后台数据看板

本文还有配套的精品资源,点击获取 简介:一个开箱即用的家政服务管理系统,完整跑通从客户下单到服务闭环的业务链路。客户侧支持服务浏览、在线预约、订单查询、服务后打分评价;师傅端可登录个人中心,实时接收新订单…

2026/7/6 10:17:48 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻