Amazon Textract Helper工具,用于美化打印
项目描述
Textract-PrettyPrinter
提供函数,用于将Textract输出的内容格式化为更易于消费的格式,包括CSV或Markdown。amazon-textract-prettyprinter
安装
> python -m pip install amazon-textract-prettyprinter
确保您的环境已通过配置文件、环境变量或附加角色设置AWS凭证。(https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
示例
获取CSV格式的表和表单
from textractcaller.t_call import call_textract, Textract_Features
from textractprettyprinter.t_pretty_print import Pretty_Print_Table_Format, Textract_Pretty_Print, get_string
textract_json = call_textract(input_document=input_document, features=[Textract_Features.FORMS, Textract_Features.TABLES])
print(get_string(textract_json=textract_json,
table_format=Pretty_Print_Table_Format.csv,
output_type=[Textract_Pretty_Print.TABLES, Textract_Pretty_Print.FORMS]))
使用get_string方法获取表的字符串
from textractcaller.t_call import call_textract, Textract_Features
from textractprettyprinter.t_pretty_print import Textract_Pretty_Print, get_string
textract_json = call_textract(input_document=input_document, features=[Textract_Features.TABLES])
get_string(textract_json=textract_json, output_type=Textract_Pretty_Print.TABLES)
以LaTeX格式打印表格
from textractcaller.t_call import call_textract, Textract_Features
from textractprettyprinter.t_pretty_print import Textract_Pretty_Print, get_string
textract_json = call_textract(input_document=input_document, features=[Textract_Features.FORMS, Textract_Features.TABLES])
get_tables_string(textract_json=textract_json, table_format=Pretty_Print_Table_Format.latex)
使用get_text_from_layout_json方法从LAYOUT获取线性化文本
从包含LAYOUT的Textract JSON响应生成线性化文本的字典,并可选择将线性化纯文本文件写入本地文件系统或Amazon S3。它可以从AnalyzeDocument API的每页JSON,或从StartDocumentAnalysis输出JSON创建的所有页面的单个组合JSON中获取。
from textractcaller.t_call import call_textract, Textract_Features
from textractprettyprinter.t_pretty_print import get_text_from_layout_json
textract_json = call_textract(input_document=input_document, features=[Textract_Features.LAYOUT, Textract_Features.TABLES])
layout = get_text_from_layout_json(textract_json=textract_json)
full_text = layout[1]
print(full_text)
除了textract_json
之外,get_text_from_layout_json
函数还可以接受以下附加参数
table_format
(字符串,可选):文档中表格的格式。支持所有python-tabulate表格格式。有关支持的表格格式,请参阅tabulate。默认为grid
。exclude_figure_text
(布尔值,可选):如果设置为True,则排除文档中提取的图像文本。默认为False
。exclude_page_header
(布尔值,可选):如果设置为True,则排除线性化文本中的页眉。默认为False
。exclude_page_footer
(布尔值,可选):如果设置为True,则排除线性化文本中的页脚。默认为False
。exclude_page_number
(布尔值,可选):如果设置为True,则排除线性化文本中的页码。默认为False
。skip_table
(布尔值,可选):如果设置为True,则跳过在线性化文本中包含表格。默认为False
。save_txt_path
(字符串,可选):保存输出线性化文本的文件路径。可以是本地文件系统路径或Amazon S3路径,格式为s3://bucket_name/prefix/
。文件将以<page_number>.txt
命名约定保存。generate_markdown
(布尔值,可选):如果设置为True
,则生成Markdown格式的线性化文本。默认为False
。
生成类似Textract Web控制台的layout.csv
客户要求生成layout.csv格式,该格式可以在AWS Web控制台测试文档时下载。方法`get_layout_csv_from_trp2`为每页生成一个条目列表
'页码,'布局,'文本,'阅读顺序,'置信度分数
- 页码:从1开始,每页递增
- 布局:BlockType + 表示此BlockType序列的数字(从1开始),对于LAYOUT_LIST元素,添加字符串:" - LAYOUT_LIST的一部分(索引)"
- 文本:对于LAYOUT_LIST和LAYOUT_FIGURE之外的所有布局,其基础文本
- 阅读顺序:每个LAYOUT元素的递增整数,从0开始
- 置信度分数:此为LAYOUT元素的置信度
这可以用来生成CSV(或其他格式)。以下是如何生成CSV的示例。
# taken from the test
# generates the CSV in memory
from textractprettyprinter import get_layout_csv_from_trp2
with open(<some_test_file>) as input_fp:
trp2_doc: TDocument = TDocumentSchema().load(json.load(input_fp))
layout_csv = get_layout_csv_from_trp2(trp2_doc)
csv_output = io.StringIO()
csv_writer = csv.writer(csv_output, delimiter=",", quotechar='"', quoting=csv.QUOTE_MINIMAL)
for page in layout_csv:
csv_writer.writerows(page)
print(csv_output)
示例输出
页码 | 布局 | 文本 | 阅读顺序 | 块类型 | 置信度分数 |
---|---|---|---|---|---|
1 | LAYOUT_SECTION_HEADER 1 | 惊人的标题!... | 0 | LAYOUT_SECTION_HEADER | 81.25 |
1 | LAYOUT_TEXT 1 | Lorem ipsum dolor sit amet, co... | 1 | LAYOUT_TEXT | 99.755859375 |
1 | LAYOUT_SECTION_HEADER 2 | 难以置信的内容... | 2 | LAYOUT_SECTION_HEADER | 90.478515625 |
1 | LAYOUT_TEXT 2 | Ut ultrices felis vel mi susci... | 3 | LAYOUT_TEXT | 98.486328125 |
1 | LAYOUT_LIST 1 | 4 | LAYOUT_LIST | 97.16796875 | |
1 | LAYOUT_TEXT 3 - LAYOUT_LIST的一部分1 | 优先级列表项1... | 5 | LAYOUT_TEXT | 97.8515625 |
1 | LAYOUT_TEXT 4 - LAYOUT_LIST的一部分1 | 优先级列表项2... | 6 | LAYOUT_TEXT | 98.095703125 |
1 | LAYOUT_TEXT 5 - LAYOUT_LIST的一部分1 | 另一个列表项3... | 7 | LAYOUT_TEXT | 98.095703125 |
1 | LAYOUT_TEXT 6 - LAYOUT_LIST的一部分1 | 并且一个可选的总列表项... | 8 | LAYOUT_TEXT | 98.73046875 |
1 | LAYOUT_LIST 2 | 9 | LAYOUT_LIST | 69.53125 | |
1 | 布局文本 7 - LAYOUT_LIST 2 的部分 | 1. 但是我们... | 10 | LAYOUT_TEXT | 95.751953125 |
1 | 布局文本 8 - LAYOUT_LIST 2 的部分 | 2. 也可以... | 11 | LAYOUT_TEXT | 96.923828125 |
1 | 布局文本 9 - LAYOUT_LIST 2 的部分 | 3. 编号... | 12 | LAYOUT_TEXT | 97.36328125 |
1 | 布局文本 10 - LAYOUT_LIST 2 的部分 | 4. 列表... | 13 | LAYOUT_TEXT | 96.6796875 |
1 | 布局文本 11 | congue ac. Phasellus mollis co... | 14 | LAYOUT_TEXT | 96.044921875 |
1 | 布局文本 12 | Quisque a elementum diam. Null... | 15 | LAYOUT_TEXT | 96.484375 |
1 | 布局文本 13 | 表格标题 1... | 16 | LAYOUT_TEXT | 86.865234375 |
1 | 布局表格 1 | 日期 描述 金额 12-12-... | 17 | 布局表格 | 96.435546875 |
1 | 布局文本 14 | Quisque dapibus varius ipsum, ... | 18 | LAYOUT_TEXT | 93.06640625 |
1 | 布局图像 1 | 19 | 布局图像 | 94.3359375 | |
1 | 布局文本 15 | 图像标题 1... | 20 | LAYOUT_TEXT | 63.18359375 |
项目详情
关闭
哈希值 for amazon-textract-prettyprinter-0.1.10.tar.gz
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b45e224be8c6aaf85a3a2e3f63bbc1bafe9f04cc1be14fa785ed009bb72ff291 |
|
MD5 | ed23c3e00f7f1f1ae99a0709893405a8 |
|
BLAKE2b-256 | a2cbed669e79677dd7eccff06d293ba0d914659817d43ab742df4ab3a814d794 |
关闭
哈希值 for amazon_textract_prettyprinter-0.1.10-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2c60c0e8ba10d1f3775dfbb12e6e00e700e8283591513715b641bfb98c8f0ddf |
|
MD5 | d0d307507118f3dcea311d240e2c5b6f |
|
BLAKE2b-256 | 64aa9c30283b37177902f2636a496cc80c8221a60315e176d127f23c606b911e |