Amazon Textract 是一项机器学习 (ML) 服务,可自动从扫描文档中提取文本、手写内容和数据。
它超越了简单的光学字符识别 (OCR),能够识别、理解并从表单和表格中提取数据。如今,许多公司手动从扫描文档(如 PDF、图像、表格和表单)中提取数据,或通过需要手动配置的简单 OCR 软件(通常在表单更改时必须更新)。为了克服这些手动且昂贵的过程,Textract 使用 ML 来读取和处理任何类型的文档,无需人工干预即可准确提取文本、手写内容、表格和其他数据。
Textract 支持 JPEG、PNG、PDF 和 TIFF 文件格式;更多信息请参阅文档。
以下示例演示了如何将 Amazon Textract 与 LangChain 结合作为 DocumentLoader 使用。
示例 1:从本地文件加载
第一个示例使用本地文件,该文件将在内部通过 Amazon Textract 同步 API DetectDocumentText 发送。 本地文件或 HTTP:// 等 URL 端点对于 Textract 仅限于单页文档。 多页文档必须存储在 S3 上。此示例文件是 jpeg。示例 2:从 URL 加载
下一个示例从 HTTPS 端点加载文件。 它必须是单页的,因为 Amazon Textract 要求所有多页文档都存储在 S3 上。示例 3:加载多页 PDF 文档
处理多页文档要求文档位于 S3 上。示例文档位于 us-east-2 存储桶中,且 Textract 需要在同一区域调用才能成功,因此我们在客户端设置 region_name 并将其传递给加载器,以确保从 us-east-2 调用 Textract。您也可以在 us-east-2 运行笔记本,将 AWS_DEFAULT_REGION 设置为 us-east-2,或者在不同环境中运行时,传递具有该区域名称的 boto3 Textract 客户端,如下方单元格所示。示例 4:自定义输出格式
当 Amazon Textract 处理 PDF 时,它会提取所有文本,包括页眉、页脚和页码等元素。这些额外信息可能“嘈杂”并降低输出的有效性。 将文档的二维布局转换为干净的一维文本字符串的过程称为线性化。 AmazonTextractPDFLoader 通过linearization_config 参数让您精确控制此过程。您可以使用它来指定从最终输出中排除哪些元素。
以下示例显示如何隐藏页眉、页脚和图形,从而生成更干净的文本块,有关更高级的用例,请参阅此 AWS 博客文章。
在 LangChain 链(例如 OpenAI)中使用 AmazonTextractPDFLoader
AmazonTextractPDFLoader 可以与其他加载器相同的方式在链中使用。 Textract 本身具有 Query 功能,它提供与此示例中 QA 链类似的功能,也值得一看。连接这些文档 到 Claude、VSCode 等,通过 MCP 获取实时答案。

