微信扫码
与创始人交个朋友
我要投稿
知识图谱(Knowledge Graph)是一种用于结构化地表示实体和它们之间关系的数据结构。它通常用于捕捉真实世界中事物的属性和它们之间的各种联系。知识图谱广泛应用于语义搜索、自动推理、推荐系统、自然语言处理等领域。
在知识图谱中,信息以图的形式存储,其中节点代表实体(如人、地点、事物等),边代表实体之间的关系(如“朋友”、“位于”、“拥有”等)。每个节点和边都可以附带属性,用于提供额外的信息。例如,一个代表“人”的节点可能包含姓名、年龄、性别等属性。
知识图谱的一个典型例子是谷歌的知识图谱,它用于增强搜索引擎的结果,提供与查询相关的结构化信息。例如,当你在谷歌搜索一个名人时,搜索结果旁边可能会显示一个包含该名人基本信息的小框,这些信息就来自于谷歌的知识图谱。
知识图谱的构建通常涉及信息抽取、实体识别、关系抽取、数据融合等技术,它可以帮助机器更好地理解和处理复杂的现实世界数据。
摘要
即使采用保守估计,80% 的企业数据存储在非结构化文件中,这些文件存储在能够容纳异构格式的数据湖中。传统搜索引擎已经无法满足信息检索需求,特别是当任务是浏览和探索以形成洞察时。换句话说,没有明显的搜索关键词可用。由于其自然的视觉吸引力可以减少人类认知负荷,知识图成为异构数据集成和知识表示的最佳选择。
我们介绍了 Docs2KG,这是一个新颖的框架,旨在从多样化和异构的非结构化文档中提取多模态信息,包括电子邮件、网页、PDF 文件和 Excel 文件。动态生成代表提取的关键信息的统一知识图,Docs2KG 能够实现对文档数据湖的高效查询和探索。与现有侧重于特定领域数据源或预先设计的模式的方法不同,Docs2KG 提供了一个灵活且可扩展的解决方案,可以适应各种文档结构和内容类型。所提出的框架统一了数据处理,支持多种下游任务,并提高了领域可解释性。
动机
我们认为LLM应用程序的三大支柱:
Data
RAG
LLM
现在市场上的大多数工具都集中在检索增强生成(RAG)管道或如何让大型语言模型(LLM)在本地运行。
典型的工具包括:Ollama、LangChain、LLamaIndex等。
然而,为了确保更广泛的社区能够从最新研究中受益,我们首先需要解决数据问题。
Wider社区包括个人用户、小企业,甚至大企业。他们中的一些人可能已经开发了数据库,而大多数人确实有很多数据,但他们都是非结构化的,分布在不同的地方。
介绍
Docs2KG是一个开源框架,旨在从各种文档格式中提取知识图谱。这个框架提供了一种方法,可以将各种数据源(例如PDF,Word,网页等)的信息转换为机器可读的形式,从而有助于进行知识获取和知识表示。
以下是一个简单的Python代码示例,展示了如何使用Docs2KG框架从PDF文件中提取知识图谱:
from docs2kg import Docs2KG
# 创建Docs2KG实例
d2k = Docs2KG()
# 加载PDF文件
pdf_path = 'example.pdf'
d2k.load_document(pdf_path, 'pdf')
# 提取知识图谱
d2k.extract_kg()
# 获取知识图谱
kg = d2k.kg
# 打印知识图谱
print(kg.serialize('turtle'))
在这个例子中,我们首先导入Docs2KG模块,然后创建一个Docs2KG实例。我们加载一个名为example.pdf的PDF文件,并提取其中的知识图谱。最后,我们获取知识图谱并以Turtle格式序列化并打印出来。
请注意,这只是一个代码示例,实际使用时可能需要根据你的具体需求进行调整。例如,你可能需要安装额外的依赖项或者进行额外的配置。此外,Docs2KG支持多种文档格式和提取方法,你可以根据你的需要选择合适的文档加载和知识提取方法。
查询示例
Can you show me all documents and their components related to events that occurred in the years 2011 and 2021?
输入
MATCH (startNode)-[*1..3]->(endNode)WHERE startNode.uuid IN ['17da8cc5-9986-4126-8752-545162ca6aa7', 'dae828f5-e968-49a7-bf03-0a9a81022434', '2cc13873-9bce-45ed-a0a3-df9765e90579', '32eb0955-b983-446f-b883-db575f304f88', 'd6735d2d-afa0-41c0-842b-c1ecb9a4b4d5', '503e64f8-1a22-44b2-be99-240578925c1f', '1b2fe6fb-2949-40ce-9ba1-61496f164a67', '1a0e5f3a-b250-442d-afc2-1f139a367e21', 'c632fceb-3af9-4b11-9082-3ce615d1fd5b', '29544460-0135-46e9-94f5-60c2b86caa53']RETURN endNode
输出
建议的解决方案
我们提出了一种在集中的地方组织数据的方法,通过统一的多模式知识图和半结构化数据。
鉴于非结构化和异构数据的性质,信息提取和知识表示提出了重大挑战。在这个软件包中,我们介绍了Docs2KG,这是一个新颖的框架,旨在从各种异构的非结构化数据源中提取多模式信息,包括电子邮件、网页、PDF文件和Excel文件。Docs2KG动态生成表示提取信息的统一知识图,从而实现对数据的高效查询和探索。与专注于特定数据源或预先设计的模式的现有方法不同,Docs2KG提供了一个灵活且可扩展的解决方案,可以适应各种文档结构和内容类型。所提出的框架不仅简化了数据处理,而且提高了模型在不同领域的可解释性。
总体步骤
数据处理
双路径数据处理
将来自不同来源、不同格式的文档转换为Markdown、CSV、JSON等。
统一的多模式知识图构建
GraphDB加载程序
将统一的多模式知识图加载到GraphDB中
我们在这个项目中使用Neo4j作为GraphDB
进一步增强
KG模式是生成的,是动态的,在一开始不会是完美的。
因此,我们需要进一步增强KG模式
通过自动模式合并:基于节点标签频率的合并、基于标签语义相似性的合并
通过人工循环:人工审查并进一步增强KG模式
下游应用
传统的Cypher查询:NLP查询到Cypher的查询(可以在LLM的帮助下)
基于矢量的RAG:
首先获取每个节点的嵌入。
然后使用查询的嵌入来进行相似性搜索,以提取图中的锚节点。
使用这些节点作为锚点节点,进行多跳信息提取以增强查询。
使用LLM在增强查询的基础上进行最后的生成。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-23
DB-GPT V0.6.2 版本更新:牵手libro社区、GraphRAG图谱构建能力增强等
2024-11-22
技术动态 | 如何使用知识图谱改进RAG?
2024-11-22
RAG前沿之RAG–知识图谱构建框架Graphusion:兼看LongRAG双视角检索增强生成范式
2024-11-21
OpenSPG/KAG 新版发布:聚焦用户反馈,大幅优化用户体验!
2024-11-15
大语言模型与图结构的融合:推荐系统中的新兴范式
2024-11-15
利用LLM构建非结构化文本的知识图谱
2024-11-13
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
2024-11-13
利用LLM Graph Transformer实现知识图谱的高效构建
2024-07-17
2024-07-11
2024-07-13
2024-08-13
2024-07-08
2024-07-12
2024-07-26
2024-06-10
2024-07-04
2024-06-24
2024-11-22
2024-11-04
2024-10-10
2024-10-03
2024-09-27
2024-09-08
2024-09-05
2024-08-27