知识图谱ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;white-space: normal;background-color: rgb(255, 255, 255);visibility: visible;">知识图谱(Knowledge Graph)是一种用于结构化地表示实体和它们之间关系的数据结构。它通常用于捕捉真实世界中事物的属性和它们之间的各种联系。知识图谱广泛应用于语义搜索、自动推理、推荐系统、自然语言处理等领域。在知识图谱中,信息以图的形式存储,其中节点代表实体(如人、地点、事物等),边代表实体之间的关系(如“朋友”、“位于”、“拥有”等)。每个节点和边都可以附带属性,用于提供额外的信息。例如,一个代表“人”的节点可能包含姓名、年龄、性别等属性。 知识图谱的一个典型例子是谷歌的知识图谱,它用于增强搜索引擎的结果,提供与查询相关的结构化信息。例如,当你在谷歌搜索一个名人时,搜索结果旁边可能会显示一个包含该名人基本信息的小框,这些信息就来自于谷歌的知识图谱。 知识图谱的构建通常涉及信息抽取、实体识别、关系抽取、数据融合等技术,它可以帮助机器更好地理解和处理复杂的现实世界数据。 
摘要 即使采用保守估计,80% 的企业数据存储在非结构化文件中,这些文件存储在能够容纳异构格式的数据湖中。传统搜索引擎已经无法满足信息检索需求,特别是当任务是浏览和探索以形成洞察时。换句话说,没有明显的搜索关键词可用。由于其自然的视觉吸引力可以减少人类认知负荷,知识图成为异构数据集成和知识表示的最佳选择。 我们介绍了 Docs2KG,这是一个新颖的框架,旨在从多样化和异构的非结构化文档中提取多模态信息,包括电子邮件、网页、PDF 文件和 Excel 文件。动态生成代表提取的关键信息的统一知识图,Docs2KG 能够实现对文档数据湖的高效查询和探索。与现有侧重于特定领域数据源或预先设计的模式的方法不同,Docs2KG 提供了一个灵活且可扩展的解决方案,可以适应各种文档结构和内容类型。所提出的框架统一了数据处理,支持多种下游任务,并提高了领域可解释性。 
动机 我们认为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支持多种文档格式和提取方法,你可以根据你的需要选择合适的文档加载和知识提取方法。 查询示例 Canyoushowmealldocumentsandtheircomponentsrelatedtoeventsthatoccurredintheyears2011and2021? 

输入 MATCH(startNode)-[*1..3]->(endNode)WHEREstartNode.uuidIN['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']RETURNendNode 输出 
建议的解决方案 我们提出了一种在集中的地方组织数据的方法,通过统一的多模式知识图和半结构化数据。 鉴于非结构化和异构数据的性质,信息提取和知识表示提出了重大挑战。在这个软件包中,我们介绍了Docs2KG,这是一个新颖的框架,旨在从各种异构的非结构化数据源中提取多模式信息,包括电子邮件、网页、PDF文件和Excel文件。Docs2KG动态生成表示提取信息的统一知识图,从而实现对数据的高效查询和探索。与专注于特定数据源或预先设计的模式的现有方法不同,Docs2KG提供了一个灵活且可扩展的解决方案,可以适应各种文档结构和内容类型。所提出的框架不仅简化了数据处理,而且提高了模型在不同领域的可解释性。 总体步骤 数据处理 双路径数据处理 将来自不同来源、不同格式的文档转换为Markdown、CSV、JSON等。 统一的多模式知识图构建 GraphDB加载程序 将统一的多模式知识图加载到GraphDB中 我们在这个项目中使用Neo4j作为GraphDB 进一步增强 KG模式是生成的,是动态的,在一开始不会是完美的。 因此,我们需要进一步增强KG模式 通过自动模式合并:基于节点标签频率的合并、基于标签语义相似性的合并 通过人工循环:人工审查并进一步增强KG模式 下游应用 传统的Cypher查询:NLP查询到Cypher的查询(可以在LLM的帮助下) 基于矢量的RAG: 首先获取每个节点的嵌入。 然后使用查询的嵌入来进行相似性搜索,以提取图中的锚节点。 使用这些节点作为锚点节点,进行多跳信息提取以增强查询。 使用LLM在增强查询的基础上进行最后的生成。
|