选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用 Amazon Textract 从 PDF 文件中自动提取内容

聚焦模式
使用 Amazon Textract 从 PDF 文件中自动提取内容 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

由 Tianxia Jia (AWS) 创建

摘要

许多组织需要从上传至其业务应用程序的 PDF 文件中提取信息。例如,组织可能需要准确地从税务或医疗 PDF 文件中提取用于税务分析或医疗索赔处理的信息。

在 Amazon Web Services (AWS) Cloud 上,Amazon Textract 会自动从 PDF 文件中提取信息(例如已打印文本、表单和表格),并生成包含原始 PDF 文件信息的 JSON 格式文件。您可以在 AWS 管理控制台 中使用 Amazon Textract,也可以通过 API 调用使用。建议使用编程 API 调用来扩展和自动处理大量 PDF 文件。

当 Amazon Textract 处理文件时,它会创建以下 Block 对象列表:页面、文本行和单词、表单(键值对)、表格和单元格以及选择元素。还包括其他对象信息,例如边界框、置信区间和关系。 IDsAmazon Textract 将提取字符串形式的内容信息。需要正确识别和转换数据值,以便下游应用程序更轻松的使用。 

此模式描述了使用 Amazon Textract 自动从 PDF 文件中提取内容并将其处理成干净输出 step-by-step的工作流程。此模式使用模板匹配技术正确识别必填字段、密钥名称和表,然后对每种数据类型进行后期处理更正。您可以使用此模式处理不同类型的 PDF 文件,然后可以扩展和自动化此工作流程,以处理相同格式的 PDF 文件。  

先决条件和限制

先决条件

  • 一个有效的 Amazon Web Services account。

  • 用于存储待转换为 JPEG 格式以供 Amazon Textract 处理的 PDF 文件的现有 Amazon Simple Storage Service(Amazon S3) 存储桶。有关 S3 存储桶的更多信息,请参阅 Amazon S3 文档中的存储桶概述

  • Textract_PostProcessing.ipynb Jupyter 笔记本(附件),已安装并配置。有关 Jupyter 笔记本的更多信息,请参阅亚马逊文档中的创建 Jupyter 笔记本。 SageMaker

  • 格式相同的现有 PDF 文件。

  • 了解 Python。

限制

架构

此模式的工作流程是首先在示例 PDF 文件上运行 Amazon Textract(首次运行),然后在与首个 PDF 文件相同格式的 PDF 文件上运行(重复运行)。下图显示了首次运行重复运行的组合工作流程,该工作流程自动重复地从相同格式的 PDF 文件中提取内容。

使用 Amazon Textract 从 PDF 文件中提取内容

图表显示了此模式的以下工作流程:

  1. 将 PDF 文件转换为 JPEG 格式,并将其存储在 S3 存储桶中。 

  2. 调用 Amazon Textract API 并解析 Amazon Textract 响应 JSON 文件。 

  3. 通过为每个必填字段添加正确的 KeyName:DataType 对编辑 JSON 文件。为重复运行阶段创建 TemplateJSON 文件。

  4. 为每种数据类型(例如浮点数、整数和日期)定义后处理校正函数。

  5. 准备与首个 PDF 文件格式相同的 PDF 文件。

  6. 调用 Amazon Textract API 并解析 Amazon Textract 响应 JSON。

  7. 将已解析 JSON 文件与 TemplateJSON 文件相匹配。

  8. 实施后期处理校正。

最终的 JSON 输出文件包含了每个必需字段的正确 KeyNameValue

目标技术堆栈

  • Amazon SageMaker 

  • Amazon S3 

  • Amazon Textract

自动化和扩缩

您可以使用 AWS Lambda 函数自动执行重复运行工作流程,该函数会在新的 PDF 文件添加至 Amazon S3 中时启动 Amazon Textract。然后,Amazon Textract 会运行处理脚本,并将最终输出保存至存储位置。有关这方面的更多信息,请参阅 Lambda 文档中的使用 Amazon S3 触发器调用 Lambda 函数

工具

  • Amazon SageMaker 是一项完全托管的机器学习服务,可帮助您快速轻松地构建和训练机器学习模型,然后将其直接部署到可用于生产的托管环境中。

  • Amazon Simple Storage Service (Amazon S3) 是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。

  • Amazon Textract 可以轻松地将文档文本检测和分析添加至您的应用程序。

操作说明

Task描述所需技能

转换 PDF 文件。

为首次运行准备 PDF 文件,方式为将 PDF 文件拆分为单页,并将其转换为适合 Amazon Textract 同步操作(Syn API)的 JPEG 格式。

注意

您也可以对多页 PDF 文件使用 Amazon Textract 异步操作 (Asyn API)。

数据科学家,开发人员

解析 Amazon Textract 响应 JSON。

打开 Textract_PostProcessing.ipynb Jupyter 笔记本(附件),然后使用以下代码调用 Amazon Textract API:

response = textract.analyze_document( Document={ 'S3Object': { 'Bucket': BUCKET, 'Name': '{}'.format(filename) } }, FeatureTypes=["TABLES", "FORMS"])

使用以下代码将响应 JSON 解析为表单与表格:

parseformKV=form_kv_from_JSON(response) parseformTables=get_tables_fromJSON(response)
数据科学家,开发人员

编辑 TemplateJSON 文件。

