基于LLM大模型的结构化数据批量提取

在当今世界,越来越多的组织致力于数据驱动的决策。 然而,他们通常面临着从非结构化文本数据(例如客户评论或反馈)中提取有价值的见解的挑战。

这篇文章是为想要使用非结构化数据获得有用见解的数据科学家、分析师和决策者量身定制的。 我们探索大型语言模型 (LLM) 的批量用例,重点关注非结构化文本到结构化数据的转换。 通过利用这种方法,企业可以利用结构化信息丰富其数据库,并提高对非结构化数据源的理解。 为了说明此类用例,我们将深入研究客户反馈分析的示例。

这个存储库提供了开始使用此类 LLM 批量用例的常规设置。

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包

1、使用案例:客户反馈

让我们以网页上对应于特定产品的客户评论为例。

我们可能有一些可用的结构化信息,例如每个客户给出的星级数。 但是,我们可能需要更多具体信息。 例如,为什么客户给予高或低评价? 为了找到答案,我们需要自己阅读和过滤这些评论。 在对数千种产品进行数百次评论的情况下,这是一个不可行的过程。

理想情况下,也许我们会看到每个主题的评级,例如质量、运输、价格等。这有两个好处:

  • 我们将能够更好地确定我们可以改进的地方。
  • 我们将帮助客户在购买产品时做出更好的决定。

在下图中,我们可以看到每个主题的评分概览。

根据该图,敏锐的眼睛可能会注意到我们正在对提及某个主题的所有评论进行平均评分。 如果我们收到的评论提到多个主题:“质量很好,运输很差”,那么这种方法就不太有效。 在这种情况下,我们可能会错误地对质量给予低评级,或对运输给予高评级。 然而,为了使我们的示例简单,我们暂时忽略这些类型的评论。

你可能想知道,为什么不让客户直接就这些主题提供反馈呢? 那么这样的话,审核的过程就会变得更加复杂。 这可能会导致客户根本不评价。

那么,我们该怎么做呢? 我们需要一种可扩展的方法来从非结构化文本(即评论)中提取结构化信息(即主题)。

2、使用LLM提取结构化信息

在此示例中,我们使用LLM大模型,因为它的灵活性和易用性。 它使我们无需训练模型即可完成任务。 但请注意,对于非常结构化的输出,一旦收集到足够的样本,也可以训练简单的分类模型。

我们可以采取以下方法:

  • 创建巧妙的提示
  • 将非结构化文本交给LLM
  • 检索 LLM 的结构化输出
  • 保存到数据库

我们尝试强制 LLM 输出有效的 JSON,因为我们可以轻松地将原始 JSON 作为 Python 中的对象加载。 例如,我们可以定义 Pydantic BaseModel,并使用它来验证模型输出。 此外,我们可以使用它的定义立即为模型提供正确的格式化指令。 要了解有关强制LLM提供结构化输出的更多信息,请查看我们之前的博客文章。

我们的 Pydantic BaseModel 看起来像这样:

from typing import List, Literal
from pydantic import BaseModel, Fieldclass DesiredOutput(BaseModel):topics: List[Literal["quality", "price", "shipping",]] = Field("Topic(s) in the input text")

然而,模型第一次可能不会正确。 我们可以通过将验证错误反馈到提示中来对模型进行几次尝试。 这种方法可以被认为是拉斯维加斯类型的算法。 流程如下所示:

就是这样! 至少对于基础知识来说是这样。 我们可以扩展它,例如允许通用的用户定义模式,然后可以将其解析为 Pydantic BaseModel。

3、结构化为批处理操作

最后一步,我们将逻辑与输入和输出分开,这样我们就可以轻松地对新批次的数据运行这些操作。

我们可以通过参数化输入评论的位置和 JSON 文件的输出位置来实现这一点。 我们在运行批处理时使用它们来加载评论并存储输出文件。

当我们运行批处理作业时,每次审核都会提示 LLM(使用上一节中描述的逻辑)一次。 评论本身可以使用提示模板动态插入到我们的提示中,该模板在此处的源存储库中实现。

随后,我们可以根据需要使用输出 JSON。 它们应该包含我们在 BaseModel 中指定的所有信息。 在客户评论的示例中,我们现在可以轻松地将评论按主题与可用的结构化信息分组在一起。

