461bf6fd40
CI / lint (3.11) (push) Has been cancelled
CI / lint (3.12) (push) Has been cancelled
CI / lint (3.13) (push) Has been cancelled
CI / shellcheck (push) Has been cancelled
CI / shfmt (push) Has been cancelled
CI / setup (3.11) (push) Has been cancelled
CI / setup (3.12) (push) Has been cancelled
CI / setup (3.13) (push) Has been cancelled
CI / check-licenses (3.12) (push) Has been cancelled
CI / test_unit (3.11) (push) Has been cancelled
CI / test_unit (3.12) (push) Has been cancelled
CI / test_unit (3.13) (push) Has been cancelled
CI / test_unit_no_extras (3.11) (push) Has been cancelled
CI / test_unit_no_extras (3.12) (push) Has been cancelled
CI / test_json_to_html (3.12) (push) Has been cancelled
CI / test_unit_no_extras (3.13) (push) Has been cancelled
CI / test_unit_dependency_extras (csv, 3.12, --extra csv) (push) Has been cancelled
CI / test_unit_dependency_extras (xlsx, 3.11, --extra xlsx) (push) Has been cancelled
CI / test_unit_dependency_extras (xlsx, 3.12, --extra xlsx) (push) Has been cancelled
CI / test_unit_dependency_extras (csv, 3.11, --extra csv) (push) Has been cancelled
CI / test_unit_dependency_extras (csv, 3.13, --extra csv) (push) Has been cancelled
CI / test_unit_dependency_extras (docx, 3.11, --extra docx) (push) Has been cancelled
CI / test_unit_dependency_extras (docx, 3.12, --extra docx) (push) Has been cancelled
CI / test_unit_dependency_extras (docx, 3.13, --extra docx) (push) Has been cancelled
CI / test_unit_dependency_extras (markdown, 3.11, --extra md) (push) Has been cancelled
CI / test_unit_dependency_extras (markdown, 3.12, --extra md) (push) Has been cancelled
CI / test_unit_dependency_extras (markdown, 3.13, --extra md) (push) Has been cancelled
CI / test_unit_dependency_extras (odt, 3.11, --extra odt) (push) Has been cancelled
CI / test_unit_dependency_extras (odt, 3.12, --extra odt) (push) Has been cancelled
CI / test_unit_dependency_extras (odt, 3.13, --extra odt) (push) Has been cancelled
CI / test_unit_dependency_extras (pdf-image, 3.11, --extra pdf --extra image --extra paddleocr) (push) Has been cancelled
CI / test_unit_dependency_extras (pdf-image, 3.12, --extra pdf --extra image --extra paddleocr) (push) Has been cancelled
CI / test_unit_dependency_extras (pdf-image, 3.13, --extra pdf --extra image --extra paddleocr) (push) Has been cancelled
CI / test_unit_dependency_extras (pptx, 3.11, --extra pptx) (push) Has been cancelled
CI / test_unit_dependency_extras (pptx, 3.12, --extra pptx) (push) Has been cancelled
CI / test_unit_dependency_extras (pptx, 3.13, --extra pptx) (push) Has been cancelled
CI / test_unit_dependency_extras (pypandoc, 3.11, --extra epub --extra org --extra rtf --extra rst) (push) Has been cancelled
CI / test_unit_dependency_extras (pypandoc, 3.12, --extra epub --extra org --extra rtf --extra rst) (push) Has been cancelled
CI / test_unit_dependency_extras (pypandoc, 3.13, --extra epub --extra org --extra rtf --extra rst) (push) Has been cancelled
Build And Push Docker Image / set-short-sha (push) Has been cancelled
Partition Benchmark / setup (push) Has been cancelled
Partition Benchmark / Measure and compare partition() runtime (push) Has been cancelled
CI / test_unit_dependency_extras (xlsx, 3.13, --extra xlsx) (push) Has been cancelled
CI / test_ingest_src (3.12) (push) Has been cancelled
CI / test_json_to_markdown (3.12) (push) Has been cancelled
CI / changelog (push) Has been cancelled
CI / test_dockerfile (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Build And Push Docker Image / build-images (linux/amd64, opensource-linux-8core) (push) Has been cancelled
Build And Push Docker Image / build-images (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Build And Push Docker Image / publish-images (push) Has been cancelled
170 lines
5.8 KiB
Python
170 lines
5.8 KiB
Python
from unstructured_inference.inference.elements import TextRegion, TextRegions
|
|
from unstructured_inference.inference.layoutelement import LayoutElement, LayoutElements
|
|
|
|
from unstructured.documents.elements import ElementType
|
|
from unstructured.partition.pdf_image.inference_utils import (
|
|
build_layout_elements_from_ocr_regions,
|
|
merge_text_regions,
|
|
)
|
|
|
|
|
|
def test_merge_text_regions(mock_embedded_text_regions):
|
|
expected = TextRegion.from_coords(
|
|
x1=437.83888888888885,
|
|
y1=317.319341111111,
|
|
x2=1256.334784222222,
|
|
y2=406.9837855555556,
|
|
text="LayoutParser: A Unified Toolkit for Deep Learning Based Document Image",
|
|
)
|
|
|
|
merged_text_region = merge_text_regions(TextRegions.from_list(mock_embedded_text_regions))
|
|
assert merged_text_region == expected
|
|
|
|
|
|
def test_build_layout_elements_from_ocr_regions(mock_embedded_text_regions):
|
|
expected = LayoutElements.from_list(
|
|
[
|
|
LayoutElement.from_coords(
|
|
x1=437.83888888888885,
|
|
y1=317.319341111111,
|
|
x2=1256.334784222222,
|
|
y2=406.9837855555556,
|
|
text="LayoutParser: A Unified Toolkit for Deep Learning Based Document Image",
|
|
type=ElementType.UNCATEGORIZED_TEXT,
|
|
),
|
|
]
|
|
)
|
|
|
|
elements = build_layout_elements_from_ocr_regions(
|
|
TextRegions.from_list(mock_embedded_text_regions)
|
|
)
|
|
assert elements == expected
|
|
|
|
|
|
def test_build_layout_elements_from_ocr_regions_with_text(mock_embedded_text_regions):
|
|
text = "LayoutParser: A Unified Toolkit for Deep Learning Based Document Image"
|
|
expected = LayoutElements.from_list(
|
|
[
|
|
LayoutElement.from_coords(
|
|
x1=437.83888888888885,
|
|
y1=317.319341111111,
|
|
x2=1256.334784222222,
|
|
y2=406.9837855555556,
|
|
text=text,
|
|
type=ElementType.UNCATEGORIZED_TEXT,
|
|
),
|
|
]
|
|
)
|
|
|
|
elements = build_layout_elements_from_ocr_regions(
|
|
TextRegions.from_list(mock_embedded_text_regions),
|
|
text,
|
|
group_by_ocr_text=True,
|
|
)
|
|
assert elements == expected
|
|
|
|
|
|
def test_build_layout_elements_from_ocr_regions_with_multi_line_text(mock_embedded_text_regions):
|
|
text = "LayoutParser: \n\nA Unified Toolkit for Deep Learning Based Document Image"
|
|
elements = build_layout_elements_from_ocr_regions(
|
|
TextRegions.from_list(mock_embedded_text_regions),
|
|
text,
|
|
group_by_ocr_text=True,
|
|
)
|
|
assert elements == LayoutElements.from_list(
|
|
[
|
|
LayoutElement.from_coords(
|
|
x1=453.00277777777774,
|
|
y1=317.319341111111,
|
|
x2=711.5338541666665,
|
|
y2=358.28571222222206,
|
|
text="LayoutParser:",
|
|
type=ElementType.UNCATEGORIZED_TEXT,
|
|
),
|
|
LayoutElement.from_coords(
|
|
x1=437.83888888888885,
|
|
y1=317.319341111111,
|
|
x2=1256.334784222222,
|
|
y2=406.9837855555556,
|
|
text="A Unified Toolkit for Deep Learning Based Document Image",
|
|
type=ElementType.UNCATEGORIZED_TEXT,
|
|
),
|
|
]
|
|
)
|
|
|
|
|
|
def test_build_layout_elements_from_ocr_regions_with_repeated_texts(mock_embedded_text_regions):
|
|
mock_embedded_text_regions.extend(
|
|
[
|
|
LayoutElement.from_coords(
|
|
x1=453.00277777777774,
|
|
y1=417.319341111111,
|
|
x2=711.5338541666665,
|
|
y2=458.28571222222206,
|
|
text="LayoutParser",
|
|
type=ElementType.UNCATEGORIZED_TEXT,
|
|
),
|
|
LayoutElement.from_coords(
|
|
x1=453.00277777777774,
|
|
y1=468.319341111111,
|
|
x2=711.5338541666665,
|
|
y2=478.28571222222206,
|
|
text="for",
|
|
type=ElementType.UNCATEGORIZED_TEXT,
|
|
),
|
|
LayoutElement.from_coords(
|
|
x1=453.00277777777774,
|
|
y1=488.319341111111,
|
|
x2=711.5338541666665,
|
|
y2=500.28571222222206,
|
|
text="Deep",
|
|
type=ElementType.UNCATEGORIZED_TEXT,
|
|
),
|
|
LayoutElement.from_coords(
|
|
x1=453.00277777777774,
|
|
y1=510.319341111111,
|
|
x2=711.5338541666665,
|
|
y2=550.28571222222206,
|
|
text="Learning",
|
|
type=ElementType.UNCATEGORIZED_TEXT,
|
|
),
|
|
]
|
|
)
|
|
text = (
|
|
"LayoutParser: \n\nA Unified Toolkit for Deep Learning Based Document Image\n\n"
|
|
"LayoutParser for Deep Learning"
|
|
)
|
|
elements = build_layout_elements_from_ocr_regions(
|
|
TextRegions.from_list(mock_embedded_text_regions),
|
|
text,
|
|
group_by_ocr_text=True,
|
|
)
|
|
assert elements == LayoutElements.from_list(
|
|
[
|
|
LayoutElement.from_coords(
|
|
x1=453.00277777777774,
|
|
y1=317.319341111111,
|
|
x2=711.5338541666665,
|
|
y2=358.28571222222206,
|
|
text="LayoutParser:",
|
|
type=ElementType.UNCATEGORIZED_TEXT,
|
|
),
|
|
LayoutElement.from_coords(
|
|
x1=437.83888888888885,
|
|
y1=317.319341111111,
|
|
x2=1256.334784222222,
|
|
y2=406.9837855555556,
|
|
text="A Unified Toolkit for Deep Learning Based Document Image",
|
|
type=ElementType.UNCATEGORIZED_TEXT,
|
|
),
|
|
LayoutElement.from_coords(
|
|
x1=453.00277777777774,
|
|
y1=417.319341111111,
|
|
x2=711.5338541666665,
|
|
y2=550.28571222222206,
|
|
text="LayoutParser for Deep Learning",
|
|
type=ElementType.UNCATEGORIZED_TEXT,
|
|
),
|
|
]
|
|
)
|