基于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, Field

class 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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电子版试卷怎么打印出来?分享3个扫描小技巧

电子版试卷怎么打印出来?在日常学习中,将试卷打印成电子版可以带来很多方便。首先,电子版试卷方便存储和查找,可以随时随地使用电脑或手机进行阅读和复习。其次,电子版试卷方便进行标注和分析,可以使用不同…

提供多语种客户服务的正确方法:让你更接近全球客户

优质的客户支持是任何成功企业的核心。每位客户都希望得到全天候的及时响应。事实上,根据《哈佛商业评论》的研究报告,快速响应会促使人们在未来支付更多的费用。此外,在与全球客户打交道时,您的沟通必须超越语言障碍。用客户的语…

2-Linux-应用-部署icwp-Linux虚拟机【Django+Vue+Nginx+uwsgi+Linux】

本文概述 本文章讲述基于Linux CentOS 7系统(虚拟机),部署DjangoVue开发的前后端分离项目。 项目源码不开放,但是操作步骤可以借鉴。 该文章将项目部署在Linux虚拟机上,暂不使用Docker 相关指令尽量展示执行路径&am…

python下常用的爬虫模块

目录 一:requests 二:BeautifulSoup 三:Scrapy 四:Selenium 一:requests requests 是一个用于发送 HTTP 请求的 Python 库。它提供了简洁的 API 来发送各种类型的 HTTP 请求,如 GET、POST、PUT、DELETE…

多级缓存架构(二)Caffeine进程缓存

文章目录 一、引入依赖二、实现进程缓存1. 配置Config类2. 修改controller 三、运行四、测试 通过本文章&#xff0c;可以完成多级缓存架构中的进程缓存。 一、引入依赖 在item-service中引入caffeine依赖 <dependency><groupId>com.github.ben-manes.caffeine…

过滤器、拦截器、AOP、ControllerAdvcie执行顺序对比

过滤器Filter 简介 来自J2EE中的Servlet技术实现原理&#xff1a;基于servlet的函数回调实现只可以获取到请求中的request和response&#xff0c;无法获取到响应方法的信息可以拦截所有请求支持使用xml配置和注解配置应用场景&#xff1a;权限认证、敏感词检测、访问日志记录…

【Python机器学习系列】建立随机森林模型预测心脏疾病(完整实现过程)

这是Python机器学习系列原创文章&#xff0c;我的第200篇原创文章。 一、引言 对于表格数据&#xff0c;一套完整的机器学习建模流程如下&#xff1a; 针对不同的数据集&#xff0c;有些步骤不适用即不需要做&#xff0c;其中橘红色框为必要步骤&#xff0c;由于数据质量较高&…

【国产mcu填坑篇】华大单片机(小华半导体)一、SPI的DMA应用(发送主机)HC32L136

最近需要用华大的hc32l136的硬件SPIDMA传输&#xff0c;瞎写很久没调好&#xff0c;看参考手册&#xff0c;瞎碰一天搞通了。。。 先说下我之前犯的错误&#xff0c;也是最宝贵的经验&#xff0c;供参考 没多看参考手册直接写&#xff08;即使有点烂仍然提供了最高的参考价值。…

记edusrc一处信息泄露

一、信息收集 在搜索某一学校的资产时&#xff0c;找到了一处学工系统。 登录进去&#xff0c;发现有两种登陆方式&#xff0c;一种是统一身份认证&#xff0c;一种是DB认证。 统一身份认证是需要通过学生的学号和密码进行登录的&#xff0c;利用谷歌语法可以搜索到相关学…

多特征变量序列预测(四)Transformer-BiLSTM风速预测模型

目录 往期精彩内容&#xff1a; 前言 1 多特征变量数据集制作与预处理 1.1 导入数据 1.2 数据集制作与预处理 2 基于Pytorch的Transformer BiLSTM 预测模型 2.1 定义Transformer BiLSTM预测模型 2.2 设置参数&#xff0c;训练模型 3 模型评估与可视化 3.1 结果可视…

计算机视觉技术的应用前景如何?

计算机视觉技术在各个领域都有广阔的应用前景。以下是一些计算机视觉技术可能的应用&#xff1a; 1. 安全和监控&#xff1a;计算机视觉可以用于视频监控、入侵检测、人脸识别等安全和监控领域。它可以帮助监测和识别异常行为或威胁&#xff0c;并提供实时警报。 2. 自动驾驶和…

如何使用iPad通过Code App+cpolar实现公网地址远程访问vscode

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 1. 在iPad下载Code APP2.安装cpolar内网穿透2.1 cpolar 安装2.2 创建TCP隧道 3. iPad远程vscode4. …

BootStrap 实现轮播图

Bootstrap中文网 1、下载BootStrap 2、引入相关文件 在下载好的文件夹中找到下面的文件&#xff0c;复制到自己的项目中并引入 <link rel"stylesheet" href"bootstrap/css/bootstrap.min.css" /><script src"bootstrap/js/jquery.min.js…

中仕公考:2024年度河南省公务员考试公告发布!共招录9900人!

河南省2024年度统一考试录用公务员公告于今日发布&#xff0c;共计划招录9900人。 报名时间&#xff1a;1月18日9&#xff1a;00-1月24日17&#xff1a;00 笔试时间&#xff1a;3月16日-3月17日 报名方式&#xff1a;登录“河南人事考试网”进行网上报名 2024年省考29.5%的…

HTML--JavaScript--语法基础

变量与常量 这个基本上没啥问题 变量命名规则&#xff1a; 变量由字母、数字、下划线、$组成&#xff0c;且变量第一个字符不能为数字 变量不能是系统关键字和保留字 语法&#xff1a; var 变量名 值&#xff1b;所有Javacript变量都由var声明 定义赋值字符串&#xff1a; …

OpenHarmony——基于HDF驱动框架构建的Display驱动模型

概述 功能简介 LCD&#xff08;Liquid Crystal Display&#xff09;驱动编程&#xff0c;通过对显示器上电、初始化显示器驱动IC&#xff08;Integrated Circuit&#xff09;内部寄存器等操作&#xff0c;使其可以正常工作。 基于HDF&#xff08;Hardware Driver Foundation…

1-Docker-基础

本文内容多处参考黑马程序员的公开资料&#xff0c;仅用来个人梳理&#xff0c;原资料地址&#xff1a;https://b11et3un53m.feishu.cn/wiki/MWQIw4Zvhil0I5ktPHwcoqZdnec Docker介绍 为什么要用Docker&#xff1f; 以Mysql安装为例&#xff0c;想要在Linux系统上安装Mysql&…

前任开发在代码里下毒了,支付下单居然没加幂等

分享是最有效的学习方式。 故事 又是一个风和日丽没好的一天&#xff0c;小猫戴着耳机&#xff0c;安逸地听着音乐&#xff0c;撸着代码&#xff0c;这种没有会议的日子真的是巴适得板。 不料祸从天降&#xff0c;组长火急火燎地跑过来找到了小猫。“快排查一下&#xff0c;目…

【Emgu CV教程】5.1、几何变换之平移

图像的几何变换对于图像处理来说&#xff0c;也是最基础的那一档次&#xff0c;包括平移、旋转、缩放、透视变换等等&#xff0c;也就是对图像整理形状的改变&#xff0c;用到的函数都比较简单&#xff0c;理解起来也很容易。但是为了凑字数&#xff0c;还是一个函数一个函数的…

类和对象特性

#include<iostream> #include<string> using namespace std; class peron{ public:peron(string person){cout << "peron调用构造函数" << endl;tperson person;}~peron(){cout << "peron调用析构函数" << endl;}//手…