在本地运行此操作后,剩下要做的就是使该批处理操作能够在服务器上运行给定的时间间隔。 但我们将其排除在本文的讨论范围之外。

4、泛化解决方案

上述解决方案已经适用于我们想要从非结构化输入数据中提取结构化信息的许多用例。 然而,为了进一步概括,我们还可以添加处理 pdf 文档的功能,因为这些通常是与文本相关的用例的起点。

在较高的层面上,整体解决方案大致变为:

在源代码库中,我们假设了一种简单的情况,即文档足够小,可以一次性通过 LLM。 然而,在某些情况下,pdf 会跨越数十页。 对于LLM来说,输入变得太大,并且需要实施额外的处理。

5、结束语

在这篇博文中,我们探讨了LLM的典型批量用例,重点是从非结构化文本中提取结构化数据。 我们通过客户反馈分析的例子演示了这种方法。 通过使用LLM和精心设计的提示策略,我们可以有效地将非结构化文本数据转换为结构化信息。 然后,我们可以使用这些信息来丰富我们的数据库并促进更好的决策。

提供的存储库以基本形式展示了此类用例,并且可以轻松适应你的特定需求。 我们鼓励你使用自己的数据进行尝试,并探索利用LLM从非结构化文本中提取有价值的见解的可能性。


原文链接:LLM批量提取结构化数据 - BimAnt

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CSP】2023年12月真题练习(更新到202312-2)

试题编号:202312-1试题名称:仓库规划时间限制:1.0s内存限制:512.0MB问题描述: 问题描述 西西艾弗岛上共有 n 个仓库,依次编号为 1⋯n。每个仓库均有一个 m 维向量的位置编码,用来表示仓库间的物…

【探索C++容器:vector的使用和模拟实现】

【本节目标】 1.vector的介绍及使用 2.vector深度剖析及模拟实现 1.vector的介绍及使用 1.1 vector的介绍 vertor文档介绍 1. vector是表示可变大小数组的序列容器。2. 就像数组一样,vector也采用连续存储空间来存储元素。也就是意味着可以采用下标对vector的元…

【控制篇 / 分流】(7.4) ❀ 03. 对国内和国际IP网段访问进行分流 ❀ FortiGate 防火墙

【简介】公司有两条宽带用来上网,一条电信,一条IPLS国际专线,由于IPLS仅有2M,且价格昂贵,领导要求,访问国内IP走电信,国际IP走IPLS,那么应该怎么做? 国内IP地址组 我们已…

4种方法用Python批量实现多Excel多Sheet合并

目录 方法一:使用pandas库 方法二:使用openpyxl库 方法三:使用xlrd和xlwt库 方法四:使用os和glob库 在数据处理中,经常需要将多个Excel文件中的多个工作表进行合并。以下介绍了4种方法,使用Python批量实…

sql中的explain关键字用法

在SQL中,使用EXPLAIN关键字可以获取查询的执行计划,以便进行性能优化和查询调优。执行计划提供了关于查询操作的详细信息,涵盖了多个表头字段,每个字段都提供了特定的信息。以下是explain表头字段解释: id&#xff1…

【NCRE 二级Java语言程序设计04】二级Java考试应用软件使用

目录 前言一、软件介绍和下载1.软件介绍和下载2.下载软件3.下载使用说明和示例教程 二、本地练习环境搭建1.解压启动2.自建Java应用程序3.Hello入门程序 三、NetBeans一般配置1.代码模板2.字体和颜色3.快捷键映射 总结 前言 📜本专栏主要是分享自己备考全国计算机二…

以某轧钢厂为例浅谈电能管理系统

摘要:结合某轧钢厂的现状和电能管理软件的优势应用,在节能降耗方面利用电能管理软件对轧钢厂电能损耗进行实时监控,为实现能源优化配置和节能降耗管理提供了大量数据,从而为大型能耗企业的节能降耗实施奠定了基础。 关键词&#x…

k8s的对外服务ingress

1、service的作用体现在两个方面 (1)集群内部:不断跟踪pod的变化,更新deployment中的pod对象,基于pod的ip地址不断变化的一种服务发现机制 (2)集群外部:类似于负载均衡器&#xff…

MongoDB Compass当前版本及历史版本下载安装

