3

我想知道是否有熟悉 Python 的 tabula-py 模块的人可以帮助我解决这个问题。如果没有将格参数传递给函数,则在任何tabula-py文档中都不清楚该tabula.read_pdf()函数是否使用模式提取作为其默认设置。代码是否会根据 pdf 文本中遇到的“表格”以某种方式猜测这两种模式中的哪一种更可取,如果不是,您能否澄清两种提取模式中的哪一种被用作默认模式(因此呈现这两个参数是多余的,因为事实上,如果您将lattice设置为False那么您必须根据定义将流设置为True,反之亦然)?提前致谢。

tabula.read_pdf()将模式设置为格或流模式提取很容易,所以这不是我的问题。如果我不指定要使用哪一种,我只想知道这两种中的哪一种用作默认提取模式。

4

2 回答 2

0

Camelot 中解析方法的命名(即 Lattice 和 Stream)的灵感来自 Tabula。Lattice 用于解析单元格之间有分界线的表格,而 Stream 用于解析单元格之间有空格的表格以模拟表格结构。


https://github.com/camelot-dev/camelot/wiki/Comparison-with-other-PDF-Table-Extraction-libraries-and-tools

您将通过此存储库获得更好的理解

于 2021-08-16T04:27:48.837 回答
0

如果我理解正确,tabula-java 使用 DECIDE 方法,该方法逐页动态应用电子表格和格子。 https://github.com/tabulapdf/tabula-java/blob/21b124660a90127d2867a48db04d6412d9c4f438/src/main/java/technology/tabula/CommandLineApp.java#L258

请注意,在 tabula-java 1.0.2 之前,使用guess 选项默认强制使用点阵模式。tabula-py 1.4.0 使用 tabula-java 1.0.3,所以你可以分别使用 guess 和 stream/lattice。

于 2019-07-27T03:38:35.360 回答