跳转到主要内容

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

项目详情


下载文件

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

源分布

amazon-textract-prettyprinter-0.1.10.tar.gz (18.4 kB 查看哈希值)

上传时间

构建分布

amazon_textract_prettyprinter-0.1.10-py2.py3-none-any.whl (20.6 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面