mongoDB compass 当前版本下载 官网 https://www.mongodb.com/try/download/compass 官网下载一般只能下载最新版本。 github https://github.com/mongodb-js/compass MongoDB Compass与MongoDB的版本对应关系 MongoDB CompassMongoDB1.9.12MongoDB 2.6.11 Community

conda install命令无法安装pytorch

由于网络问题,直接采用conda install命令可能无法直接下载对应的cuda包。 方法一:采用pip命令替代 步骤1:切换pip的源为国内源: 若只是临时切换: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-p…

appium之联动pycharm

前置条件: 1.java环境安装好了 2.android-sdk安装好(uiautomatorviewer 也可以把这个启动起来) 3.appium安装好 4.adb devices查看下设备是否连接 pycharm入门代码--固定写法 from appium import webdriver# 定义字典变量 desired_caps …

ONLYOFFICE:开源、免费、安全,打造定制化办公平台的最佳选择

文章目录 写在前面ONLYOFFICE是什么?ONLYOFFICE的惊艳之处齐全的插件,助你锦上添花部署一款自己的安全可靠的办公平台写在最后 写在前面 说起 Office 办公软件,我想大家最常用的应该就是微软的 Microsoft Office 以及国产的 WPS Office。两款…

C++设计模式(李建忠)笔记4(完结)

C设计模式(李建忠) 本文是学习笔记,如有侵权,请联系删除。 参考链接 Youtube: C设计模式 Gtihub源码与PPT:https://github.com/ZachL1/Bilibili-plus 豆瓣: 设计模式–可复用面向对象软件的基础 总结23种设计模式…

Qt应用开发(安卓篇)——Linux下Qt15.5.2配置Android

目录 一、前言 二、Qt安装 三:JDK安装 四:安装SDK,NDK 五、其他事项 六、新建项目 一、前言 看网上教程,多数是windows环境下的,配置也很简单,想不到自己配置的时候却遇到很多问题,传了一…

给WordPress网站增加一个带时间的led广告牌

WordPress 后台》外观》小工具》自定义html》添加到合适位置 其他系统可自行添加合适位置 <style type"text/css">.studytextgzbox {background: #F9F9F9; border: 1px solid #999999;margin: 1px;text-align:center; float: left;line-height: 28px;hei…

2018年认证杯SPSSPRO杯数学建模B题(第一阶段)动态模糊图像全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 B题 动态模糊图像 原题再现&#xff1a; 人眼由于存在视觉暂留效应&#xff0c;所以看运动的物体时&#xff0c;看到的每一帧画面都包含了一段时间内 (大约 1/24 秒) 的运动过程&#xff0c;所以这帧画面事实上是模糊的。对电影的截图来说&…

【STM32】STM32学习笔记-MPU6050简介(32)

00. 目录 文章目录 00. 目录01. MPU6050简介02. MPU6050参数03. MPU6050硬件电路04. MPU6050框图05. MPU6050常用寄存器06. 附录 01. MPU6050简介 •MPU6050是一个6轴姿态传感器&#xff0c;可以测量芯片自身X、Y、Z轴的加速度、角速度参数&#xff0c;通过数据融合&#xff0…

STM32标准库开发——USART串口协议

通信接口 通信的目的:将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统通信协议:制定通信的规则&#xff0c;通信双方按照协议规则进行数据收发 差分电平&#xff08;Differential Voltage Level&#xff09;是指用两个相对的电平来表示信号的电压差异。它是通过将…

LabVIEW精确测量产品中按键力和行程

项目背景 传统的按键测试方法涉及手工操作&#xff0c;导致不一致和效率低下。在汽车行业中&#xff0c;带有实体按键的控制面板非常常见&#xff0c;确保一致的按键质量至关重要。制造商经常在这些组件的大规模、准确测试中遇到困难。显然&#xff0c;需要一个更自动化、精确…

SpringBoot基础:一步步创建SpringBoot工程

摘要 本文介绍了&#xff0c;从零开始创建SpringBoot工程&#xff0c;且在每一步给出分析和原因。创建maven – 转Springboot – 引入jdbc – 引入数据库操作框架&#xff0c;最后给出了不同场景指定不同配置文件的方案。 背景 为什么要使用SpringBoot工程&#xff1f; 使用Sp…