非结构化数据的开源预处理工具
unstructured-inference
仓库包含用于版面解析模型的托管推理代码。这些模型通过 API 作为 unstructured
包中分区模块的一部分被调用。
安装
包
运行 pip install unstructured-inference
。
Detectron2
使用 layoutparser 模型库 中的模型需要 Detectron2,但它不会随本包自动安装。 对于 MacOS 和 Linux,可以从源代码构建:
pip install 'git+https://github.com/facebookresearch/detectron2.git@57bdb21249d5418c130d54e2ebdc94dda7a4c01a'
其他安装选项可以在 Detectron2 安装指南 中找到。
Detectron2 官方不支持 Windows,但一些用户仍然可以安装它。 有关在 Windows 上安装 Detectron2 的提示,请参阅 此处 的讨论。
仓库
要安装用于开发的仓库,克隆仓库并运行 make install
以安装依赖项。
运行 make help
可查看完整的安装选项列表。
入门
要开始使用版面解析模型,请使用以下命令:
from unstructured_inference.inference.layout import DocumentLayout
layout = DocumentLayout.from_file("sample-docs/loremipsum.pdf")
print(layout.pages[0].elements)
一旦模型检测到版面并对文档进行 OCR 处理,将显示从样本文档第一页提取的文本。
你可以通过运行 .to_dict()
方法将给定元素转换为 dict
。
模型
推理流程通过使用检测模型在文档页面中查找文本元素,然后使用直接提取(如果可用)、OCR 和可选的表格推理模型提取元素内容来运作。
我们提供几种检测模型,包括 Detectron2 和 YOLOX。
使用非默认模型
进行推理时,可以通过 model
参数将替代模型传递给摄取方法。get_model
函数可用于从关键词构建我们的开箱即用模型,例如:
from unstructured_inference.models.base import get_model
from unstructured_inference.inference.layout import DocumentLayout
model = get_model("yolox")
layout = DocumentLayout.from_file("sample-docs/layout-parser-paper.pdf", detection_model=model)
使用layoutparser模型库中的模型
unstructured_inference.modelts.detectron2
中的 UnstructuredDetectronModel
类使用在 DocLayNet 上预训练的 faster_rcnn_R_50_FPN_3x
模型,但通过使用不同的构造参数,可以使用 layoutparser
模型库 中的任何模型。UnstructuredDetectronModel
是 layoutparser
Detectron2LayoutModel
对象的轻量级包装器,接受相同的参数。详情请参阅 layoutparser 文档。
使用自己的模型
通过将模型包装在 UnstructuredObjectDetectionModel
类中,任何检测模型都可以用于 unstructured_inference
流程。要与 DocumentLayout
类集成,UnstructuredObjectDetectionModel
的子类必须有一个 predict
方法,该方法接受 PIL.Image.Image
并返回 LayoutElement
列表,以及一个 initialize
方法,用于加载模型并准备进行推理。
安全策略
有关如何报告安全漏洞的信息,请参阅我们的 安全策略。
了解更多
部分 | 描述 |
---|---|
Unstructured 社区 Github | Unstructured.io 社区项目信息 |
Unstructured Github | Unstructured.io 开源仓库 |
公司网站 | Unstructured.io 产品和公司信息 |