如何将任何文本语料转换为知识图谱?

news2024/12/28 20:46:05

转自:吴建明利驰软件

几个月前,基于知识的问答系统(Knowledge Base Question Answering,KBQA)还是个新概念。

现在,随着大型语言模型(LLMs)的发展,带有检索增强生成(RAG)的KBQA对我们来说变得越来越容易了。

知识图谱(Knowledge Graph)是用来表示现实世界中的实体及其关系的一种数据结构。

它通过节点(表示实体)和边(表示实体间的关系)来构建一个连通的网络。

知识图谱的主要目的是将分散的数据组织成有结构的信息,使得机器能够理解和处理这些信息,从而在搜索、问答、推荐等应用中提供更智能的服务。

1、实体(Entity):知识图谱中的基本单元,代表现实世界中的对象,比如人、地点、事物等。

2、属性(Attribute):描述实体的特征,比如人的姓名、年龄,地点的名称、坐标等。

3、关系(Relation):表示实体之间的连接,比如“Tom 是 Mary 的朋友”这类描述实体间的关系。

Mary had a little lamb,

You’ve heard this tale before;

But did you know she passed her plate,

And had a little more!

绘制成KG,如下:

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加助理微信提供直播链接:amliy007,29.9元即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory,关注享粉丝福利,限时免费CSDN听直播后的录播讲解。
 

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

知识图谱在很多方面都很有用。

1、可以运行图算法并计算任何节点的中心性,以了解一个概念(节点)在整个工作体系中的重要性。

2、可以分析连接和断开的概念集合,或者计算概念群体,以深入理解主题内容。

3、还能理解看似不相关的概念之间的联系。

举例来说,仅仅依靠简单的语义相似性搜索来找到与查询最相关的上下文并不总是有效的,尤其是当查询没有提供足够的上下文来明确其真实意图,或者当上下文分散在大量文本中时。

比如,考虑这个查询:

告诉我《百年孤独》中何塞·阿尔卡迪奥·布恩迪亚的家谱。

这本书中记录了七代的何塞·阿尔卡迪奥·布恩迪亚,而且一半的人物都叫何塞·阿尔卡迪奥·布恩迪亚。

如果使用简单的 RAG 流程来回答这个查询,可能会非常具有挑战性,甚至可能无法实现。

另外,RAG 的另一个缺点是它无法引导你提出正确的问题。在很多情况下,提出正确的问题比获取答案更为关键。

图增强生成(Graph Augmented generation,GAG)在一定程度上可以解决 RAG 的这些缺点。

更好的是,我们可以灵活组合,构建一个图增强检索增强生成流水线,以融合两者的优点,达到事半功倍的效果。

项目地址:https://rahulnyk.github.io/knowledge_graph/

1、将文本语料库分割成块。为每个块分配一个 chunk_id。

2、针对每个文本块,使用大型语言模型提取概念及其语义关系。我们将这种关系赋予权重 W1。同一对概念之间可能存在多种关系。每种关系都是一对概念之间的边。

3、考虑到在同一文本块中出现的概念也会由于其上下文接近性而相关。我们将这种关系赋予权重 W2。请注意,同一对概念可能会在多个块中出现。

4、将相似的对组合起来,求其权重之和,并串联它们的关系。现在,对于任意不同的概念对之间只有一条边。该边具有一定的权重和一系列关系作为其名称。

5、它还计算每个节点的度数和节点的社区,分别用于调整图中节点的大小和着色。

使用 Mistral 7B Openorca 从文本块中提取概念。它可以很好地遵循系统提示指令。

Ollama 可以轻松在本地托管任何模型。Mistral 7B OpenOrca 版本已可与 Ollama 一起使用,开箱即用。

这是一个 Python 库,可以让处理图表变得超级简单

Pyvis 用于可视化的 Python 库。Pyvis 使用 python 生成 Javascript 图形可视化。

如果regenerate设置为True,则会重新生成数据框,并将它们以CSV格式写入,这样就无需再次计算。数据框分为两类:

dfne 是边的数据框(dataframe of edges)。

df 是块的数据框(dataframe of chunks)。

如果regenerate为False,则数据框将从输出目录读取,而不是重新计算。这意味着如果数据已经存在,程序将直接使用现有数据,无需再次处理。

文章的每个文本块运行此操作并将 json 转换为 Pandas 数据帧:

得到一个与原始数据框非常相似的数据框。

输出:(215,)

输出:./docs/index.html。

全部节点

选择需要查询的节点:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2129814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实用类工具!目前5款很火的AI写论文网站测评

在当今科技飞速发展的时代,人工智能(AI)技术已经深入到各个领域,包括学术研究和论文写作。AI论文写作工具的出现极大地提高了写作效率,帮助学者们快速生成高质量的论文内容。以下是五款非常受欢迎且功能强大的AI论文写…

MySQL零基础入门教程-8.1 表的连接\增删数据、表结构的增删改、字段约束(非空、唯一性、主键、外键、检查约束),基础+实战

教程来源:B站视频BV1Vy4y1z7EX 001-数据库概述_哔哩哔哩_bilibili 我听课收集整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享 本文内容为完整笔记的第八篇的第一部分 目录 1、表怎么进行连接的 2、insert语句可以一次插入多条记…

深入探索 Ubuntu:从基础到高级应用

