一张纸质文档上的文字内容如何提取进去?拍照,对照片应用光学字符识别(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工作原理解读。