From 9d58b34ab41a20d0f63de73a42fc9fa04d2dfa8a Mon Sep 17 00:00:00 2001 From: Yao You Date: Fri, 31 Jan 2025 12:19:14 -0600 Subject: [PATCH] Fix/fix table id checking logic (#3898) - there is a bug in deciding if a page has tables before performing table extraction. This logic checks if the id associated with Table type element is True - however, it should be checking if the id is `None` because sometimes the id can be 0 (the first type of element in the page) - the fix updates the logic - adds a unit test for this specific case --- CHANGELOG.md | 1 + example-docs/pdf/single_table.pdf | Bin 0 -> 79183 bytes .../partition/pdf_image/test_ocr.py | 28 +++++++++++++++++- unstructured/partition/pdf_image/ocr.py | 2 +- 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 example-docs/pdf/single_table.pdf diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e288dac0..74511a5e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Features ### Fixes +- **fix a bug where table extraction is skipped when it shouldn't**. Pages with just one table as its content or starts with a table misses table extraction. The routing logic is now fixed. ## 0.16.18-dev1 diff --git a/example-docs/pdf/single_table.pdf b/example-docs/pdf/single_table.pdf new file mode 100644 index 0000000000000000000000000000000000000000..55fdf336a2d03d0f1429e92b76e3779b86ae29fb GIT binary patch literal 79183 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

y|O4 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%0DvFIFVuWAm1zK$%vx8OAvZnlO?U$bsJC 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 literal 0 HcmV?d00001 diff --git a/test_unstructured/partition/pdf_image/test_ocr.py b/test_unstructured/partition/pdf_image/test_ocr.py index 28fa0493c..76d0e94a3 100644 --- a/test_unstructured/partition/pdf_image/test_ocr.py +++ b/test_unstructured/partition/pdf_image/test_ocr.py @@ -16,9 +16,13 @@ from unstructured_inference.inference.layoutelement import ( LayoutElements, ) +from test_unstructured.unit_utils import example_doc_path from unstructured.documents.elements import ElementType from unstructured.partition.pdf_image import ocr -from unstructured.partition.pdf_image.pdf_image_utils import pad_element_bboxes +from unstructured.partition.pdf_image.pdf_image_utils import ( + convert_pdf_to_images, + pad_element_bboxes, +) from unstructured.partition.utils.config import env_config from unstructured.partition.utils.constants import ( Source, @@ -436,6 +440,28 @@ def mock_ocr_layout(): ) +def test_supplement_element_with_table_extraction(): + from unstructured_inference.models import tables + + tables.load_agent() + + image = next(convert_pdf_to_images(example_doc_path("pdf/single_table.pdf"))) + elements = LayoutElements( + element_coords=np.array([[215.00109863, 731.89996338, 1470.07739258, 972.83129883]]), + texts=np.array(["foo"]), + sources=np.array(["yolox_sg"]), + element_class_ids=np.array([0]), + element_class_id_map={0: "Table"}, + ) + supplemented = ocr.supplement_element_with_table_extraction( + elements=elements, + image=image, + tables_agent=tables.tables_agent, + ocr_agent=ocr.OCRAgent.get_agent(language="eng"), + ) + assert supplemented.text_as_html[0].startswith("") + + def test_get_table_tokens(mock_ocr_layout): with patch.object(OCRAgentTesseract, "get_layout_from_image", return_value=mock_ocr_layout): ocr_agent = OCRAgent.get_agent(language="eng") diff --git a/unstructured/partition/pdf_image/ocr.py b/unstructured/partition/pdf_image/ocr.py index eb3a82714..9e139af52 100644 --- a/unstructured/partition/pdf_image/ocr.py +++ b/unstructured/partition/pdf_image/ocr.py @@ -276,7 +276,7 @@ def supplement_element_with_table_extraction( from unstructured_inference.models.tables import cells_to_html table_id = {v: k for k, v in elements.element_class_id_map.items()}.get(ElementType.TABLE) - if not table_id: + if table_id is None: # no table found in this page return elements