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.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a33d5c9797e8d1289843f6d7866e73e71bc53953caa83c7fdc26439b499c7b44 |
|
MD5 | 71519ccb90b48d077ea6d6b5fefd0294 |
|
BLAKE2b-256 | 17f7b40bacdff49aa7864dd88a814fbb4e319ff7c5ffb70b7a46797eeda1d066 |
关闭
amazon_textract_geofinder-0.0.8-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ff7e364c31d803f8ff519abd3d8c36562721446867b062a9793931a3789e38f1 |
|
MD5 | d1785f626706a7ae4ce2bcc118c197a9 |
|
BLAKE2b-256 | 72473fc752ae7026d072019a8da41c860755c0bcddf5cc6cc538988afd7cc7b4 |