移动端网站,物流网站建设策划书,手机测评网站,外贸公司如何寻找客户KGGen#xff1a;用大模型从纯文本中提取高质量知识图谱#xff0c;解决信息稀疏难题本文基于斯坦福大学等机构发表于NeurIPS 2025的论文《KGGen: Extracting Knowledge Graphs from Plain Text with Language Models》进行解读。文章介绍了如何利用大语言模型#xff08;LL…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 助手的长期记忆系统