使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。

使用 Amazon Comprehend 命名实体识别从保险文件中提取实体

智能文档处理 (IDP) 是 AWS 上客户的常见用例。 你可以利用 亚马逊领悟 和 亚马逊Textract 适用于文档提取、数据分类和实体提取等各种用例。 使用 IDP 的一个特定行业是保险。 他们使用 IDP 自动提取常见用例的数据,例如理赔、保单服务、报价、付款和下一个最佳操作。 但是,在某些情况下,办公室会收到一份包含复杂、无标签信息的文件。 这通常是光学字符识别 (OCR) 软件难以捕捉的,识别关系和关键实体成为一项挑战。 解决方案通常需要人工输入以确保高精度。

在这篇文章中,我们演示了如何使用 命名实体识别 (NER) 在 Amazon Comprehend 中以原生格式处理文档,以应对这些挑战。

解决方案概述

在保险场景中,保险公司可能会收到来自律师办公室的要求函。 要求信包括诸如发送信函的律师事务所、他们的客户是谁以及需要采取哪些行动来满足他们的要求等信息,如下例所示:
使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。

由于在要求信中可以找到这些信息的位置不同,这些文件通常被转发给个人理算员,他会花时间通读信函以确定进行索赔所需的所有必要信息。 文档可能有多个名称、地址和请求,每个都需要分类。 如果客户与受益人混淆,或者地址被调换,延误可能会增加,负面后果可能会影响公司和客户。 由于地址和姓名等类别之间通常存在细微差异,因此文档通常由人工处理,而不是使用 IDP 方法。

前面的示例文档有许多重叠实体值的实例(共享相似属性但不相关的实体)。 例如,律师事务所的地址与保险公司的地址或不同个人的姓名(律师姓名、受益人、保单持有人)。 此外,传统的纯文本算法可能会遗漏一些位置信息(实体在文档中的位置)。 因此,传统的识别技术可能无法满足要求。

在这篇文章中,我们使用 Amazon Comprehend 中的命名实体识别来解决这些挑战。 使用此方法的好处是自定义实体识别模型使用文本的自然语言和位置信息来准确提取在展平文档时可能会受到影响的自定义实体,如我们前面的重叠实体值示例所示。 在这篇文章中,我们使用 AWS 人工创建的人寿保险法律申请和需求书数据集,但您可以在任何可能受益于自定义 NER 训练中的空间数据的行业和文档中使用这种方法。 下图描述了解决方案架构:
使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。

我们通过以下高级步骤实施解决方案:

  1. 克隆包含示例数据集的存储库。
  2. 创建 亚马逊简单存储服务 (Amazon S3)存储桶。
  3. 创建和训练您的自定义实体识别模型。
  4. 通过运行异步批处理作业来使用模型。

先决条件

您需要完成以下先决条件才能使用此解决方案:

  1. Install 安装 Python 3.8.x。
  2. 请确保您有 安装了点子.
  3. 安装和配置AWS命令行界面 (AWS CLI)。
  4. 配置 您的 AWS 凭证。

注释您的文档

要训​​练可用于 PDF、Word 和纯文本文档的自定义实体识别模型,您需要首先使用自定义实体对 PDF 文档进行注释 亚马逊SageMaker地面真相 Amazon Comprehend 提供的注释模板。 有关说明,请参阅 自定义文档注释,用于使用 Amazon Comprehend 提取文档中的命名实体.

我们建议每个实体至少包含 250 个文档和 100 个注释,以确保高质量的预测。 有了更多的训练数据,您就更有可能生成更高质量的模型。

完成注释后,您可以训练自定义实体识别模型并使用它从 PDF、Word 和纯文本文档中提取自定义实体以进行批处理(异步)处理。

对于这篇文章,我们已经标记了我们的示例数据集,您不必对提供的文档进行注释. 但是,如果您想使用自己的文档或调整实体,则必须对文档进行注释。 有关说明,请参阅 自定义文档注释,用于使用 Amazon Comprehend 提取文档中的命名实体.

我们提取以下实体(区分大小写):

  • Law Firm
  • Law Office Address
  • Insurance Company
  • Insurance Company Address
  • Policy Holder Name
  • Beneficiary Name
  • Policy Number
  • Payout
  • Required Action
  • Sender

提供的数据集完全是人工生成的。 对姓名、地点和事件的任何提及要么是作者想象的产物,要么是虚构的。 任何与实际事件或地点或人,无论是活着的还是死去的相似之处,纯属巧合。

克隆存储库

首先通过运行以下命令克隆存储库:

git clone https://github.com/aws-samples/aws-legal-entity-extraction

存储库包含以下文件:

aws-legal-entity-extraction /source /annotations output.manifest sample.pdf bucketnamechange.py

创建一个S3存储桶

要创建用于此示例的 S3 存储桶,请完成以下步骤:

  1. 在Amazon S3控制台上,选择 水桶 在导航窗格中。
  2. 创建存储桶.
    使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。
  3. 记下您刚刚创建的存储桶的名称。

要重用我们已经为数据集制作的注释,我们必须修改 output.manifest 文件并引用我们刚刚创建的存储桶。

  1. 通过运行以下命令修改文件:
    cd aws-legal-entity-extraction
    python3 bucketnamechange.py
    Enter the name of your bucket: <Enter the name of the bucket you created>

脚本完成运行后,您会收到以下消息:

The manifest file is updated with the correct bucket

我们现在可以开始训练我们的模型了。

创建和训练模型

要开始训练您的模型,请完成以下步骤:

  1. 在 Amazon S3 控制台上,上传 /source 夹, /annotations 夹, output.manifestsample.pdf 文件。

