【问题标题】:How do I extract tables from a historical PDF?如何从历史 PDF 中提取表格?
【发布时间】:2019-02-23 01:33:47
【问题描述】:

我需要从这个file 中提取类似格式的表中的数据。有一些 OCR 错误,但我有一个自动化的方法来纠正它们。

我试过了:

  • ABBYY Finereader 表格检测。
  • Tabula 表格提取
  • Camelot 表提取
  • 自定义pythoncode

问题:广告工具在检测桌子边缘方面非常糟糕。这些表格遵循类似的一般格式,但每次扫描的对齐方式略有不同,因此硬编码寄宿生也不起作用。

问题:你们知道检测表格从哪里开始然后应用几个模板之一的好方法吗?

非常感谢任何其他有关此类工作的提示。

【问题讨论】:

    标签: pdf ocr data-extraction pdf-extraction python-camelot


    【解决方案1】:

    2/26 更新: 我解决了我自己的问题,尽管可以随时用快速或更好的解决方案做出回应。

    其中一个主要问题是表格的尺寸大致相似,但它们因页面而异。扫描的图像在页面之间也略有偏移,导致两个对齐问题。我目前的工作流程解决了这两个问题,如下所示。

    表格类型对齐

    解决方案:

    1. 使用 ABBYY 中的图像编辑工具水平剪切每一页。这会在每一页上提供一个表格。
    2. 请注意,有 4 种表类型。偶数页和奇数页有不同的布局。每页的第一个表格包含一个日期字段。
    3. 这给出了 first-table-even、first-table-odd、reg-table-even、reg-table-odd。一次处理一种类型,具有固定的表格区域和列,可修复由于表格布局不同而导致的错位。

    图像对齐

    相同表格类型的图像仍未对齐,因此在 (x,y) 坐标中指定表格布局将不起作用。每张图片中的表格位置都不同。

    我需要根据桌子位置对齐图像,但在没有检测到桌子的情况下没有很好的方法来做到这一点。

    我以一种有趣的方式解决了这个问题,但我先尝试了以下步骤。

    1. 使用 Opencv 检测垂直线。结果:没有很好地检测到微弱的线条。经常会错过线条,使其无法对齐。
    2. 使用 Scan Tailor 检测内容。结果:检测算法会在某些文件中过多地裁剪某些表格,而在其他文件中由于图像中的斑点而包含空白。去斑没有帮助。
    3. 将 Camelot 用于宽表区域,无列值。结果:这在其他情况下可能会很好用,但 Camelot 倒在了这里。数据报告到美分,每三位数之间有空格。这导致 00 在几列中错位。

    解决方案:

    将图像切割成表格类型对齐部分所述的表格后,使用 Photoshop 中的自动对齐图层功能来对齐图像。

    分步解决方案:

    1. 打开 Photoshop
    2. 使用以下方法将一种表类型的图像加载到单个文件中:文件-脚本-将文件加载到堆栈中
    3. 使用:编辑-自动对齐图层
    4. 使用裁剪工具使每个文件大小相同。
    5. 将每个图像导出为自己的文件:File-Export-Layers to files
    6. 对 4 种表类型中的每一种都使用 ABBYY OCR 编辑器,使用 GUI 编辑器对列和行进行硬编码。
    7. 从 ABBYY 导出为 CSV
    8. 使用clean.py 之类的内容删除空格和坏字符。

    完成!随意组合每个表的文件。当我完成项目时,我将发布我的 python 代码来执行此操作。清理后,我也会发布数据。

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      代替Camelot table_areas参数(指定固定边界),您可以尝试使用table_regions参数来指定表格可能在的区域(Camelot只会分析指定区域来查找表格)。

      https://camelot-py.readthedocs.io/en/master/user/advanced.html#specify-table-regions

      请随时更新。

      【讨论】:

        猜你喜欢
        • 2014-11-01
        • 2021-04-26
        • 2021-10-29
        • 1970-01-01
        • 1970-01-01
        • 2022-10-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多