PAE:从潮流报告中提炼有效产品属性

本文将介绍PAE,一种用于包含 PDF格式的文本和图像的产品属性提取算法。目前大部分的方法侧重于从标题或产品描述中提取属性,或利用现有产品图像中的视觉信息。与之前的工作相比,PAE从潮流趋势报告的PDF文件中提取属性,提取的属性包含了未来的时尚趋势,然后将这些属性和零售商的产品目录对比,以便于提前做出预判和规划。

小编提示:本项目的亮点和价值在于细节,具体的作业细节!!

潮流报告

产品目录会被用于战略性地选择和组织系列产品,以满足客户需求并最大限度地提高销售额。这个过程涉及分析市场趋势、客户偏好和竞争对手的策略,以确定潜在的差距和机会——这个过程通常需要对未来流行的趋势进行预测和决策。

如上图所示,一些主流或者相关行业的调查报告会涵盖纺织品和材料创新、产品开发以及生活方式和室内设计趋势,通过对这些信息进行提取产品属性值,然后将属性值正确的映射到产品属性。在结合自身的产品库,就可以根据未来的流行趋势对自身的产品进行调整,或者为自身的产品贴上更合适的标签以便于形成网红产品。

项目的具体流程如下,从给定的PDF文件中提取所有文本(段落)和相关图像,使用LLM模型从图像和文本中提取相关属性。将属性合并到每个类别中,并为每个属性保留唯一值。利用基于Bert的模型将这些属性和目前现有库存的商品进行匹配,以便组织和规划未来的目录。

产品属性提取 (PAE) 引擎可以帮助零售行业加入新商品或从现有目录中提取属性。我们进行了这篇较长的论文中描述的大量实验,以表明与现有的最先进的属性提取框架相比,PAE 是一个有效、灵活的框架,与现有最先进的属性提取框架相当或更胜一筹(平均 92.5% F1 分数)。

PDF的文字提取

PDF文档的布局复杂性可能会使提取过程变得困难。例如,存在多个列、图像、表格和脚注会使纯文本的提取变得复杂。另一个挑战是在PDF中使用非标准或自定义字体,这可能导致提取结果不准确。此外,页眉、页脚、HTML 标签和页码等“噪音”的存在也会干扰提取过程。

有许多工具可用于文本提取,例如pdfMiner或pdfquery。上图显示从pdf 文件中提取文本的过程。首先,使用pdf2image中的“convert from path”功能将PDF文件拆分为PIL(Python 图像库)图像。

在内部,该函数使用pdfinfo命令行工具从 PDF 文件中提取元数据,例如页数。然后使用pdftocairo命令行工具将PDF的每一页转换为图像。其次,将图像转换为灰度,并通过应用形态梯度算子来增强和隔离文本区域,从而在每个页面上进行形态转换。最后使用具有光学字符识别 (OCR)功能的图像注释器进行文本提取。提取文本后使用拼写校正器(如 LanguageTool)来修复 OCR 中任何被误解的文本。

PDF的图片提取

PDF文件可以包含各种格式的图像,例如JPEG、PNG或TIFF。从不同格式提取图像可能需要多种技术。高效、及时地从大型 PDF 文件中提取图像可能是一个挑战,尤其是在处理有限的系统资源时。为了应对上述挑战,利用纯Python PDF库直接从 PDF 文件中提取图像对象并将它们提取为原始的字符串。然后使用 Pillow处理提取的图像并以 jpg 格式保存。

属性映射到现有产品目录

首先需要从之前的文本和图像中提炼有效的产品的属性值,这里直接使用Prompt工程利用现有的LLM进行信息的提炼。如下为具体的例子:

这个阶段常见的问题是存在嘈杂和缺失的标签。准确标记和注释PDF中每一页的所有相关信息是一项具有挑战性的任务。尽管采用了各种自动和手动注释流程,但几乎不可能获得完美标记的结构化数据。为了解决这个问题,研究团队采用图像预处理或数据清理技术来消除重复、嘈杂和无效的图像,然后再进行属性提取。