您的存储桶应类似于以下屏幕截图。

使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。

  1. 在Amazon Comprehend控制台上, 定制 在导航窗格中,选择 自定义实体识别.
    使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。
  2. 创建新模型.
    使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。
  3. 针对 型号名称,输入名称。
  4. 针对 语言,选择 英语.
  5. 针对 自定义实体类型,添加以下区分大小写的实体:
    1. Law Firm
    2. Law Office Address
    3. Insurance Company
    4. Insurance Company Address
    5. Policy Holder Name
    6. Beneficiary Name
    7. Policy Number
    8. Payout
    9. Required Action
    10. Sender

    使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。

  6. In 数据规格,为 资料格式, 选择 增强清单 引用我们在注释文档时创建的清单。
  7. 针对 训练模型类型, 选择 PDF、Word 文档.

这指定了您用于训练和推理的文档类型。

  1. 针对 SageMaker Ground Truth 增强清单文件 S3 位置, 输入位置 output.manifest S3 存储桶中的文件。
  2. 针对 注释数据文件的 S3 前缀, 输入路径 annotations 文件夹中。
  3. 针对 源文档的 S3 前缀, 输入路径 source 文件夹中。
  4. 针对 属性名称,输入 legal-entity-label-job-labeling-job-20220104T172242.

属性名称对应于您为注释文档而创建的标签作业的名称。 对于预注释的文档,我们使用名称 legal-entity-label-job-labeling-job-20220104T172242. 如果您选择注释文档,请将此值替换为注释作业的名称。
使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。

  1. 创建一个新的 AWS身份和访问管理 (IAM) 角色,并为其授予对包含您所有数据的存储桶的读取和写入权限。
  2. 完成创建模型(选择 自动拆分 数据源的选项,以查看与以下屏幕截图中的指标类似的指标)。

现在,您的识别器模型显示在仪表板上,带有模型训练状态和指标。

该模型可能需要几分钟的时间来训练。
使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。

以下屏幕截图显示了训练完成后的模型指标。
使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。

使用自定义实体识别模型

为了使用在 PDF 文档上训练的自定义实体识别模型,我们创建了一个批处理作业来异步处理它们。

  1. 在Amazon Comprehend控制台上,选择 分析职位.
  2. 建立工作.
  3. 输入数据,输入要处理的带注释的 PDF 文档的 Amazon S3 位置(对于这篇文章, sample.pdf 文件)。
    使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。
  4. 针对 输入格式, 选择 每个文件一个文档.
  5. 输出数据,输入您希望他们填充的 Amazon S3 位置。对于这篇文章,我们创建一个名为 analysis-output 在包含所有源 PDF 文档、带注释的文档和清单的 S3 存储桶中。
  6. 使用具有以下权限的 IAM 角色 sample.pdf 文件夹中。

您可以使用之前创建的角色。

  1. 建立工作.

这是一项异步作业,因此可能需要几分钟才能完成处理。 作业完成后,您将获得指向输出的链接。 打开此输出时,您会看到一系列文件,如下所示:
使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。

你可以打开文件 sample.pdf.out 在您喜欢的文本编辑器中。 如果您搜索 实体块,您可以找到文档中标识的实体。 下表显示了一个示例。

Type 文本 评分
保险公司 预算互助保险公司 0.999984086
保险公司地址 9876 Infinity Aven 斯普林菲尔德,MI 65541 0.999982051
律师事务所 比尔和卡尔 0.99997298
律师事务所地址 9241 13th Ave SWn 斯波坎, 华盛顿 (WA),99217 0.999274625
受益人姓名 劳拉麦克丹尼尔 0.999972464
保单持有人姓名 基思·霍尔特 0.999781546
保单号码 (#892877136) 0.999950143
赔率 $15,000 0.999980728
寄件人 安吉拉·贝瑞(Angela Berry) 0.999723455
必要的行动 我们要求您转发全部保单金额,请转发我们要求的确认书,如果适用,请转发总括保单信息。 请向我的秘书发送有关其保单留置权的任何信息。 0.999989449

展开解决方案

您可以从无数种可能性中选择如何处理检测到的实体,例如:

  • 将它们摄取到记录的后端系统中
  • 根据提取的实体创建可搜索索引
  • 使用提取的实体值作为模型训练和推理的参数来丰富机器学习和分析
  • 根据检测到的实体值(例如特定律师事务所或支付值)配置后台流程和触发器

下图描述了这些选项:
使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。

结论

复杂的文档类型通常会成为全面 IDP 自动化的障碍。 在这篇文章中,我们演示了如何直接从 PDF 文档构建和使用自定义 NER 模型。 对于位置信息特别相关的情况(相似的实体值和不同的文档格式),此方法特别强大。 尽管我们通过在保险中使用法律申请信来演示此解决方案,但您可以在医疗保健、制造、零售、金融服务和许多其他行业中推断此用例。

要了解有关 Amazon Comprehend 的更多信息,请访问 Amazon Comprehend 开发人员指南.


作者简介

使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。 拉吉帕塔克 是加拿大和美国财富 50 强和中型 FSI(银行、保险、资本市场)客户的解决方案架构师和技术顾问。 Raj 专注于机器学习,并在文档提取、联络中心转换和计算机视觉方面有应用。

使用 Amazon Comprehend 命名实体识别 PlatoBlockchain 数据智能从保险文件中提取实体。 垂直搜索。 哎。恩佐·斯塔顿 是一名解决方案架构师,热衷于与公司合作以增加他们的云知识。 作为值得信赖的顾问和行业专家,他与全国各地的客户密切合作。

时间戳记:

更多来自 AWS机器学习