当前位置: 首页 > news >正文

论文阅读_基本于文本嵌入的信息提取

英文名: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服务器&#xff08;2&#xff09; 基于https协议的静态网站 概念解释 HTTPS&#xff08;全称&#xff1a;Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext TransferProtocol Secure&#xff0c;超文本传输安全协议&#xff09;&#xff0c;是以…...

Pytest集成Allure生成测试报告

# 运行并输出报告在Report文件夹下 查看生成的allure报告 1. 生成allure报告&#xff1a;pycharm terminal中输入命令&#xff1a;产生报告文件夹 pytest -s --alluredir../report 2. pycharm terminal中输入命令&#xff1a;查看生成的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控制继电器&#xff0c;为了更好的掌握继电器的使用方法这里实验做了一个跑马灯的效果。 这里用到的可编程继电器&#xff0c;起始原理并不复杂&#xff0c;同样需要ESP32控制针脚输出高电平或低电平给到继电器&#xff0c;继电器使用这个信号控制一个电…...

islower()方法——判断字符串是否全由小写字母组成

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 islower()方法用于判断字符串是否由小写字母组成。islower()方法的语法格式如下&#xff1a; str.islower() 如果字符串中包含至少一个区…...

发布/订阅模式

实现发布/订阅模式的基本思路是通过一个中介者&#xff08;发布者&#xff09;来管理订阅者&#xff08;监听器&#xff09;&#xff0c;并在特定事件发生时通知所有订阅者执行相应的操作。下面是实现发布/订阅模式的基本思路&#xff1a; 创建发布者对象&#xff1a;首先&…...

K8S Pod常见状态

这是自己所遇到 Pod 常见状态及可能原因&#xff0c;持续更新。 如有其他的错误状态&#xff0c;可私我更新 1. ImagePullBackOff 问题分析&#xff1a; 镜像拉取失败。 可能原因&#xff1a; 可能是网络问题导致&#xff0c;检查Pod所在节点是否能够正常访问网络; 镜…...

Hadoop3:Yarn常用Shell命令

一、查看任务 1、查看所有任务 yarn application -list2、根据状态查看任务 语法 yarn application -list -appStates &#xff08;所有状态&#xff1a;ALL、NEW、NEW_SAVING、SUBMITTED、ACCEPTED、RUNNING、FINISHED、FAILED、KILLED&#xff09;例如 yarn application…...

15.数据库简介+MySQl使用+SQL语句

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

AI入门系列:工具篇之ChatGPT的优秀的国内替代品

文章目录 一&#xff0c;智谱清言(ChatGLM)1&#xff0c;智谱清言简介2&#xff0c;[智谱清言地址&#xff0c;点我开始用吧](https://chatglm.cn/) 二&#xff0c;Kimi智能助手1&#xff0c;Kimi简介2&#xff0c;[Kimi地址&#xff0c;点我开始用吧](https://kimi.moonshot.c…...

改机软件有哪些?实现一键新机、改串号、改IMEI和手机参数的需求 硬改手机软件,新机环境模拟 设备伪装,一键改机,一键复原

这次针对可以直接开端口修改参数的机型做一些工具解析 前面接触合作过很多工作室。其中很多工作室对于各自软件的跳验证有各自的需求。 一个机型各项参数一般有IMEI WiFi 蓝牙 sn psb ESN等等。 针对这些参数的修改首先要明白各自软件检测的具体是哪些参数来验证。 对于常用…...

如何快速使用JNI

文章目录 1_JNI是什么&#xff1f;2_使用3_扩展 1_JNI是什么&#xff1f; JNI 是Java Native Interface的缩写&#xff0c;通过JNI&#xff0c;允许Java代码与其他语言&#xff08;通常是C或C&#xff09;编写的本地应用程序或库进行交互。简而言之就是&#xff0c;Java可以通…...

simulink开发stm32,使用中断模块,无法产生中断,其中包括使用timer模块,以及ADC都无法产生中断,需要注意的地方

1&#xff0c;其中包括使用timer模块&#xff0c;以及ADC都无法产生中断&#xff0c;需要注意的地方 原来是需要在配置文件里开启一下timer的中断&#xff0c;其他模块自动加载ioc就可以了&#xff0c;这个timer需要注意力&#xff0c;需要自己勾选一下 如下图&#xff1a; 看…...

C# 如何单纯的优化循环

Parallel.For(0, 10000, i >{// 并行执行的代码块// 例如: Console.WriteLine(i);}); 这种循环比 单纯常用的for 和 foreach 要稍微快一点 但是呢如果循环里面写的是非常简单的业务逻辑 的话 for和foreach 要更胜一筹一点 Parallel 原理就好像我一个人忙不过来可以多找几个…...

【鸿蒙学习笔记】@Extend装饰器:定义扩展组件样式

官方文档&#xff1a;Extend装饰器&#xff1a;定义扩展组件样式 [Q&A] Extend装饰器 作用 Extend用于扩展原生组件样式。 [Q&A] Extend装饰器 特点 &#xff11;・Extend仅支持在全局定义&#xff0c;不支持在组件内部定义。 &#xff12;・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 版本 四…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...

基于单片机的宠物屋智能系统设计与实现(论文+源码)

本设计基于单片机的宠物屋智能系统核心是实现对宠物生活环境及状态的智能管理。系统以单片机为中枢&#xff0c;连接红外测温传感器&#xff0c;可实时精准捕捉宠物体温变化&#xff0c;以便及时发现健康异常&#xff1b;水位检测传感器时刻监测饮用水余量&#xff0c;防止宠物…...

6.9本日总结

一、英语 复习默写list11list18&#xff0c;订正07年第3篇阅读 二、数学 学习线代第一讲&#xff0c;写15讲课后题 三、408 学习计组第二章&#xff0c;写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语&#xff1a;复习l默写sit12list17&#…...

ffmpeg(三):处理原始数据命令

FFmpeg 可以直接处理原始音频和视频数据&#xff08;Raw PCM、YUV 等&#xff09;&#xff0c;常见场景包括&#xff1a; 将原始 YUV 图像编码为 H.264 视频将 PCM 音频编码为 AAC 或 MP3对原始音视频数据进行封装&#xff08;如封装为 MP4、TS&#xff09; 处理原始 YUV 视频…...

day51 python CBAM注意力

目录 一、CBAM 模块简介 二、CBAM 模块的实现 &#xff08;一&#xff09;通道注意力模块 &#xff08;二&#xff09;空间注意力模块 &#xff08;三&#xff09;CBAM 模块的组合 三、CBAM 模块的特性 四、CBAM 模块在 CNN 中的应用 一、CBAM 模块简介 在之前的探索中…...

使用VMware克隆功能快速搭建集群

自己搭建的虚拟机&#xff0c;后续不管是学习java还是大数据&#xff0c;都需要集群&#xff0c;java需要分布式的微服务&#xff0c;大数据Hadoop的计算集群&#xff0c;如果从头开始搭建虚拟机会比较费时费力&#xff0c;这里分享一下如何使用克隆功能快速搭建一个集群 先把…...