论文阅读_基本于文本嵌入的信息提取
| 英文名: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 版本 四…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
uni-app学习笔记三十五--扩展组件的安装和使用
由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...
GAN模式奔溃的探讨论文综述(一)
简介 简介:今天带来一篇关于GAN的,对于模式奔溃的一个探讨的一个问题,帮助大家更好的解决训练中遇到的一个难题。 论文题目:An in-depth review and analysis of mode collapse in GAN 期刊:Machine Learning 链接:...
详解ZYNQ中的 RC 和 EP
详解ZYNQ中的 RC 和 EP 一、ZYNQ FPGA 开发板基础( ZC706 ) 1. 核心特点 双核大脑 灵活积木: ZC706 集成了 ARM Cortex-A9 双核处理器(相当于电脑 CPU)和 FPGA 可编程逻辑单元(相当于可自定义的硬件积木…...
SpringCloud——Nacos
1、核心功能: 服务注册与发现: 服务实例可动态注入到Nacos中,消费者通过服务名发现可用实例。 // 启用EnableDiscoveryClient注解启用Nacos SpringBootApplication EnableDiscoveryClient public class UserServiceApplication {public st…...
循环神经网络(RNN):从理论到翻译
循环神经网络(RNN)是一种专为处理序列数据设计的神经网络,如时间序列、自然语言或语音。与传统的全连接神经网络不同,RNN具有"记忆"功能,通过循环传递信息,使其特别适合需要考虑上下文或顺序的任…...
0x-2-Oracle Linux 9上安装JDK配置环境变量
一、JDK选择和使用 安装完Oracle Linux9.6,同时使用rpm包安装Oracle 23 ai free后, 将面临sqlcl程序无法使用和java无法使用,需要相应进行变量配置问题。 1、java 环境运行不存在,Oracle 23ai free安装后默认安装JDK 11 /opt/…...
