Unstructured - 提取非结构化数据

在这里插入图片描述

文章目录

    • 一、关于 Unstructured
      • 核心概念
        • 🚀 Beta 功能:Chipper 模型
    • 二、安装
      • 方式一:使用 PYPI
      • 方式二:使用源码本地安装
      • 安装依赖库
      • 测试
    • 三、在Docker运行库
      • 添加shell
      • 构建自己的 Docker image
      • 交互运行
    • 四、PDF文档解析示例


一、关于 Unstructured

  • 官网:https://unstructured.io
  • github : https://github.com/Unstructured-IO/unstructured
  • 文档:https://unstructured-io.github.io/unstructured/
  • API 服务:https://unstructured-io.github.io/unstructured/api.html
    https://unstructured.io/api-key
  • slack : https://short.unstructured.io/pzw05l7

unstructured库提供了用于 提取和预处理 图像和文本文档(例如 PDF、HTML、Word 文档等)的开源组件。
unstructured模块化功能 和 连接器形成一个内聚系统,简化了数据提取和预处理,使其能够适应不同的平台,并有效地将非结构化数据转换为结构化输出。


核心概念

unstructured库包含用于 NLP 任务的分区、分块、清理和暂存原始文档的核心功能。
您可以从核心功能文档中查看可用函数的完整列表 以及如何使用它们。


一般来说,这些功能分为几类:

  • 分区 Partitioning 将原始文档分解为标准的结构化元素。
  • 清理 Cleaning 从文档中删除不需要的文本,例如样板文件和句子片段。
  • 暂存 Staging 函数格式化下游任务的数据,例如 ML 推理和数据标记。
  • 分块 Chunking 功能将文档分割成更小的部分,以便在 RAG 应用程序和相似性搜索中使用。
  • 嵌入Embedding 编码器类提供了一个接口,可以轻松地将预处理的文本转换为向量。

Connectors 🔗是unstructured预处理管道 和 各种数据存储平台 之间的重要链接。
它们允许跨各种来源(包括云服务、存储库和本地目录)对文档进行批处理。
每个连接器都是针对特定平台(例如 Azure、Google Drive 或 Github)量身定制的,并附带独特的命令和依赖项。

要查看库中可用的连接器列表unstructured,请查看连接器 GitHub 文件夹 和 文档


🚀 Beta 功能:Chipper 模型

我们正在发布 Chipper 模型的测试版,以在处理高分辨率、复杂文档时提供卓越的性能。
要开始在 API 请求中使用 Chipper 模型,您可以使用 hi_res_model_name=chipper 参数。
文档:https://unstructured-io.github.io/unstructured/api.html#beta-version-hi-res-strategy-with-chipper-model


二、安装

方式一:使用 PYPI

支持所有文档

pip install "unstructured[all-docs]" 

支持不需要额外以来的文档类型,如 plain text files, HTML, XML, JSON and Emails

pip install unstructured

需要支持额外文档

pip install "unstructured[docx,pptx]"

方式二:使用源码本地安装

此处默认你已经安装python 并有 env

git clone https://github.com/Unstructured-IO/unstructured.gitmake install

如果要安装用于 本地处理图像 和 PDF 的模型 和 依赖项

make install-local-inference
  • 对于处理图像文件,tesseract是必需的。详见:https://tesseract-ocr.github.io/tessdoc/Installation.html
  • 对于处理 PDF 文件,tesseractpoppler是必需的。pdf2image 文档 包含poppler有关跨各种平台安装的说明。

安装依赖库

以下系统依赖项根据需要安装

  • libmagic-dev(文件类型检测)
  • poppler-utils(图像和 PDF)
  • tesseract-ocr(图像和 PDF,安装tesseract-lang以获得其他语言支持)
  • libreoffice(微软 Office 文档)
  • pandoc(EPUB、RTF 和 Open Office 文档)。请注意,要处理 RTF 文件,您需要版本2.14.2或更新版本。运行make install-pandoc./scripts/install-pandoc.sh将为您安装正确的版本。
  • 有关如何在 Windows 上安装的建议以及了解其他功能的依赖关系,请参阅此处的安装文档。

测试

此时,您应该能够运行以下代码:

from unstructured.partition.auto import partitionelements = partition(filename="example-docs/eml/fake-email.eml")
print("\n\n".join([str(el) for el in elements]))

三、在Docker运行库

以下说明旨在帮助您启动并运行使用 Docker 来与unstructured
如果您的计算机上尚未安装 docker,请参阅 https://blog.csdn.net/lovechris00/article/details/122121369

