一张纸质文档上的文字内容如何提取进去?拍照,对照片应用光学字符识别(OCR)软件进行辨认,很容易就能够搞定。
然而,同样一张纸质文档上的文字,如何让计算机程序了解其中所蕴含的内容?单凭 OCR 就不行了,这时候须要用到自然语言解决和实体提取技术。
Amazon Textract 是一项机器学习(ML)服务,可能轻松从各类文档扫描件中提取文本与数据。Textract 超过了简略的 OCR 来辨认表单中的字段内容和表中存储的信息。基于此,大家能够应用 Amazon Textract 即时「读取」简直任何类型的文档,并在无需任何人工或代码编写的前提下精确提取其中的文本与数据。
Amazon Textract 在各个领域中领有诸多理论利用。例如,人才治理企业能够应用 Amazon Textract 对候选人的技能集进行自动化提取,医疗保健组织则可从文档中疾速提取患者信息以满足医疗需要等。
在组织解决各类文档时,往往要求咱们从文档中的非结构化文本处提取实体。例如,合同文档中可能蕴含大量文本段落,其中的名词与合同条款以自然语言模式间接列出,而非如表格数据般具备清晰的键 / 值或表单构造。Amazon Comprehend 是一项自然语言解决(NLP)服务,可能从非结构化文本当中提取关键性短语、地点、名称、组织、事件以及情感等。应用自定义实体辨认,大家能够将并未事后受到反对的新实体类型划归至预设的通用实体类型当中,借此依据特定业务提取实体以满足理论需要。
在本文中,咱们将展现如何应用 Amazon Textract 与 Amazon Comprehend 从文档扫描件中提取自定义实体。
用例概述
在本文中,咱们将对 Resume Entities for NER 数据集中的简历文档进行解决,提取其中的实体,并尝试以自动化形式实现整个流程以取得多种洞察见解,例如候选人把握的具体技能等。咱们应用 Amazon Textract 从这些简历中提取文本,并应用 Amazon Comprehend 自定义实体性能,将 AWS、C 以及 C ++ 等技能辨认为自定义实体。以下截屏所示,为示例输出文档。
以下截屏所示,为应用 Amazon Textract 与 Amazon Comprehend 生成的相应输入。
解决方案概述
下图所示,为一套无服务架构解决方案。该架构可能解决传入文档,应用 Amazon Textract 进行自定义实体提取,并应用 Amazon Comprehend 对自定义模型进行训练。在将文档上传至 Amazon Simple Storage Service (Amazon S3) 存储桶时,即会触发对应的 AWS Lambda 函数。该函数将调用 Amazon Textract DetectDocumentText API 以提取文本,并应用提取到的文本内容调用以进一步检测其中的自定义实体。
整个解决方案分为两个局部:
- 训练:
- 应用 Amazon Textract 从 PDF 文档中提取文本
- 应用 Amazon SageMaker Ground Truth 标记后果数据
- 应用 Amazon Comprehend 配合标记数据进行自定义实体辨认训练
- 推理:
- 向 Amazon Textract 发送文档以进行数据提取
- 将提取到的数据发送至 Amazon Comprehend 自定义模型以进行实体提取
启动 AWS CloudFormation 堆栈
在本文中,咱们将应用 AWS CloudFormation 堆栈部署解决方案,并创立计划中所须要的各项资源,具体包含 S3 存储桶、Amazon SageMaker 实例以及必要的 AWS 身份与拜访治理(AWS Identity and Access Management,简称 IAM)角色。对于各栈的更多详细信息,请参阅演练:堆栈更新。
- 下载相应 CloudFormation 模板并将其保留在您的本地磁盘上。
- 应用 IAM 用户名与明码登录至 AWS 治理控制台。
- 在 AWS CloudFormation 管制台上,抉择 Create Stack。
或者也能够间接抉择 Launch Stack 以启动该栈。
- 在 Create Stack 页面上,抉择 Upload a template file 并上传咱们之前下载实现的 CloudFormation 模板。
- 抉择 Next。
- 在下一页面中,为该堆栈输出名称。
- 其余各项皆保留默认设置。
- 在 Review 页面中,抉择 I acknowledge that AWS CloudFormation might create IAM resources with custom names(我已知悉 AWS CloudFormation 可能应用自定义名称创立 IAM 资源)。
- 抉择 Create stack。
- 期待该堆栈实现运行。
大家能够在 Events 选项卡的堆栈创立流程局部,查看各类事件。堆栈创立实现之后,请查看 Resources 选项卡以查看 AWS CloudFormation 模板创立的所有资源。
- 在 CloudFormation 栈的 Outputs 选项卡局部,记录 Amazon SageMaker 实例 URL。
在 Jupyter notebook 上运行工作流
要运行工作流,请实现以下操作步骤:
- 关上在上一步中保留的 Amazon SageMaker 实例 URL。
- 在 New 下拉菜单中,抉择 Terminal。
- 在终端内,克隆 GitHub cd Sagemaker; git clone URL。
到这里,将看到如以下截屏所示的文件夹构造。
- 关上 Textract_Comprehend_Custom_Entity_Recognition.ipynb。
- 运行各 Notebook 单元。
代码演练
将所有文档上传至 S3 存储桶。
当初各 PDF 曾经准备就绪,可供 Amazon Textract 执行 OCR 解决。通过 StartDocumentTextDetection 异步 API 调用启动解决流程。
在本文中,咱们受篇幅所限,仅展现两份 PDF 格局的简历。如果须要,能够应用全副 220 份简历。咱们曾经将所有简历解决实现,供您间接参考。
要应用 Amazon Comprehend 训练自定义实体辨认模型,那么与任何模型训练工作一样,训练数据都是必不可少的前提条件。在本文中,咱们应用 Ground Truth 标记咱们的实体。在默认状况下,Amazon Comprehend 可能辨认诸如人员、职务以及组织之类的实体。对于更多详细信息,请参阅检测实体。为了展现自定义实体辨认性能,咱们将重点关注简历中的候选人技能实体。Ground Truth 曾经提供短缺的标记数据,大家能够通过 GitHub repo 间接获取这部分数据(详见 enity_list.csv 文件)。对于标记数据的操作阐明,请参阅应用 Amazon SageMaker Ground Truth 与 Amazon Comprehend 开发 NER 模型。
当初,咱们曾经把握了原始数据与标记数据,能够开始训练模型了。要启动此流程,可应用 create_entity_recognizer API 调用。提交训练作业之后,能够在 Amazon Comprehend 管制台上看到正在训练的识别器。
在训练过程中,Amazon Comperhend 会保留一部分数据作为测试素材。在识别器训练实现之后,大家还能够查看各实体的辨认性能以及识别器本身的整体性能程度。
咱们筹备了局部文本样本,用于测试刚刚训练实现的自定义实体识别器。咱们通过雷同的步骤执行 OCR,而后将 Amazon Textract 输入上传至 Amazon S3,并启动自定义识别器作业。
在提交作业后,能够在 Amazon Comprehend 控制台的 Analysis Jobs 之下查看剖析进度。
剖析作业实现后,能够下载输入并查看后果。在本文的示例中,咱们将 JSON 后果转换为表格模式以进步可读性。
总结
机器学习与人工智能可能极大晋升组织的麻利程度,将本来只能手动实现的工作转为自动化流程,借此加强执行效率。在本文中,咱们演示了一套端到端架构,可通过 Amazon Textract 与 Amazon Comprehend 提取候选人技能等自定义实体。本文还将大家解说了如何应用 Amazon Textract 进行数据提取,以及如何应用 Amazon Comprehend 通过自有数据集训练自定义实体识别器,并借此实现自定义实体辨认。这一流程能够广泛应用于各个行业,例如医疗保健与金融服务等。
要理解对于 Amazon Textract 提供的各项文本与数据提取性能的更多详细信息,请参阅 Amazon Textract 工作原理解读。