本文深入探讨了 Ubuntu 操作系统,涵盖了其起源与发展、安装与配置、软件管理、系统优化、网络配置、安全防护以及在不同领域的应用等多个方面。 在起源与发展部分,介绍了 Ubuntu 于 2004 年创立的背景以及其版本的演进。安装与配置环节详细阐述了系统安…

SprinBoot+Vue药房管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质…

R语言论文插图模板第10期—正负柱状图

在之前的文章中,分享了R语言各式柱状图的绘制模板: 进一步,再来分享一种特殊的柱状图:正负柱状图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载。…

改进三极管搭建的简易电流源特性

目录 一、用三极管搭建简易电流源的缺点二、改进电流源特性 一、用三极管搭建简易电流源的缺点 此前文章《用三极管搭建电流源》的电路是存在缺陷的,温度变化和Early效应会影响电路的性能和稳定性。主要表现如下: 基极-发射极之间的压降会随着温度的变化…

AI性能评估工具 | 安兔兔AI大模型评测 v1.0.0.1095

安兔兔AI大模型评测是一款性能评估软件,专注于对设备在CPU、GPU及专属AI加速器上的AI处理能力进行全方位测试与评估。该软件精确评估设备的AI计算能力,助力用户深入理解设备在执行AI任务时的表现。 借助评测数据,用户能够清晰地掌握设备的AI…

【机器学习导引】ch2-模型评估与选择

文章目录 经验误差与过拟合 (Empirical error &overfitting)1. **均方误差(Mean Squared Error, MSE)**2. **均方根误差(Root Mean Squared Error, RMSE)**3. **平均绝对误差(Mean Absolute…

虚拟存储器“大观”,讲解核心逻辑知识和408大题方法

虚拟存储器 写在前面:虚拟存储器(Virtual Memory)是计算机系统中用于管理内存的一种技术,它通过虚拟地址空间为进程提供比物理内存更大的地址空间,同时实现内存保护和进程隔离。 在408整个体系中计组和操作系统都有涉…

飞书项目管理使用攻略

文章目录 项目管理项目管理的方法和工具项目管理方法:项目管理工具 飞书项目管理平台 创建空间需求管理缺陷管理人员排期飞书也可以创建敏捷开发管理. 项目管理 项目管理是指在项目活动中运用专门的知识、技能、工具和方法,使项目能够在有限资源限定条件…

自动化立体仓库定义及使用范围

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 这份文件是关于自动化立体仓库的定义、发展、组成、技术性能、应用领域、供货方式以及设计步骤的详细介绍。以下是核心内容的概要&#…

基于Qt的自定制WPS

前言 正文 项目实现:项目实现了文件的新建,打开,保存,另存为,以及字体的设置,字体加粗,字体倾斜,字体颜色,还有对齐方式等功能 项目效果: ​ 项目地址&…

企业微信应用消息收发实施记录

一、前置配置 1.1 进入我的企业页面,记录下企业ID。 1.2 创建企微应用,记录下应用的 AgentId 和 Secret。 1.3 设置应用的企业可信IP,将服务器公网 IP 填入即可。 1.4 设置应用接收消息API 填入服务器 API 地址,并记录下随机获取…

PAT甲级-1012 The Best Rank

题目 题目大意 学生有C、M、E三个成绩,A是这三个成绩的平均值。要求对每个学生的C、M、E、A分别排名,取这4项的最高排名为最优排名。如果一个学生有多项排名一样,按照A > C > M > E的优先级输出最优排名。 输入给出学生人数和查询…

派遣函数-编写一个更通用的派遣函数

前面介绍的派遣函数处理过于简单,下面带领读者对派遣函数一步步进行扩充。首先介绍一个重要数据结构--IO_STACK LOCATION,即I/O堆栈,这个数据结构和IRP紧密相连。 在前面,曾经介绍过驱动程序的层次结构。驱动对象会创建一个个的设备对象, 并将…

前端单独实现 vue 动态路由

前端单独实现 vue 动态路由 Vue 动态路由权限是指在 Vue 应用程序中,根据用户的权限动态生成和控制路由的行为。这意味着不是所有的路由都在应用启动时就被硬编码到路由配置中,而是根据用户的权限信息,在运行时动态地决定哪些路由应该被加载…

3. 轴指令(omron 机器自动化控制器)——>MC_PowerMC_MoveJog

机器自动化控制器——第三章 轴指令 1 MC_Power变量▶输入变量▶输出变量▶输入输出变量 功能说明▶时序图▶重启运动指令▶多重启动运动指令▶错误代码 MC_MoveJog变量▶输入变量▶输出变量▶输入输出变量 功能说明▶时序图▶重启运动指令▶多重启动运动指令▶异常 MC_Power …

从0书写一个softmax分类 李沐pytorch实战

输出维度 在softmax 分类中 我们输出与类别一样多。 数据集有10个类别,所以网络输出维度为10。 初始化权重和偏置 torch.norma 生成一个均值为 0,标准差为0.01,一个形状为size(num_inputs, num_outputs)的张量偏置生成一个num_outputs 10 的一维张量&a…

1265:【例9.9】最长公共子序列 动态规划

题目链接 题目: 思路 最长-最值问题、重叠子问题、最优结构-前面序列的公共序列最优值是后续序列的子问题、无后效性也满足 确定状态、变量:序列是没有要求要连续,因此只能用长度为i的串a分别和长度为(1-j)串b去找最值…