对每个 KeyName 和对应的 DataType 编辑已解析的 JSON(例如:字符串、浮点、整数或日期)以及表格标题(例如 ColumnNamesRowNames)。

此模板用于每种单独的 PDF 文件类型,这意味着该模板可重复用于相同格式的 PDF 文件。

数据科学家,开发人员

定义后处理校正函数。

Amazon Textract 对 TemplateJSON 文件的响应中的值为字符串。日期、浮点数、整数或货币无区别。必须将这些值转换至适合下游用例的正确数据类型。 

使用以下代码根据 TemplateJSON 文件更正每种数据类型:

finalJSON=postprocessingCorrection(parsedJSON,templateJSON)
数据科学家,开发人员

首次运行

Task描述所需技能

转换 PDF 文件。

为首次运行准备 PDF 文件,方式为将 PDF 文件拆分为单页,并将其转换为适合 Amazon Textract 同步操作(Syn API)的 JPEG 格式。

注意

您也可以对多页 PDF 文件使用 Amazon Textract 异步操作 (Asyn API)。

数据科学家,开发人员

解析 Amazon Textract 响应 JSON。

打开 Textract_PostProcessing.ipynb Jupyter 笔记本(附件),然后使用以下代码调用 Amazon Textract API:

response = textract.analyze_document( Document={ 'S3Object': { 'Bucket': BUCKET, 'Name': '{}'.format(filename) } }, FeatureTypes=["TABLES", "FORMS"])

使用以下代码将响应 JSON 解析为表单与表格:

parseformKV=form_kv_from_JSON(response) parseformTables=get_tables_fromJSON(response)
数据科学家,开发人员

编辑 TemplateJSON 文件。

对每个 KeyName 和对应的 DataType 编辑已解析的 JSON(例如:字符串、浮点、整数或日期)以及表格标题(例如 ColumnNamesRowNames)。

此模板用于每种单独的 PDF 文件类型,这意味着该模板可重复用于相同格式的 PDF 文件。

数据科学家,开发人员

定义后处理校正函数。

Amazon Textract 对 TemplateJSON 文件的响应中的值为字符串。日期、浮点数、整数或货币无区别。必须将这些值转换至适合下游用例的正确数据类型。 

使用以下代码根据 TemplateJSON 文件更正每种数据类型:

finalJSON=postprocessingCorrection(parsedJSON,templateJSON)
数据科学家,开发人员
Task描述所需技能

准备 PDF 文件。

准备 PDF 文件,方式为将 PDF 文件拆分为单页,并将其转换为适合 Amazon Textract 同步操作 (Syn API) 的 JPEG 格式。

注意

您也可以对多页 PDF 文件使用 Amazon Textract 异步操作 (Asyn API)。

数据科学家,开发人员

调用 Amazon Textract API。

使用以下代码调用 Amazon Textract API:

response = textract.analyze_document( Document={ 'S3Object': { 'Bucket': BUCKET, 'Name': '{}'.format(filename) } }, FeatureTypes=["TABLES", "FORMS"])
数据科学家,开发人员

解析 Amazon Textract 响应 JSON。

使用以下代码将响应 JSON 解析为表单与表格:

parseformKV=form_kv_from_JSON(response) parseformTables=get_tables_fromJSON(response)
数据科学家,开发人员

加载 templateJSON 文件并使其与已解析 JSON 匹配。

通过以下命令使用 TemplateJSON 文件提取正确的键值对和表:

form_kv_corrected=form_kv_correction(parseformKV,templateJSON) form_table_corrected=form_Table_correction(parseformTables, templateJSON) form_kv_table_corrected_final={**form_kv_corrected , **form_table_corrected}
数据科学家,开发人员

后期处理校正。

TemplateJSON 文件和后处理功能中使用 DataType,以使用以下代码校正数据: 

finalJSON=postprocessingCorrection(form_kv_table_corrected_final,templateJSON)
数据科学家,开发人员

重复运行

Task描述所需技能

准备 PDF 文件。

准备 PDF 文件,方式为将 PDF 文件拆分为单页,并将其转换为适合 Amazon Textract 同步操作 (Syn API) 的 JPEG 格式。

注意

您也可以对多页 PDF 文件使用 Amazon Textract 异步操作 (Asyn API)。

数据科学家,开发人员

调用 Amazon Textract API。

使用以下代码调用 Amazon Textract API:

response = textract.analyze_document( Document={ 'S3Object': { 'Bucket': BUCKET, 'Name': '{}'.format(filename) } }, FeatureTypes=["TABLES", "FORMS"])
数据科学家,开发人员

解析 Amazon Textract 响应 JSON。

使用以下代码将响应 JSON 解析为表单与表格:

parseformKV=form_kv_from_JSON(response) parseformTables=get_tables_fromJSON(response)
数据科学家,开发人员

加载 templateJSON 文件并使其与已解析 JSON 匹配。

通过以下命令使用 TemplateJSON 文件提取正确的键值对和表:

form_kv_corrected=form_kv_correction(parseformKV,templateJSON) form_table_corrected=form_Table_correction(parseformTables, templateJSON) form_kv_table_corrected_final={**form_kv_corrected , **form_table_corrected}
数据科学家,开发人员

后期处理校正。

TemplateJSON 文件和后处理功能中使用 DataType,以使用以下代码校正数据: 

finalJSON=postprocessingCorrection(form_kv_table_corrected_final,templateJSON)
数据科学家,开发人员

相关资源

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。