Unstructured - 提取非结构化数据

本文介绍了Unstructured库,一个用于提取和预处理图像和文本文档的开源工具,包括其核心概念、安装方法、Docker使用示例以及PDF文档解析。此外,还提到了Chipper模型的beta测试版和安装依赖库的详细步骤。

在这里插入图片描述


一、关于 Unstructured


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.git

make install

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

make install-local-inference

安装依赖库

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

  • 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 partition

elements = 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 partition

elements = 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 Analysis

Zejiang 
...  image classification [11,

2024-04-10(三)

### Dify UNSTRUCTURED 功能 Dify UNSTRUCTURED 主要用于文档解析服务,能够将非结构化数据(如PDF、Word文档、Excel表格等)转换为结构化数据,以便进一步处理和分析。这一功能在数据预处理阶段尤为重要,特别是在需要从大量文档提取有用信息的场景中[^2]。 ### 使用方法 在使用 Dify UNSTRUCTURED 时,可以通过 Helm 图表进行配置,特别是在资源受限的环境中,可以直接配置云端端点。例如,在 `values.yaml` 文件中,可以设置如下配置: ```yaml api: extraEnv: - name: ETL_TYPE value: "Unstructured" - name: UNSTRUCTURED_API_URL value: "https://api.unstructured.io/general/v0/general" - name: UNSTRUCTURED_API_KEY valueFrom: secretKeyRef: name: dify-secrets key: unstructured-api-key ``` 此配置确保了 Dify API Pod 能够访问 Unstructured 服务端点,并且使用 Kubernetes Secret 存储 API 密钥以提高安全性[^1]。 ### 技术细节 在部署 Dify UNSTRUCTURED 时,需要注意以下技术细节: - **网络策略**:确保 Dify API Pod 能够访问 Unstructured 服务端点。 - **版本兼容性**:Unstructured API 的版本需与 Dify 要求的接口规范相匹配。 - **性能调优**:根据文档处理量调整副本数量和资源限制。 - **密钥管理**:建议使用 Kubernetes Secret 存储 API 密钥[^1]。 此外,Dify 的安装过程包括输入访问域名(或服务器 IP),设置管理员邮箱和密码。脚本会自动配置并启动包括 Dify API 和 Web 界面、PostgreSQL(数据库)、Redis(缓存)、Weaviate(向量数据库)以及 Unstructured文档解析服务)在内的多个服务[^2]。 企业可以根据自身的业务需求,通过外包驻场开发或使用 Dify 等工具进行工作流编排来解决应用问题[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值