那么从每个页面上的文本和图像中提取属性,聚合之后就有了很多潮流趋势的属性和属性值。如何将这些信息映射到现有的产品目录,具体的过程如下:

商品属性匹配的挑战之一是,一个属性有很多不同的表示说法。例如,“vneck”需要和“V-Neck”进行合并为“V-Neck”。

这里使用了预训练BERT无大小写模型。BERT是个双向表示的模型,通过它生成源和目标的词嵌入,最后用余弦相似度来匹配现有目录中的相似的属性。

上面左图为每种潮流类型(都是衣服)提炼的页数P,文本数T,图片数I,小标签数H。右图则为F1-Score(准确性)。

到此就完成了从pdf提炼信息,然后和自身数据库整合的过程。后续就会有很多的应用,例如可以将匹配的产品增加曝光,或者增加缺乏的产品。其实某种意义上实现了最新信息跟踪的数字化过程。小编认为要是结合LangChian或者LlamaIndex作为调度框架会更加的流畅,具体就交给各位读者去实施。

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

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

相关文章

ML307R OpenCPU HTTP使用

一、函数介绍 二、示例代码 三、代码下载地址 一、函数介绍 具体函数可以参考cm_http.h文件,这里给出几个我用到的函数 1、创建客户端实例 /*** @brief 创建客户端实例** @param [in] url 服务器地址(服务器地址url需要填写完整,例如(服务器url仅为格式示…

spl实现循环计算

需求 需要对一批数据进行价格计算 这里面的一部分单价来自于历史记录,但是另外一部分的单价,需要边计算边存储 数据库结构 CREATE TABLE tbl_mix_trace_price (lot_id_out varchar(255) DEFAULT NULL COMMENT 产出,lot_id_in varchar(255) DEFAULT NULL…

谈一下MySQL的两阶段提交机制

文章目录 为什么需要两阶段提交?两阶段提交流程?两阶段提交缺点? 为什么需要两阶段提交? 为了保证事务的持久性和一致性,MySQL需要确保redo log和binlog的同步持久化。MySQL通过“两阶段提交”的机制来实现在事务提交…

洛谷U420301题解

题解 方法一枚举 时间复杂度 O ( n 2 ) O(n^2) O(n2) 主要代码 int main() {int n,t;cin >> n;for(int i 1;i < n;i) cin >> a[i];cin >> t;for(int i 1;i < n;i){for(int j i 1;j < n;j){if(a[i] a[j] t){cout << "Yes"…

定个小目标之刷LeetCode热题(34)

15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三…

小迪安全v2023 javaWeb项目

小迪安全v2023 javaWeb项目 文章目录 小迪安全v2023 javaWeb项目1. webgoat靶场1. 环境配置与docker操作 2. jwt令牌1. jwt 第四关 签名没验证空加密2. jwt 第五关 爆破签名密钥3. jwt 第八关 kid参数可控 1. webgoat靶场 1. 环境配置与docker操作 自行下载配置vmware的kali-…

《mysql篇》--查询(进阶)

目录 将查询结果作为插入数据 聚合查询 聚合函数 count sum group by子句 having 联合查询 笛卡尔积 多表查询 join..on实现多表查询 内连接 外连接 自连接 子查询 合并查询 将查询结果作为插入数据 Insert into 表2 select * from 表1//将表1的查询数据插入…

Linux开发讲课20--- QSPI

SPI 是英语 Serial Peripheral interface 的缩写&#xff0c;顾名思义就是串行外围设备接口&#xff0c;一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff0c;并且在芯片的管脚上只占用四根线&#xff0c;节约了芯片的管脚&#xff0c;为 PCB 的布局上节省空间…

SpringMVC常用功能实现

1. 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> 2. 端口配置 server:port: 8080 3. 统一功能处理 3.1 拦截器 3.1.1 生成 package com.exa…

PHP和phpSpider:如何应对反爬虫机制的封锁?

php和phpspider&#xff1a;如何应对反爬虫机制的封锁&#xff1f; 引言&#xff1a; 随着互联网的快速发展&#xff0c;对于大数据的需求也越来越大。爬虫作为一种抓取数据的工具&#xff0c;可以自动化地从网页中提取所需的信息。然而&#xff0c;由于爬虫的存在&#xff0c…

Springcloud-消息总线-Bus

1.消息总线在微服务中的应用 BUS- 消息总线-将消息变更发送给所有的服务节点。 在微服务架构的系统中&#xff0c;通常我们会使用消息代理来构建一个Topic&#xff0c;让所有 服务节点监听这个主题&#xff0c;当生产者向topic中发送变更时&#xff0c;这个主题产生的消息会被…

Controller中的参数解析器【Spring源码学习】

mockRequest构建request请求 private static HttpServletRequest mockRequest(){MockHttpServletRequest request new MockHttpServletRequest();request.setParameter("name1","zhangsan");request.setParameter("name2","lisi");r…

多线程引发的安全问题

前言&#x1f440;~ 上一章我们介绍了线程的一些基础知识点&#xff0c;例如创建线程、查看线程、中断线程、等待线程等知识点&#xff0c;今天我们讲解多线程下引发的安全问题 线程安全&#xff08;最复杂也最重要&#xff09; 产生线程安全问题的原因 锁&#xff08;重要…

左耳听风_116_115_Go_编程模式Kubernetes_Visitor模式

你好&#xff0c;我是陈浩网名左耳多浩子。 这节课呢我们来重点讨论一下cuba netice的酷ver CTL命令它使用到了一个编程模式叫做visitor. Visitor呢是面向对象模式中一个很重要的设计模式。 那这个模式呢是将算法与操作对象的结构分离的一种方法。 那这种分离的实际结果呢是…

Python基础之错误和异常讲解

文章目录 1 错误和异常1.1 简介1.1.1 语法错误1.1.2 异常 1.2 抛出异常1.2.1 抛出原装异常1.2.2 assert异常1.2.3 抛出用户自定义异常 1.3 异常处理1.3.1 try/except1.3.2 try/except...else1.3.3 try-finally 语句1.3.4 with 关键字 1.4 分析记录错误1.4.1 分析错误1.4.2 记录…

Hive笔记-6

6.2.8 聚合函数 1) 语法 count(*)&#xff0c;表示统计所有行数&#xff0c;包含null值&#xff1b; count(某列)&#xff0c;表示该列一共有多少行&#xff0c;不包含null值&#xff1b; max()&#xff0c;求最大值&#xff0c;不包含null&#xff0c;除非所有值都是null&a…

不同node版本的切换及其指定版本vue-cli脚手架下载

目录 一.清空本地已安装node.js版本 二.装nvm管理工具 三.安装指定node版本 四.使用nvm命令切换或删除指定node版本 五.在指定node版本下下载指定vue-cli脚手架 一.清空本地已安装node.js版本 1.按健winR弹出窗口&#xff0c;键盘输入cmd&#xff0c;然后敲回车。 2.输入…

win11 + ubuntu linux双系统:开机直接进入windows修复

https://zhuanlan.zhihu.com/p/666702893 这种 双系统直接进入win 的问题&#xff0c;应该属于引导坏了&#xff0c;即grub坏了。 原因&#xff1a;笔记本送修了&#xff0c;没拆掉硬盘&#xff0c;可能引导被售后搞坏了。 在win-磁盘管理中查看分区&#xff0c;linux的分区…

《SpringBoot+Vue》Chapter04 SpringBoot整合Web开发

返回JSON数据 默认实现 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>在springboot web依赖中加入了jackson-databind作为JSON处理器 创建一个实体类对象…

8.javaSE基础进阶_泛型generics(无解通配符?+上下界统配符superextends)

文章目录 泛型generics一.泛型简介二.泛型类1.泛型方法 三.泛型接口四.泛型进阶1.*<?>无解通配符*2.上界通配符 < ? extends E>3.下界通配符 < ? super E>4.泛型擦除 泛型generics 一.泛型简介 JDK5引入,一种安全机制,编译时检测不匹配类型 特点: 将数…