论文阅读_基本于文本嵌入的信息提取
| 英文名: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 版本 四…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...
【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
