跳转到主要内容

Amazon Textract包,通过几何信息更轻松地访问数据

项目描述

Textract-Pipeline-GeoFinder

提供使用几何信息提取信息的功能。

用例包括

  • 为Amazon Textract AnalyzeDocument API的FORMS功能提供键值对上下文
  • 在特定区域查找值

安装

> python -m pip install amazon-textract-geofinder

请确保您的环境通过配置文件、环境变量或附加的角色设置了AWS凭证。(https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html

概念

使用此库在文档中根据几何形状查找信息时,与定义预期的值所在位置的x,y坐标相比,主要优势是区域的概念。

一个区域最终由一个包含x_min、y_min、x_max、y_max坐标的框定义,但也可以通过在文档中查找单词/短语来定义,然后使用这些单词/短语创建区域。

从那里,解析区域中信息的函数有助于提取信息。例如,通过根据问题“你最近有没有感觉到发烧或发热?”定义区域,我们可以将其答案与之关联,并创建一个针对此问题的特定键值对。

示例

获取键值对的上下文

示例图像

带有FORMS功能的Amazon Textract AnalyzeDocument API返回以下键

ALEJANDRO
Carlos
与患者的关联 兄弟
Jane
婚姻状况 已婚
电话 646-555-0111
SALAZAR
电话 212-555-0150
与患者的关联 朋友
ROSALEZ
城市 ANYTOWN
电话 650-555-0123
地址 123 ANY STREET
已选中
未选中
出生日期 10/10/1982
DOE
性别 M
未选中
未选中
未选中
CA
邮政编码 12345
电子邮件地址
未选中
已选中
未选中
已选中
已选中
已选中
已选中

但是,哪个文档部分包含各个键的信息并不明显。大多数键出现多次,我们希望为它们提供上下文,将它们与“患者”、“紧急联系人1”、“紧急联系人2”或特定问题关联起来。

这个Jupyter笔记本通过示例进行指导:示例笔记本。确保在本地启动笔记本时设置AWS凭证,或使用包括Amazon Textract权限的角色SageMaker笔记本。

此代码片段来自笔记本。

python -m pip install amazon-textract-helper amazon-textract-geofinder
from textractgeofinder.ocrdb import AreaSelection
from textractgeofinder.tgeofinder import KeyValue, TGeoFinder, AreaSelection, SelectionElement
from textractprettyprinter.t_pretty_print import get_forms_string
from textractcaller import call_textract
from textractcaller.t_call import Textract_Features

import trp.trp2 as t2

image_filename='./tests/data/patient_intake_form_sample.jpg'

j = call_textract(input_document=image_filename, features=[Textract_Features.FORMS])


t_document = t2.TDocumentSchema().load(j)
doc_height = 1000
doc_width = 1000
geofinder_doc = TGeoFinder(j, doc_height=doc_height, doc_width=doc_width)

def set_hierarchy_kv(list_kv: list[KeyValue], t_document: t2.TDocument, page_block: t2.TBlock, prefix="BORROWER"):
    for x in list_kv:
        t_document.add_virtual_key_for_existing_key(key_name=f"{prefix}_{x.key.text}",
                                                    existing_key=t_document.get_block_by_id(x.key.id),
                                                    page_block=page_block)
# patient information
patient_information = geofinder_doc.find_phrase_on_page("patient information")[0]
emergency_contact_1 = geofinder_doc.find_phrase_on_page("emergency contact 1:", min_textdistance=0.99)[0]
top_left = t2.TPoint(y=patient_information.ymax, x=0)
lower_right = t2.TPoint(y=emergency_contact_1.ymin, x=doc_width)
form_fields = geofinder_doc.get_form_fields_in_area(
    area_selection=AreaSelection(top_left=top_left, lower_right=lower_right))
set_hierarchy_kv(list_kv=form_fields, t_document=t_document, prefix='PATIENT', page_block=t_document.pages[0])

set_hierarchy_kv(list_kv=form_fields, t_document=t_document, prefix='PATIENT', page_block=t_document.pages[0])

print(get_forms_string(t2.TDocumentSchema().dump(t_document)))
... ...
PATIENT_first name ALEJANDRO
PATIENT_address 123 ANY STREET
PATIENT_sex M
PATIENT_state CA
PATIENT_zip code 12345
PATIENT_marital status 已婚
PATIENT_last name ROSALEZ
PATIENT_phone 646-555-0111
PATIENT_email address
PATIENT_city ANYTOWN
PATIENT_date of birth 10/10/1982

使用带有示例的Amazon Textact Helper命令行工具

这将显示完整的输出,就像笔记本一样。

> python -m pip install amazon-textract-helper amazon-textract-geofinder
> cat tests/data/patient_intake_form_sample.json| bin/amazon-textract-geofinder | amazon-textract --stdin --pretty-print FORMS
ALEJANDRO
Carlos
与患者的关联 兄弟
Jane
婚姻状况 已婚
电话 646-555-0111
SALAZAR
电话 212-555-0150
与患者的关联 朋友
ROSALEZ
城市 ANYTOWN
电话 650-555-0123
地址 123 ANY STREET
已选中
未选中
出生日期 10/10/1982
DOE
性别 M
未选中
未选中
未选中
CA
邮政编码 12345
电子邮件地址
未选中
已选中
未选中
已选中
已选中
已选中
已选中
PATIENT_first name ALEJANDRO
PATIENT_address 123 ANY STREET
PATIENT_sex M
PATIENT_state CA
PATIENT_zip code 12345
PATIENT_marital status 已婚
PATIENT_last name ROSALEZ
PATIENT_phone 646-555-0111
PATIENT_email address
PATIENT_city ANYTOWN
PATIENT_date of birth 10/10/1982
EMERGENCY_CONTACT_1_first name Carlos
EMERGENCY_CONTACT_1_phone 212-555-0150
EMERGENCY_CONTACT_1_relationship to patient 兄弟
EMERGENCY_CONTACT_1_last name SALAZAR
EMERGENCY_CONTACT_2_first name Jane
EMERGENCY_CONTACT_2_phone 650-555-0123
EMERGENCY_CONTACT_2_last name DOE
EMERGENCY_CONTACT_2_relationship to patient 朋友
FEVER->YES 已选中
FEVER->NO 未选中
SHORTNESS->YES 未选中
SHORTNESS->NO 已选中
COUGH->YES 未选中
COUGH->NO 已选中
LOSS_OF_TASTE->YES 未选中
LOSS_OF_TASTE->NO 已选中
COVID_CONTACT->YES 已选中
COVID_CONTACT->NO 未选中
TRAVEL->YES 未选中
TRAVEL->NO 已选中

项目详细信息


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

amazon-textract-geofinder-0.0.8.tar.gz (22.6 kB 查看哈希值)

上传时间

构建分发

amazon_textract_geofinder-0.0.8-py2.py3-none-any.whl (24.0 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持