Amazon Textract 是一项机器学习(ML)服务,可自动从扫描文档中提取文本、手写内容和数据。
它超越了简单的光学字符识别(OCR),能够识别、理解并从表单和表格中提取数据。如今,许多公司仍手动从扫描文档(如 PDF、图像、表格和表单)中提取数据,或通过需要手动配置的简单 OCR 软件(通常必须在表单更改时更新)进行提取。为了克服这些手动且成本高昂的流程,Textract 利用机器学习来读取和处理任何类型的文档,无需人工干预即可准确提取文本、手写内容、表格和其他数据。
Textract 支持 JPEG、PNG、PDF 和 TIFF 文件格式;更多信息请参阅文档。
以下示例展示了将 Amazon Textract 与 LangChain 结合使用作为 DocumentLoader 的方法。
示例 1:从本地文件加载
第一个示例使用本地文件,该文件将在内部发送到 Amazon Textract 同步 API DetectDocumentText。 对于 Textract,本地文件或 HTTP:// 等 URL 端点仅限于单页文档。 多页文档必须存储在 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 链中使用 AmazonTextractPDFLoader(例如 OpenAI)
AmazonTextractPDFLoader 可以像其他加载器一样在链中使用。 Textract 本身具有查询功能,它提供了与本示例中 QA 链类似的功能,也值得一试。Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

