如何从 AWS Textract 分析的文档中按阅读顺序打印表格和行

问题描述 投票:0回答:1

我正在使用 AWS Textract 从 pdf 文档中提取文本和表格。 我需要可以解析提取的文本和提取的表格的代码,并按照它们在文档中出现的顺序将所有内容打印在一个字符串中。

该文档的示例如下所示。

示例_文档

表格上方有几行文本我想提取。 然后应该提取该表。 然后应该提取表格下方的文本行。

最后,代码应该按阅读顺序打印字符串中的所有内容。 比如

线路
...
[桌子]
...
线路

目前我正在使用texttract-trp。

from trp import Document
import boto3

textract_client = boto3.client('textract')
response = textract_client.analyze_document('my-sample.pdf')

doc = Document(response)

final_result = []

# Iterate over elements in the document
for page in doc.pages:
    for line in page.lines:
        final_result.append(line.text)

    # Print tables
    for table in page.tables:
        for r, row in enumerate(table.rows):
            for c, cell in enumerate(row.cells):
                final_result.append(cell.text)

for item in final_result:
    print(final_result)

但这只会将整个页面打印为提取的行或隔离的表格。

我还尝试使用库textractor。

from textractcaller.t_call import call_textract, Textract_Features
from textractprettyprinter.t_pretty_print import Textract_Pretty_Print, get_string, Pretty_Print_Table_Format

textract_json = call_textract(input_document='my-sample-pdf.pdf', features=[Textract_Features.LAYOUT, Textract_Features.TABLES])

layout = get_string(textract_json=textract_json, table_format=Pretty_Print_Table_Format.csv, output_type=[Textract_Pretty_Print.TABLES, Textract_Pretty_Print.LINES])

print(layout)

但又遇到了同样的问题。首先,它打印孤立的表格,然后将整个页面打印为文本行。

python amazon-web-services ocr text-extraction amazon-textract
1个回答
0
投票

想通了!事实证明我不需要 textractprettyprinter。 analyze_document函数中的功能需要包括TABLES和LAYOUT。然后我需要 TextLinearizationConfig 来获取漂亮的降价格式的表格。

确保您 pip install amazon-texttract-textractor

from textractor import Textractor
from textractor.data.text_linearization_config import TextLinearizationConfig
from textractcaller.t_call import Textract_Features

extractor = Textractor(region_name='us-west-1')

config = TextLinearizationConfig(
    table_linearization_format="markdown"
)

document = extractor.analyze_document(
    file_source="mydoc.pdf",
    features=[Textract_Features.LAYOUT, Textract_Features.TABLES]
)

print(document.get_text(config))
© www.soinside.com 2019 - 2024. All rights reserved.