From 016776939ea2dc59da58f6b5e38fe079928985bb Mon Sep 17 00:00:00 2001 From: Frh Date: Sat, 25 Apr 2020 20:51:00 -0700 Subject: [PATCH] Plot improvements, address 132 Plot takes an optional axes parameter, allowing notebooks more flexibility. Header heuristic in hybrid won't include headers which span the entire table. Added unit test for issue #132 Fixes https://github.com/camelot-dev/camelot/issues/132 --- camelot/parsers/hybrid.py | 11 +- camelot/plotting.py | 107 ++++++++++-------- tests/data.py | 16 +++ .../camelot-issue-132-multiple-tables.pdf | Bin 0 -> 62330 bytes tests/test_common.py | 15 ++- 5 files changed, 99 insertions(+), 50 deletions(-) create mode 100644 tests/files/camelot-issue-132-multiple-tables.pdf diff --git a/camelot/parsers/hybrid.py b/camelot/parsers/hybrid.py index 9410614..17b51a9 100644 --- a/camelot/parsers/hybrid.py +++ b/camelot/parsers/hybrid.py @@ -5,6 +5,7 @@ from __future__ import division import numpy as np import copy +import math from .base import TextBaseParser from ..core import ( @@ -120,7 +121,15 @@ def search_header_from_body_bbox(body_bbox, textlines, col_anchors, max_v_gap): ) ) ) - if max_spread <= MAX_COL_SPREAD_IN_HEADER: + + # Accept textlines that cross columns boundaries, as long as they + # cross less than MAX_COL_SPREAD_IN_HEADER, and half the number of + # columns. + # This is to avoid picking unrelated paragraphs. + if max_spread <= min( + MAX_COL_SPREAD_IN_HEADER, + math.ceil(len(col_anchors) / 2) + ): # Combined, the elements we've identified don't cross more # than the authorized number of columns. # We're trying to avoid diff --git a/camelot/plotting.py b/camelot/plotting.py index 81d9694..12ba457 100644 --- a/camelot/plotting.py +++ b/camelot/plotting.py @@ -65,9 +65,9 @@ def draw_pdf(table, ax, to_pdf_scale=True): ---------- table : camelot.core.Table - ax : matplotlib.axes.Axes + ax : matplotlib.axes.Axes (optional) - to_pdf_scale : bool + to_pdf_scale : bool (optional) """ img = table.get_pdf_image() @@ -83,6 +83,7 @@ def draw_parse_constraints(table, ax): Parameters ---------- table : camelot.core.Table + ax : matplotlib.axes.Axes (optional) ax : matplotlib.axes.Axes @@ -110,8 +111,33 @@ def draw_parse_constraints(table, ax): ) +def prepare_plot(table, ax=None, to_pdf_scale=True): + """Initialize plot and draw common components + + Parameters + ---------- + table : camelot.core.Table + ax : matplotlib.axes.Axes (optional) + to_pdf_scale : + + ax : matplotlib.axes.Axes + + to_pdf_scale : bool (optional) + + Returns + ------- + ax : matplotlib.axes.Axes + """ + if ax is None: + fig = plt.figure() + ax = fig.add_subplot(111, aspect="equal") + draw_pdf(table, ax, to_pdf_scale) + draw_parse_constraints(table, ax) + return ax + + class PlotMethods(object): - def __call__(self, table, kind="text", filename=None): + def __call__(self, table, kind="text", filename=None, ax=None): """Plot elements found on PDF page based on kind specified, useful for debugging and playing with different parameters to get the best output. @@ -144,26 +170,24 @@ class PlotMethods(object): ) plot_method = getattr(self, kind) - return plot_method(table) + return plot_method(table, ax) @staticmethod - def text(table): + def text(table, ax=None): """Generates a plot for all text elements present on the PDF page. Parameters ---------- table : camelot.core.Table + ax : matplotlib.axes.Axes (optional) Returns ------- fig : matplotlib.fig.Figure """ - fig = plt.figure() - ax = fig.add_subplot(111, aspect="equal") - draw_pdf(table, ax) - draw_parse_constraints(table, ax) + ax = prepare_plot(table, ax) xs, ys = [], [] for t in table._text: xs.extend([t[0], t[2]]) @@ -178,26 +202,24 @@ class PlotMethods(object): ) ax.set_xlim(min(xs) - 10, max(xs) + 10) ax.set_ylim(min(ys) - 10, max(ys) + 10) - return fig + return ax.get_figure() @staticmethod - def grid(table): + def grid(table, ax=None): """Generates a plot for the detected table grids on the PDF page. Parameters ---------- table : camelot.core.Table + ax : matplotlib.axes.Axes (optional) Returns ------- fig : matplotlib.fig.Figure """ - fig = plt.figure() - ax = fig.add_subplot(111, aspect="equal") - draw_pdf(table, ax) - draw_parse_constraints(table, ax) + ax = prepare_plot(table, ax) for row in table.cells: for cell in row: if cell.left: @@ -208,27 +230,25 @@ class PlotMethods(object): ax.plot([cell.lt[0], cell.rt[0]], [cell.lt[1], cell.rt[1]]) if cell.bottom: ax.plot([cell.lb[0], cell.rb[0]], [cell.lb[1], cell.rb[1]]) - return fig + return ax.get_figure() @staticmethod - def contour(table): + def contour(table, ax=None): """Generates a plot for all table boundaries present on the PDF page. Parameters ---------- table : camelot.core.Table + ax : matplotlib.axes.Axes (optional) Returns ------- fig : matplotlib.fig.Figure """ - fig = plt.figure() - ax = fig.add_subplot(111, aspect="equal") _FOR_LATTICE = table.flavor == "lattice" - draw_pdf(table, ax, to_pdf_scale=not _FOR_LATTICE) - draw_parse_constraints(table, ax) + ax = prepare_plot(table, ax, to_pdf_scale=not _FOR_LATTICE) if _FOR_LATTICE: table_bbox = table._bbox_unscaled @@ -260,25 +280,23 @@ class PlotMethods(object): ys.extend([t[1], t[3]]) ax.set_xlim(min(xs) - 10, max(xs) + 10) ax.set_ylim(min(ys) - 10, max(ys) + 10) - return fig + return ax.get_figure() @staticmethod - def textedge(table): + def textedge(table, ax=None): """Generates a plot for relevant textedges. Parameters ---------- table : camelot.core.Table + ax : matplotlib.axes.Axes (optional) Returns ------- fig : matplotlib.fig.Figure """ - fig = plt.figure() - ax = fig.add_subplot(111, aspect="equal") - draw_pdf(table, ax) - draw_parse_constraints(table, ax) + ax = prepare_plot(table, ax) xs, ys = [], [] for t in table._text: xs.extend([t[0], t[2]]) @@ -352,26 +370,24 @@ class PlotMethods(object): else: for te in table._textedges: ax.plot([te.coord, te.coord], [te.y0, te.y1]) - return fig + return ax.get_figure() @staticmethod - def joint(table): + def joint(table, ax=None): """Generates a plot for all line intersections present on the PDF page. Parameters ---------- table : camelot.core.Table + ax : matplotlib.axes.Axes (optional) Returns ------- fig : matplotlib.fig.Figure """ - fig = plt.figure() - ax = fig.add_subplot(111, aspect="equal") - draw_pdf(table, ax, to_pdf_scale=False) - draw_parse_constraints(table, ax) + ax = prepare_plot(table, ax, to_pdf_scale=False) table_bbox = table._bbox_unscaled x_coord = [] y_coord = [] @@ -380,53 +396,48 @@ class PlotMethods(object): x_coord.append(coord[0]) y_coord.append(coord[1]) ax.plot(x_coord, y_coord, "ro") - return fig + return ax.get_figure() @staticmethod - def line(table): + def line(table, ax=None): """Generates a plot for all line segments present on the PDF page. Parameters ---------- table : camelot.core.Table + ax : matplotlib.axes.Axes (optional) Returns ------- fig : matplotlib.fig.Figure """ - fig = plt.figure() - ax = fig.add_subplot(111, aspect="equal") - draw_pdf(table, ax) - draw_parse_constraints(table, ax) + ax = prepare_plot(table, ax) vertical, horizontal = table._segments for v in vertical: ax.plot([v[0], v[2]], [v[1], v[3]]) for h in horizontal: ax.plot([h[0], h[2]], [h[1], h[3]]) - return fig + return ax.get_figure() @staticmethod - def hybrid_table_search(table): + def hybrid_table_search(table, ax=None): """Generates a plot illustrating the steps of the hybrid table search. Parameters ---------- table : camelot.core.Table + ax : matplotlib.axes.Axes (optional) Returns ------- fig : matplotlib.fig.Figure """ - fig = plt.figure() - ax = fig.add_subplot(111, aspect="equal") - draw_pdf(table, ax) - draw_parse_constraints(table, ax) - + ax = prepare_plot(table, ax) if table.parse_details is None: - return fig + return ax.get_figure() parse_details = table.parse_details for box_id, bbox_search in enumerate(parse_details["bbox_searches"]): max_h_gap = bbox_search["max_h_gap"] @@ -476,4 +487,4 @@ class PlotMethods(object): label_pos="bottom,left" ) - return fig + return ax.get_figure() diff --git a/tests/data.py b/tests/data.py index 1205de7..ccb0d7e 100755 --- a/tests/data.py +++ b/tests/data.py @@ -1609,6 +1609,22 @@ data_stream_two_tables_2 = [ ["1 Except forcible rape and prostitution.", "", "", "", "", ""], ] +data_hybrid_two_tables_b_1 = [ + ["1", "Ghfhbdhj", "1", "Hgfdhgjsdhjdsf"], + ["Vgvhgh", "Hj", "Hj", "Hj"], + ["Hj", "Hj", "Hj", "Hj"], + ["Hj", "Hj", "J", "Hj"], + ["V", "C", "D", "Gfhj"], + ["Hjb", "B", "Jhbh", "Hj"], + ["Hjdhshj", "Hjhjhh", "Ddnj", "dsxv"], +] + +data_hybrid_two_tables_b_2 = [ + ["Trtrt", "H", "Gh"], + ["Gh", "V", "Hv"], + ["Hv", "Bhjb", "hg"], +] + # The streaming algorithm incorrectly includes a header and a footer. # Trimming the table for the test of hybrid, which doesn't include it. data_hybrid_two_tables_2 = data_stream_two_tables_2[3:-1] diff --git a/tests/files/camelot-issue-132-multiple-tables.pdf b/tests/files/camelot-issue-132-multiple-tables.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0b9d854badde4ff4ddfd1f7f22ed67d41f07137d GIT binary patch literal 62330 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