论文阅读_基本于文本嵌入的信息提取
英文名:Embedding-based Retrieval with LLM for Effective Agriculture Information Extracting from Unstructured Data 中文名:基于嵌入的检索,LLM 从非结构化数据中提取有效的农业信息 地址: https://arxiv.org/abs/2308.03107 时间:2023-08-06 (v1) 作者:Ruoling Peng, Kang Liu, Po Yang, Zhipeng Yuan, Shunbao Li 机构:谢菲尔德大学 正文:4 页半 |
1 读后感
本文讨论了在将文本文件结构化过程中遇到的一类问题:如何规范化具有一定规律但又不完全符合定式的文档。这篇文章偏重应用,包含了大量具体的实验和设计过程,而不是纸上谈兵。文章内容巧妙结合了一些知识,同时保持了通用性。
作者对相对通用的技术进行了限制优化,并应用于一个小的领域。此前需要复杂设计和编码才能完成的任务,现在全部由 LLM 实现。具体方法包括编写一些行业相关的提示词和后处理步骤,然后调用 LLM 将结构化文本转换为结构化文件。在这一过程中,嵌入技术起到了存储数据和通过含义提取特征(而非关键字硬匹配)的作用。
其中比较有趣的一点是:对于一些难以设定的阈值,作者设计了与用户进行几轮交互以确定阈值。尽管这种方法看起来不高级,但确实实用。
2 摘要
目标: 解决农民难以准确识别害虫的问题。探索使用领域无关的通用预训练大型语言模型(LLM)从农业文档中提取结构化数据,以实现无人或最小干预。
方法: 提出了 FINDER 系统,方法包括使用基于嵌入的检索进行文本检索和过滤,然后使用 LLM 问答自动从文档中提取实体和属性,并将它们转换为结构化数据。
结果: 与现有方法相比,该方法在基准测试中实现了更好的准确性,并保持了效率。
3 引言
信息提取(IE)是从非结构化文本中提取信息并将其转换为结构化数据的过程。文档在原始形式下无法轻松分析或查询,因此需要进行信息提取才能在应用程序中使用。传统的 IE 通常需要针对特定领域进行训练,并依赖手工规则进行提取。
4 FINDER
IE 任务被分解成一个四阶段、多轮的问答过程,穿插 EBR 来提取相关文本。这样可以避免 token 限制,降低成本。
-
第一阶段:系统搜索用于描述文本中实体的单词。
-
第二阶段:系统标识所有已描述的实体。
-
第三阶段:系统提取描述性词所表示的属性。
-
第四阶段:系统在文本中搜索描述这些属性的词,并将它们绑定到实体,形成结构化数据。
最终,系统输出包含所有实体及其属性和描述的 JSON 文件集合。
4.1 EBR 过滤器
输入的文档被分成小块,矢量化并存储在矢量数据库中。基于嵌入的检索(EBR)允许相似的文档在向量空间中更接近;可以通过计算文档和搜索内容之间的距离来确定相似性,从而完成检索任务。
使用一些通用词查询数据库,例如:“外观、标识”。此查询应执行 k 最近邻搜索,并返回多个最可能的结果及其与查询词的距离。然而,这些结果可能包含不相关的内容,因为没有标准距离来过滤它们。
按距离从最小到最大进行排名,并应用类似于二进制搜索的过程(折半查找)。该列表根据距离的中位数分为两组:包含较短距离的集合称为集合 A,另一组称为集合 B。提取位于中间位置的结果,与用户交互。如果中位数位置的结果满足条件,则在集合 B 中重复此过程;如果不满足,则在集合 A 中重复此过程。
效果满意度取决于用户,一般重复两三次即可找到合理的阈值。
4.2 第一阶段
将 EBR 返回的过滤文件作为数据传给 LLM,识别文本中的所有描述性单词,并以列表形式返回。
4.3 第二阶段
此阶段的目标是将从阶段 1 收集的描述性单词转换为属性。
LLM 可能会为相似的描述性词汇提供类似但不完全相同的属性。为了解决这个问题,可以汇总所有识别出的属性,并使用 LLM 进行过滤,保留意义相似的最常见属性。这种方法有助于避免冗余,同时尽量减少成本增加。
4.4 第三阶段
利用 LLM 从文本中提取主题,这对应于自然语言处理(NLP)中的命名实体识别(NER)技术。FINDER 在处理与农业和昆虫相关的信息时,只关注物理对象。即使存在许多实体,提取的唯一实体是成虫和幼虫,而其他如触角、腿、头部应被忽略。
4.5 第四阶段
EBR 过滤器再次被使用。根据上述步骤获得的结果,可以识别原始数据中描述的可能属性和实体列表。然后,将包含被调查实体的所有句子以及我们旨在识别的属性提交给 LLM。LLM 的作用是匹配实体和属性。
5 实验
系统的流水线由六部分组成,其中两部分是 EBR 滤波算法,最后一步是结果输出。第二阶段是属性提取,第三阶段是实体提取,第四阶段是最终属性 - 实体匹配,这三个阶段都使用 LLM。实验将分别评估这三个部分的性能。
LLM 使用的是 gpt-3.5-turbo,人工评估员将评估 LLM 输出的“真”或“假”。
Precision AC. 和 Recall AC. 是具有可接受答案的精度/召回率。答案由人工检查,并与人工注释的答案进行比较
相关文章:

论文阅读_基本于文本嵌入的信息提取
英文名:Embedding-based Retrieval with LLM for Effective Agriculture Information Extracting from Unstructured Data 中文名:基于嵌入的检索,LLM 从非结构化数据中提取有效的农业信息 地址: https://arxiv.org/abs/2308.03107 时间&…...

