python-3.x AWS Textract无法识别PDF文档第二页的表格

wd2eg0qa  于 2023-03-04  发布在  Python
关注(0)|答案(1)|浏览(130)

我需要使用AWS Textract从计费副本中提取表格信息。它每次都给我几乎完美的结果,但对于一些PDF文档,它没有给我第二页的表格结果。
使用的代码示例:第一页的AWS Official Documentation图像(JPEG)为

第二页的图像(JPEG)为

AWS将前20个条目输出为CSV,但对于图像的第二页,CSV的结果是:

最重要的是,我在类似类型的PDF中发现了相同的结果,该PDF有21个条目,其中一个条目位于PDF的第二页。我已经使用PyPDF2将PDF页面合并为一个页面,但没有解决我的问题。是否需要使用OpenCV工具?请针对这些类型的问题向我提出任何可能的建议。

fnx2tebb

fnx2tebb1#

您可以使用amazon-textract-textractorpackage来简化Amazon Textract API的调用,它支持SYNC和ASYNC API。
例如,使用文档的第二页作为输入,您可以按如下方式使用它:

from textractor import Textractor
from textractor.data.constants import TextractFeatures
extractor = Textractor(profile_name="default")
document = extractor.analyze_document(
    file_source="./pxqKO.jpeg",
    features=[TextractFeatures.TABLES],
)
document.visualize()

我们看到检测到了两张table,现在我们可以将第一张table转换成Pandas:

document.tables[0].to_pandas()

然后关于合并第一页和第二页的表格的问题,你可以直接在panda中这样做,这里我在你的两个页面上运行推理,然后使用panda合并两个表格:

from textractor import Textractor
from textractor.data.constants import TextractFeatures
extractor = Textractor(profile_name="default")
document1 = extractor.analyze_document(
    file_source="./yXYjr.jpeg",
    features=[TextractFeatures.TABLES],
)
document2 = extractor.analyze_document(
    file_source="./pxqKO.jpeg",
    features=[TextractFeatures.TABLES],
)

table1 = document1.tables[0].to_pandas(use_columns=True)
table2 = document2.tables[0].to_pandas()
table2.columns = table1.columns
table_final =table1.append(table2)
table_final = table_final.reset_index(drop=True)
table_final

如果您有更复杂的用例,您可以使用其他流程来处理多页表:https://aws.amazon.com/blogs/machine-learning/postprocessing-with-amazon-textract-multi-page-table-handling/

相关问题