注意:我们构建多平台映像来支持 x86_64 和 Apple 芯片硬件。
docker pull应下载适合您的架构的相应映像,但如果需要,您可以使用--platform(eg --platform linux/amd64) 指定。

我们为所有推送构建 Docker 镜像main
我们用相应的 short commit hash(例如fbc7a69)和应用程序版本(例如0.5.5-dev1)来标记每个镜像。
我们还用 标记最新的镜像latest
要利用这一点,docker pull请从我们的镜像存储库中获取。

docker pull downloads.unstructured.io/unstructured-io/unstructured:latest

添加shell

拉取后,您可以从此映像创建一个容器并为其添加 shell。

# create the container
docker run -dt --name unstructured downloads.unstructured.io/unstructured-io/unstructured:latest# this will drop you into a bash shell where the Docker image is running
docker exec -it unstructured bash

构建自己的 Docker image

您还可以构建自己的 Docker 镜像。

如果您只计划解析一种类型的数据,您可以通过注释掉其他数据类型所需的一些包/要求来加快构建映像的速度。
请参阅 Dockerfile 以了解您的用例需要哪些行。

make docker-build# this will drop you into a bash shell where the Docker image is running
make docker-start-bash

交互运行

一旦进入正在运行的容器,您就可以直接在 Python 解释器的交互模式下进行尝试。

# this will drop you into a python console so you can run the below partition functions
python3>>> from unstructured.partition.pdf import partition_pdf
>>> elements = partition_pdf(filename="example-docs/layout-parser-paper-fast.pdf")>>> from unstructured.partition.text import partition_text
>>> elements = partition_text(filename="example-docs/fake-text.txt")

四、PDF文档解析示例

以下示例展示了如何开始使用该unstructured库。
一行代码即可解析十多种文档类型!
你可以使用此Colab 笔记本运行下面的示例。

解析非结构化文档的最简单方法是,使用 partition函数。
如果您使用partition函数,unstructured将检测文件类型并将其路由到适当的文件特定分区函数。
如果您正在使用partition功能,您可能需要通过安装附加参数

pip install unstructured[local-inference]

确保您首次使用此处libmagic列出的说明进行安装时将始终应用默认参数。
如果您需要高级功能,请使用特定于文档的分区功能。

from unstructured.partition.auto import partitionelements = partition("example-docs/layout-parser-paper.pdf")

运行print("\n\n".join([str(el) for el in elements]))以获取输出的字符串表示形式,如下所示:

LayoutParser : A Unified Toolkit for Deep Learning Based Document Image AnalysisZejiang 
...  image classification [11,

2024-04-10(三)

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

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

相关文章

【随笔】Git 高级篇 -- 快速定位分支 ^|~(二十三)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

关于鸿蒙HarmonyOS,现在关注什么可以更高效

对于移动端来讲,今年最火的关键词除了裁员,我想就是鸿蒙HarmonyOS了。其实鸿蒙的推出也给安卓端的同学提供了职业发展的新路径或方向。 鸿蒙,原本源自中国神话传说的名字,如今已成为了科技领域的焦点,招聘网站上也出现…

【C语言】C语言题库【附源码+持续更新】

欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 目录 1、练习2-1 Programming in C is fun! 2、练习2-3 输出倒三角图案 3、练习2-4 温度转换 4、练习2-6 计算物体自由下落的距离 5、练习2-8 计算摄氏温度 6、练习2-9 整数四则运算 7、练习2-10 计算分段函数[1…

ELFK (Filebeat+ELK)日志分析系统

一. 相关介绍 Filebeat:轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进或是直接发给 Elasticsearch 存储,性能上相…

【计算机毕业设计】网上宠物商店管理系统——后附源码

🎉**欢迎来到我的技术世界!**🎉 📘 博主小档案: 一名来自世界500强的资深程序媛,毕业于国内知名985高校。 🔧 技术专长: 在深度学习任务中展现出卓越的能力,包括但不限于…

DSP笔记8-通用GPIO

电源类 AD引脚类 系统相关JTAG 时钟 GPIO (general purpose input output)复用, 复用,I/O引脚,外设的功能引脚, 88个GPIO引脚,通用的输入输出口,功能复用的。 GPIO特点 输入电平与TTL电平兼容。>2.0V…

Redis(Windows版本下载安装和使用)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

使用aspose相关包将excel转成pdf 并导出

SpringBoot 项目 基于aspose相关jar包 将excel 转换成pdf 导出 1、依赖的jar包 &#xff0c; jar获取链接 aspose相关三方jar &#xff0c;下载解压后,在项目路径下建一个libs包&#xff0c;然后将下图两个jar 拷贝至刚新建的libs目录中 2、pom.xml中加入maven引入 <depend…

电脑与多台罗克韦尔AB PLC无线通讯的搭建方法分为几步?

在实际系统中&#xff0c;同一个车间里分布多台PLC&#xff0c;通过上位机集中控制。通常所有设备距离在几十米到上百米不等。在有通讯需求的时候&#xff0c;如果布线的话&#xff0c;工程量较大耽误工期&#xff0c;这种情况下比较适合采用无线通信方式。本方案以组态王和2台…

Logistic 回归为什么适用于二分类问题?

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ Logistic 回归非常适用于二分类问题的主要原因在于它的核心机制和输出特性。首先&#xff0c;Logistic 回归模型基于概率的理念&#xff0c;通过 Sigmoid 函数转换输入特征的线性组合&#xff0c;将任意…

Power Automate custom connector创建示例2-1

一、open power automate custom connector list&#xff1a; Microsoft Power Automate 二、edit custom connector info Authentication type have 4 choice. The example I tested requires Authorization validation, so I chose API Key.

每日一读|经典美文摘抄——等待

等待&#xff0c;是我们和时间的一场博弈。我们凭借着智慧和耐力&#xff0c;与未来做一个交换。 等待的不可知性&#xff0c;是一份考验&#xff0c;一天一天&#xff0c;一步一步走向希望&#xff0c;或者失望。 安娜•卡列尼娜呼喊着&#xff0c;“我是人&#xff0c;我要生…

工业垃圾打包机液压比例阀放大器

液压打包机的种类很多&#xff0c;我们生活中常见的是废纸打包机、金属打包机、纸箱打包机、玉米茎打包机等。然而&#xff0c;牙齿所有的打包机都有他的不同用法。除了我们生活中常见的以外&#xff0c;还有很多其他种类的打包机。让我介绍几件事。一种是捆 绑式打包机设备&am…

QT——第一个项目(HelloWorld)

QT——第一个项目&#xff08;HelloWorld&#xff09; 通过控件创建通过代码的方式实现对象树自己观察 我们之前对QT有了一定的了解&#xff0c;今天我们要用QT来写一段经典代码&#xff1a;HelloWorld。如果还没有看过前两次QT初识的小伙伴可以点击这里&#xff1a; https://b…

CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

沉浸又护眼!观影爱好者的最佳CP“星光S1”4月6日开售

据悉&#xff0c;海信激光电视将在4月6日举行线上发布会。除3月已经开售、配备可折叠屏幕的星光S1 100英寸外&#xff0c;本次发布会还将发布星光S1 75英寸、80英寸、88英寸全系版本&#xff0c;为不同用户实现院线级家庭观影体验。 高色域&#xff0c;一直是新一代显示技术的…

LeetCode - 1702. 修改后的最大二进制字符串

文章目录 解析AC CODE 题目链接&#xff1a;LeetCode - 1702. 修改后的最大二进制字符串 解析 详细题解&#xff1a;贪心&#xff0c;简洁写法&#xff08;Python/Java/C/Go/JS/Rust&#xff09; 思路很牛b。 简单来说我们需要想办法将0配对&#xff0c;将其变为10&#xff0…

K8S:常用资源对象操作

文章目录 一、使用Replication Controller(RC)、Replica Set(RS) 管理Pod1 Replication Controller&#xff08;RC&#xff09;2 Replication Set&#xff08;RS&#xff09; 二、Deployment的使用1 创建2 滚动升级3 回滚Deployment三、 Pod 自动扩缩容HPA1 使用kubectl autosc…

React + three.js 3D模型骨骼绑定

系列文章目录 React 使用 three.js 加载 gltf 3D模型 | three.js 入门React three.js 3D模型骨骼绑定 项目代码(github)&#xff1a;https://github.com/couchette/simple-react-three-skeleton-demo 项目代码(gitcode)&#xff1a;https://gitcode.com/qq_41456316/simple-r…

spring(7)-事务

事务 1、 事务概述2、spring对事务的支持2.1 spring事务管理API2.2 事务属性2.2.1 事务传播行为2.2.2 案例2.2.2.1 REQUIRED2.2.2.2 REQUIRES_NEW2.2.2.3 NESTED 2.2.3 事务隔离行为2.2.3.1 测试2.2.3.2 读未提交2.2.3.3 读提交2.2.3.4 可重复读 2.2.4 事务超时2.2.5 只读事务2…