Amazon Textract 是一种机器学习 (ML) 服务,可自动从扫描文档中提取文本、手写内容和数据。 它超越了简单的光学字符识别 (OCR),能够识别、理解并从表格和表单中提取数据。如今,许多公司手动从 PDF、图像、表格和表单等扫描文档中提取数据,或者通过需要手动配置(并且在表单更改时通常必须更新)的简单 OCR 软件进行提取。为了克服这些手动且昂贵的过程,Textract 利用机器学习来读取和处理任何类型的文档,无需人工干预即可准确提取文本、手写内容、表格和其他数据。
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 并将其传递给加载器,以确保 Textract 是从 us-east-2 调用的。您也可以让您的笔记本在 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 链类似的功能,也值得一试。以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。