kafka学习笔记08
Springboot项目整合spring-kafka依赖包配置 有这种方式,就是可以是把之前test里的配置在这写上,用Bean注解上。 现在来介绍第二种方式: 1.添加kafka依赖: 2.添加kafka配置方式: 编写代码发送消息: 测试: …...
Flask的 preprocess_request
理解 Flask 类似框架中的 preprocess_request 方法 在 Flask 类似的 web 框架中,preprocess_request 方法是一个关键组件。它在请求被分派之前调用,用于执行一些预处理操作。让我们一步一步来理解这个方法的工作原理。 1. 方法概述 首先,我…...
重温react-05(类组件生命周期和性能优化)
类组件的生命周期 import React, { Component } from reactexport default class learnReact05 extends Component {state {number: 1}render() {return (<div>{this.state.number}</div>)}// 一般将请求的方法,放在这个生命周期componentDidMount() {setInterva…...

RHCE四---web服务器的高级优化方案
一、Web服务器(2) 基于https协议的静态网站 概念解释 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext TransferProtocol Secure,超文本传输安全协议),是以…...

Pytest集成Allure生成测试报告
# 运行并输出报告在Report文件夹下 查看生成的allure报告 1. 生成allure报告:pycharm terminal中输入命令:产生报告文件夹 pytest -s --alluredir../report 2. pycharm terminal中输入命令:查看生成的allure报告 allure serve ../report …...
SpringBoot 参数校验
参数校验 引入springvalidation依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency>参数前添加Pattern public Result registry(Pattern(regexp &qu…...

【Arduino】实验使用ESP32控制可编程继电器制作跑马灯(图文)
今天小飞鱼实验使用ESP控制继电器,为了更好的掌握继电器的使用方法这里实验做了一个跑马灯的效果。 这里用到的可编程继电器,起始原理并不复杂,同样需要ESP32控制针脚输出高电平或低电平给到继电器,继电器使用这个信号控制一个电…...

islower()方法——判断字符串是否全由小写字母组成
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 islower()方法用于判断字符串是否由小写字母组成。islower()方法的语法格式如下: str.islower() 如果字符串中包含至少一个区…...
发布/订阅模式
实现发布/订阅模式的基本思路是通过一个中介者(发布者)来管理订阅者(监听器),并在特定事件发生时通知所有订阅者执行相应的操作。下面是实现发布/订阅模式的基本思路: 创建发布者对象:首先&…...
K8S Pod常见状态
这是自己所遇到 Pod 常见状态及可能原因,持续更新。 如有其他的错误状态,可私我更新 1. ImagePullBackOff 问题分析: 镜像拉取失败。 可能原因: 可能是网络问题导致,检查Pod所在节点是否能够正常访问网络; 镜…...

Hadoop3:Yarn常用Shell命令
一、查看任务 1、查看所有任务 yarn application -list2、根据状态查看任务 语法 yarn application -list -appStates (所有状态:ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED)例如 yarn application…...

15.数据库简介+MySQl使用+SQL语句
文章目录 数据库简述一.数据库简介DB1.定义:2.DBMS数据库管理系统3.数据库分类 二.MySQL的安装1.安装步骤2.MySQL数据库图形管理工具3.mysql程序常用命令4.MySQL字符集及字符序5.Navicat快捷键操作 三.MySQL数据库基本操作 .........................................表管理一.…...

AI入门系列:工具篇之ChatGPT的优秀的国内替代品
文章目录 一,智谱清言(ChatGLM)1,智谱清言简介2,[智谱清言地址,点我开始用吧](https://chatglm.cn/) 二,Kimi智能助手1,Kimi简介2,[Kimi地址,点我开始用吧](https://kimi.moonshot.c…...

改机软件有哪些?实现一键新机、改串号、改IMEI和手机参数的需求 硬改手机软件,新机环境模拟 设备伪装,一键改机,一键复原
这次针对可以直接开端口修改参数的机型做一些工具解析 前面接触合作过很多工作室。其中很多工作室对于各自软件的跳验证有各自的需求。 一个机型各项参数一般有IMEI WiFi 蓝牙 sn psb ESN等等。 针对这些参数的修改首先要明白各自软件检测的具体是哪些参数来验证。 对于常用…...

如何快速使用JNI
文章目录 1_JNI是什么?2_使用3_扩展 1_JNI是什么? JNI 是Java Native Interface的缩写,通过JNI,允许Java代码与其他语言(通常是C或C)编写的本地应用程序或库进行交互。简而言之就是,Java可以通…...

simulink开发stm32,使用中断模块,无法产生中断,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方
1,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方 原来是需要在配置文件里开启一下timer的中断,其他模块自动加载ioc就可以了,这个timer需要注意力,需要自己勾选一下 如下图: 看…...
C# 如何单纯的优化循环
Parallel.For(0, 10000, i >{// 并行执行的代码块// 例如: Console.WriteLine(i);}); 这种循环比 单纯常用的for 和 foreach 要稍微快一点 但是呢如果循环里面写的是非常简单的业务逻辑 的话 for和foreach 要更胜一筹一点 Parallel 原理就好像我一个人忙不过来可以多找几个…...
【鸿蒙学习笔记】@Extend装饰器:定义扩展组件样式
官方文档:Extend装饰器:定义扩展组件样式 [Q&A] Extend装饰器 作用 Extend用于扩展原生组件样式。 [Q&A] Extend装饰器 特点 1・Extend仅支持在全局定义,不支持在组件内部定义。 2・Extend支持封装指定组件的…...

【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF
【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF 前言一、Stirling-PDF介绍1.1 Stirling-PDF简介1.2 Stirling-PDF功能 二、本次实践规划2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

CMake 从 GitHub 下载第三方库并使用
有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...