对于处理大量文档(例如合同、发票、简历和报告)的现代公司来说,有效处理和检索相关数据对于保持竞争优势至关重要。 然而,存储和搜索文档的传统方法可能非常耗时,并且通常需要花费大量精力来查找特定文档,尤其是当它们包含手写文档时。 如果有一种方法可以智能地处理文档并使其可高精度搜索,结果会怎样呢?
这是通过以下方式实现的: 亚马逊Textract,AWS的智能文档处理服务,加上快速搜索功能 OpenSearch的。 在这篇文章中,我们将带您快速构建和部署文档搜索索引解决方案,帮助您的组织更好地利用文档并从中提取见解。
无论您是在人力资源部门寻找员工合同中的特定条款,还是在财务分析师中筛选大量发票以提取付款数据,该解决方案都经过量身定制,使您能够以前所未有的速度和准确性访问所需的信息。
通过建议的解决方案,您的文档将被自动摄取、其内容被解析并随后被索引到高度响应且可扩展的 OpenSearch 索引中。
我们将介绍 Amazon Textract 等技术如何 AWS Lambda, 亚马逊简单存储服务 (亚马逊 S3)和 亚马逊开放搜索服务 可以集成到无缝处理文档的工作流程中。 然后,我们深入研究将这些数据索引到 OpenSearch 中,并演示触手可及的搜索功能。
无论您的组织是迈入数字化转型时代的第一步,还是寻求增强信息检索的老牌巨头,本指南都是您把握 AWS 智能文档处理和 OpenSearch 提供的机遇的指南针。
履行 这篇文章中使用的是 Amazon Textract IDP CDK 构造 – 用于定义智能文档处理 (IDP) 工作流程基础设施的 AWS 云开发套件 (CDK) 组件 – 允许您构建特定于用例的可定制 IDP 工作流程。 IDP CDK 构造和示例是组件的集合,用于在 AWS 上定义 IDP 流程并发布到 GitHub上。 使用的主要概念是AWS 云开发套件 (CDK) 构造,实际 CDK堆栈 和 AWS步骤功能。 车间 使用机器学习大规模自动化和处理文档 是了解有关自定义工作流程以及使用其他示例工作流程作为您自己的基础的更多信息的良好起点。
解决方案概述
在此解决方案中,我们专注于将文档索引到 OpenSearch 索引中,以便快速搜索和检索信息和文档。 PDF、TIFF、JPEG 或 PNG 格式的文档放入 Amazon Simple Storage Service (Amazon S3) 存储桶,随后使用此 Step Functions 工作流程将其索引到 OpenSearch 中。
OpenSearchWorkflow-决策者 查看文档并验证该文档是否是受支持的 mime 类型之一(PDF、TIFF、PNG 或 JPEG)。 它由一个 AWS Lambda 功能。
文档分割器 从文档生成最多 2500 页的块。 这意味着,即使 Amazon Textract 支持最多 3000 页的文档,您也可以传入包含更多页面的文档,并且该过程仍然可以正常运行,并将页面放入 OpenSearch 并创建正确的页码。 这 文档分割器 作为 AWS Lambda 函数实现。
地图状态 并行处理每个块。
文本异步 任务使用异步调用 Amazon Textract 应用程式介面 (API)以下 最佳实践 与亚马逊简单通知服务(亚马逊SNS) 通知和 输出配置 将 Amazon Textract JSON 输出存储到客户 Amazon S3 存储桶。 它由两个 Amazon Lambda 函数组成:一个用于提交文档进行处理,另一个在 Amazon SNS 通知上触发。
由于 文本分析软件nc 任务可以生成多个分页输出文件, TextractAsyncToJSON2 进程将它们合并到一个 JSON 文件中。
Step Functions 上下文中包含了丰富的信息,这些信息也可以在 OpenSearch 索引中进行搜索。 设置元数据 步。 示例实现添加了 ORIGIN_FILE_NAME
, START_PAGE_NUMBER
及 ORIGIN_FILE_URI
。 您可以添加任何信息来丰富搜索体验,例如来自其他后端系统的信息、特定 ID 或分类信息。
生成OpenSearchBatch 获取生成的 Amazon Textract 输出 JSON,将其与 SetMetaData 设置的上下文中的信息相结合,并准备一个针对批量导入 OpenSearch 进行优化的文件。
在 打开搜索推送调用,此批量导入文件将发送到 OpenSearch 索引中并可供搜索。 此 AWS Lambda 函数与 aws-lambda-opensearch 构造自 AWS解决方案 使用 m6g.large.search 实例、OpenSearch 版本 2.7 的库,并配置了 Amazon Elastic Block Service (亚马逊EBS) 卷大小为 2 GB 的通用 2 (GP200)。 您可以根据需要更改 OpenSearch 配置。
最后 任务开放搜索映射 步骤清除上下文,否则可能会超出 步骤函数配额 of 任务、状态或执行的最大输入或输出大小.
先决条件
要部署示例,您需要一个 AWS 帐户, AWS 云开发工具包 (AWS CDK),需要当前的 Python 版本和 Docker。 您需要部署 AWS CloudFormation 模板的权限,将其推送到 Amazon Elastic Container注册 (亚马逊 ECR),创建 亚马逊身份和访问管理 (AWS IAM) 角色、Amazon Lambda 函数、Amazon S3 存储桶、Amazon Step Functions、Amazon OpenSearch 集群和 亚马逊Cognito 用户池。 确保您的 AWS CLI 环境已设置 具有相应的权限。
您还可以旋转 AWS 云9 预安装了 AWS CDK、Python 和 Docker 的实例以启动部署。
演练
部署
- 设置先决条件后,您需要首先克隆存储库:
- 然后 cd 进入存储库文件夹并安装依赖项:
- 部署 OpenSearchWorkflow 堆栈:
使用 GitHub 示例中的默认配置设置,部署大约需要 25 分钟,并创建一个 Step Functions 工作流程,当将文档放入 Amazon S3 存储桶/前缀时调用该工作流程,并随后进行处理,直到对文档内容建立索引在 OpenSearch 集群中。
以下是示例输出,包括有用的链接和生成的信息cdk deploy OpenSearchWorkflow
命令:
此信息也可以在 AWS CloudFormation 控制台中找到。
当新文档被放置在 OpenSearchWorkflow.DocumentUploadLocation,为此文档启动一个新的 Step Functions 工作流程。
要检查此文档的状态, OpenSearchWorkflow.StepFunctionFlowLink 提供指向 AWS 管理控制台中 StepFunction 执行列表的链接,显示上传到 Amazon S3 的每个文档的文档处理状态。 教程 在 Step Functions 控制台上查看和调试执行 提供 AWS 控制台中的组件和视图的概述。
测试
- 首先使用示例文件进行测试。
- 选择 StepFunction 工作流程的链接或打开 AWS 管理控制台并转到 Step Functions 服务页面后,您可以查看不同的工作流程调用。
- 查看当前正在运行的示例文档执行,您可以在其中跟踪各个工作流任务的执行情况。
搜索
该过程完成后,我们可以验证该文档是否已在 OpenSearch 索引中建立索引。
- 为此,我们首先创建一个 Amazon Cognito 用户。 Amazon Cognito 用于根据 OpenSearch 索引对用户进行身份验证。 选择 cdk 部署输出中的链接(或查看 AWS CloudFormation AWS 管理控制台中的输出)名为 OpenSearchWorkflow.CognitoUserPoolLink.
- 接下来,选择 创建用户 按钮,该按钮会将您引导至一个页面,输入用于访问 OpenSearch 仪表板的用户名和密码。
- 选择之后 创建用户,您可以通过单击继续访问 OpenSearch 仪表板 OpenSearchWorkflow.OpenSearchDashboard 来自 CDK 部署输出。 使用之前创建的用户名和密码登录。 首次登录时,您必须更改密码。
- 登录 OpenSearch 仪表板后,选择 堆栈管理 节,然后是 指数形态s 创建搜索索引。
- 索引的默认名称是 论文索引 和索引模式名称 论文索引* 会匹配那个。
- 点击后 下一步, 选择 时间戳 作为 时间字段 和 创建索引模式.
- 现在,从菜单中选择 Discover.
在大多数情况下,您需要根据上次摄取更改时间跨度。 默认值为 15 分钟,过去 15 分钟内通常没有任何活动。 在此示例中,将摄取可视化时间更改为 15 天。
- 现在您可以开始搜索。 一本小说已被索引,您可以搜索任何术语,例如 叫我以实玛利 并查看结果。
在这种情况下,术语 叫我以实玛利 显示在文档第 6 页的给定统一资源标识符 (URI) 处,该标识符指向文件的 Amazon S3 位置。 与手动跳过文档相比,这使得在大量 PDF、TIFF 或图像文档中识别文档和查找信息变得更快。
大规模运行
为了估计索引过程的规模和持续时间,我们对 93,997 个文档和总计 1,583,197 页(平均每个文档 16.84 页,最大文件有 3755 页)的实施进行了测试,所有这些都被索引到 OpenSearch 中。 使用默认值,在美国东部(弗吉尼亚北部 - us-east-5.5)区域处理所有文件并将其索引到 OpenSearch 需要 1 小时 Amazon Textract 服务配额。 下图显示了 18:00 的初始测试,随后是 21:00 的主要摄取,并在 2:30 之前全部完成。
对于处理来说, tcdk.SFExecutionsStartThrottle 被设置为 executions_concurrency_threshold
=550,这意味着并发文档处理工作流的上限为 550,多余的请求将排队到一个 亚马逊SQS 先入先出 (FIFO) 队列,当前工作流程完成后随后会被清空。 阈值 550 基于 us-east-600 区域中的 Textract 服务配额 1。 因此,队列深度和最旧消息的年龄是值得监控的指标。
在本次测试中,所有文档均一次性上传至 Amazon S3,因此 可见消息的大约数量 由于没有新文档被摄取,急剧增加然后缓慢下降。 这 最旧消息的大致年龄 增加直到处理完所有消息。 亚马逊 SQS 消息保留期限 设置为 14 天。 对于运行时间可能超过 14 天的长期待办事项处理,请从处理代表性文档的较小子集开始,并监视执行持续时间,以估计在超过 14 天之前可以传入多少文档。 Amazon SQS CloudWatch 指标与处理大量积压文档的用例类似,这些文档会立即摄取然后完全处理。 如果您的用例是稳定的文档流,那么这两个指标、 可见消息的大约数量 和 最旧消息的大致年龄 会更加线性。 您还可以使用阈值参数将稳定负载与积压处理混合在一起,并根据您的处理需求分配容量。
另一个要监控的指标是 OpenSearch 集群的运行状况,您应该根据 Amazon OpenSearch Service 的运营最佳实践。 默认部署使用 m6g.large.search 实例。
以下是 OpenSearch 集群的关键绩效指标 (KPI) 的快照。 无错误、恒定的索引数据速率和延迟。
Step Functions 工作流执行显示每个单独文档的处理状态。 如果您看到处决 失败 状态,然后选择详细信息。 AWS 是一个很好的监控指标 CloudWatch 自动仪表板 对于 Step Functions,它公开了一些 Step Functions CloudWatch 指标.
在此 AWS CloudWatch 仪表板图表中,您可以看到随时间推移成功执行的 Step Functions。
这个显示了失败的执行。 这些值得通过 AWS Console Step Functions 概述进行研究。
以下屏幕截图显示了由于原始文件大小为 0 而导致执行失败的一个示例,这是有道理的,因为该文件没有内容并且无法处理。 过滤失败的流程并可视化失败非常重要,以便您返回源文档并验证根本原因。
其他失败可能包括非 mime 类型的文档:application/pdf、image/png、image/jpeg 或 image/tiff,因为 Amazon Textract 不支持其他文档类型。
价格
提取 1,583,278 个页面的总成本分摊到用于实施的 AWS 服务中。 以下列表只是近似数字,因为您的实际成本和处理时间根据文档大小、每个文档的页数、文档中的信息密度以及 AWS 区域而有所不同。 Amazon DynamoDB 消耗 0.55 美元,Amazon S3 3.33 美元,OpenSearch Service 14.71 美元,Step Functions 17.92 美元,AWS Lambda 28.95 美元,Amazon Textract 1,849.97 美元。 另外,请记住,部署的 Amazon OpenSearch Service 集群按小时计费,运行一段时间后会累积更高的成本。
修改
最有可能的是,您希望修改实现并针对您的用例和文档进行自定义。 车间 使用机器学习大规模自动化和处理文档 很好地概述了如何操作实际工作流程、更改流程以及添加新组件。 要将自定义字段添加到 OpenSearch 索引,请查看 设置元数据 工作流程中的任务使用 设置清单元数据开放搜索 AWS Lambda 函数将元数据添加到上下文中,该元数据将作为字段添加到 OpenSearch 索引中。 任何元数据信息都将成为索引的一部分。
打扫干净
如果不再需要示例资源,请删除它们,以避免使用以下命令产生未来成本:
在相同的环境下 cdk deploy
命令。 请注意,这会删除所有内容,包括 OpenSearch 集群和所有文档以及 Amazon S3 存储桶。 如果您想维护该信息,请备份您的 Amazon S3 存储桶并 从 OpenSearch 集群创建索引快照。 如果您处理了许多文件,那么您可能必须首先使用 AWS 管理控制台清空 Amazon S3 存储桶(即,如果您想保留信息,则在进行备份或将它们同步到其他存储桶之后),因为清理功能可能会超时并破坏 AWS CloudFormation 堆栈。
结论
在这篇文章中,我们向您展示了如何部署完整的堆栈解决方案以将大量文档提取到 OpenSearch 索引中,这些文档已准备好用于搜索用例。 讨论了实施的各个组件以及扩展考虑因素、成本和修改选项。 所有代码都可以在 GitHub 上以开源方式访问: IDP CDK 示例 和 IDP CDK 构建 从头开始构建您自己的解决方案。 下一步,您可以开始修改工作流程,向搜索索引中的文档添加信息并探索 国内流离失所者研讨会。 请在下面评论您的经验和想法,以扩展当前的解决方案。
关于作者
马丁·沙德 是 Amazon Textract 团队的高级 ML 产品 SA。 他在互联网相关技术、工程和架构解决方案方面拥有超过 20 年的经验。 他于 2014 年加入 AWS,首先指导一些最大的 AWS 客户最高效和可扩展地使用 AWS 服务,后来专注于 AI/ML 和计算机视觉。 目前,他痴迷于从文件中提取信息。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- PlatoData.Network 垂直生成人工智能。 赋予自己力量。 访问这里。
- 柏拉图爱流。 Web3 智能。 知识放大。 访问这里。
- 柏拉图ESG。 汽车/电动汽车, 碳, 清洁科技, 能源, 环境, 太阳能, 废物管理。 访问这里。
- 柏拉图健康。 生物技术和临床试验情报。 访问这里。
- 图表Prime。 使用 ChartPrime 提升您的交易游戏。 访问这里。
- 块偏移量。 现代化环境抵消所有权。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/implement-smart-document-search-index-with-amazon-textract-and-amazon-opensearch/
- :具有
- :是
- :不是
- :在哪里
- $3
- $UP
- 1
- 10
- 100
- 11
- 12
- 13
- 14
- 15%
- 16
- 17
- 20
- 20 年
- 200
- 2014
- 216
- 220
- 25
- 30
- 3000
- 32
- 33
- 7
- 700
- 8
- 820
- 84
- 9
- a
- 关于
- ACCESS
- 无障碍
- 访问
- 根据
- 账号管理
- 积累
- 横过
- 活动
- 实际
- 加
- 添加
- 添加
- 添加
- 后
- 驳
- 年龄
- AI / ML
- 所有类型
- 分配
- 让
- 还
- Amazon
- 亚马逊Cognito
- 亚马逊开放搜索服务
- 亚马逊Textract
- 亚马逊网络服务
- an
- 分析人士
- 和
- 任何
- API
- 出现
- 近似
- 保健
- 围绕
- AS
- At
- 认证
- 自动化
- 自动表
- 自动
- 可使用
- 避免
- AWS
- AWS CloudFormation
- AWS Lambda
- AWS管理控制台
- 背部
- 后端
- 备份工具
- 基地
- 基于
- BE
- 因为
- 成为
- before
- 作为
- 如下。
- 最佳
- 最佳实践
- 更好
- 提防
- 阻止
- 都
- 建立
- 按键
- by
- 呼叫
- CAN
- 能力
- 容量
- 案件
- 例
- 原因
- CD
- 更改
- 变
- 改变
- 查
- 选择
- 分类
- 云端技术
- 簇
- 码
- 采集
- 结合
- 评论
- 公司
- 相比
- 指南针
- 竞争的
- 组件
- 一台
- 计算机视觉
- 概念
- 并发
- 配置
- 配置
- 已联繫
- 注意事项
- 由
- 安慰
- 常数
- 建设
- 容器
- 内容
- 上下文
- 继续
- 合同的
- 正确
- 价格
- 成本
- 可以
- 再加
- 外壳
- 创建信息图
- 创建
- 创建
- 危急
- 电流
- 目前
- 习俗
- 顾客
- 合作伙伴
- 定制
- 定制
- XNUMX月XNUMX日
- 仪表板
- data
- 一年中的
- 处理
- 拒绝
- 默认
- 定义
- 定义
- 演示
- 依赖
- 根据
- 部署
- 部署
- 部署
- 深度
- 摧毁
- 详情
- 研发支持
- 对话框
- 不同
- 数字
- 数字化改造
- 通过各种方式找到
- 讨论
- 显示
- 潜水
- do
- 码头工人
- 文件
- 文件
- 完成
- 倒掉
- 两
- 为期
- e
- 每
- 东部
- 边缘
- 高效
- 有效
- 努力
- 员工
- 授权
- enable
- 工程师
- 巨大
- 丰富
- 丰富
- 输入
- 环境
- 时代
- 故障
- 特别
- 成熟
- 评估
- 甚至
- 一切
- 例子
- 超过
- 超额
- 过剩
- 执行
- 扩大
- 体验
- 探索
- 提取
- 失败
- 高效率
- 快
- 部分
- 字段
- 数字
- 文件
- 档
- 过滤
- 最后
- 金融
- 找到最适合您的地方
- 结束
- 指尖
- 完
- (名字)
- 第一步
- 第一次
- 流
- 专注焦点
- 重点
- 遵循
- 其次
- 以下
- 针对
- 格式
- 止
- ,
- 全栈
- 充分
- 功能
- 功能
- 未来
- 其他咨询
- 产生
- 产生
- 越来越
- 巨人
- GitHub上
- 特定
- Go
- 去
- 非常好
- 图形
- 指南
- 马具
- 有
- 有
- he
- 健康管理
- 帮助
- 高
- 更高
- 高度
- 小时
- HOURS
- 创新中心
- How To
- 但是
- HTML
- HTTPS
- 人
- 人力资源
- i
- 思路
- 识别码
- 鉴定
- 身分
- IDS
- if
- 图片
- 实施
- 履行
- 实施
- 进口
- 重要
- in
- 包括
- 包含
- 增加
- 增加
- 指数
- 索引
- 指标
- 个人
- 信息
- 基础设施
- 初始
- 开始
- 输入
- 可行的洞见
- 安装
- 例
- 集成
- 智能化
- 智能文档处理
- 成
- 调查
- 调用
- IT
- 加盟
- 旅程
- JPG
- JSON
- 保持
- 键
- 大
- 最大
- (姓氏)
- 潜伏
- 后来
- 学习用品
- 学习
- 自学资料库
- 喜欢
- 容易
- 友情链接
- 链接
- 清单
- 加载
- 圖書分館的位置
- 记录
- 登录
- 长
- 不再
- 看
- 寻找
- LOOKS
- 机
- 机器学习
- 制成
- 主要
- 保持
- 维护
- 使
- 制作
- 颠覆性技术
- 手动
- 许多
- 匹配
- 最多
- 可能..
- me
- 手段
- 菜单
- 的话
- 条未读消息
- 方法
- 公
- 指标
- 可能
- 介意
- 分钟
- 混合
- ML
- 现代
- 修改
- 显示器
- 监控
- 更多
- 最先进的
- 山
- 多
- 姓名
- 命名
- 导航
- 需求
- 需要
- 全新
- 下页
- 没有
- 通知
- 通知
- 小说
- 数
- 数字
- of
- 提供
- 经常
- 最老的
- on
- 一旦
- 一
- 打开
- 开源
- 机会
- 优化
- 附加选项
- or
- 秩序
- 组织
- 起源
- 其他名称
- 除此以外
- 输出
- 产量
- 超过
- 简介
- 己
- 页
- 网页
- 并行
- 参数
- 部分
- 通过
- 密码
- 模式
- 模式
- 付款
- 为
- 性能
- 期间
- 权限
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 请
- 点
- 点
- 池
- 可能
- 帖子
- 做法
- 准备
- 先决条件
- 礼物
- 先前
- 过程
- 处理
- 过程
- 处理
- 生产
- 产品
- 代码编程
- 建议
- 提供
- 出版
- 目的
- 推
- 放
- 认沽期权
- 蟒蛇
- 快速
- 急速
- 率
- 准备
- 地区
- 业务报告
- 知识库
- 代表
- 要求
- 必须
- 岗位要求
- 资源
- 资源
- 响应
- 导致
- 成果
- 保留
- 角色
- 根
- 运行
- 运行
- SA
- 同
- 可扩展性
- 鳞片
- 缩放
- 划伤
- 无缝
- 搜索
- 搜索
- 部分
- 看到
- 寻求
- 选择
- 前辈
- 感
- 发送
- 服务
- 服务
- 特色服务
- 集
- 设置
- 格局
- 应该
- 显示
- 显示
- 作品
- 类似
- 简易
- 尺寸
- 放慢
- 小
- 智能
- 快照
- So
- 方案,
- 解决方案
- 一些
- 来源
- 具体的
- 速度
- 纺
- 分裂
- 堆
- 开始
- 开始
- 开始
- 州/领地
- 州
- Status
- 稳定
- 步
- 步骤
- 仍
- 存储
- 商店
- 存储
- 提交
- 后来
- 成功
- 这样
- 支持
- 支持
- 肯定
- 产品
- 量身定制
- 采取
- 需要
- 服用
- 任务
- 任务
- 团队
- 技术
- 模板
- 术语
- 条款
- test
- 测试
- 文本
- 这
- 图
- 信息
- 国家
- 其
- 他们
- 然后
- 那里。
- 因此
- 博曼
- 他们
- Free Introduction
- 虽然?
- 门槛
- 通过
- 至
- 次
- 耗时的
- 至
- 了
- 合计
- 传统
- 转型
- 引发
- 教程
- 二
- 类型
- 类型
- 下
- 史无前例
- 直到
- 上传
- us
- 使用
- 用例
- 用过的
- 用户
- 用户
- 使用
- 运用
- 利用
- 验证
- 折扣值
- 版本
- 非常
- 意见
- 弗吉尼亚州
- 愿景
- 想像
- 体积
- 卷
- 想
- 是
- 方法..
- we
- 卷筒纸
- Web服务
- 井
- 为
- 什么是
- ,尤其是
- 这
- 将
- 工作流程
- 工作流程
- 合作
- 车间
- 工作坊
- 价值
- 年
- 完全
- 您一站式解决方案
- 和风网