CoolFace
Datasetpublic

abhishekjha1008/historical-table-reading-order

Reading order in historical documents A small, reproducible study of one question: on a historical page with more than one column, the hard part is usually not finding the text lines, but deciding the order to read them in, and that order is what a text recogniser is ultimately given. Live results (every page browsable, side by side): https://valhtrdata01.z1.web.core.windows.net/ Code and data: https://github.com/AbhiPandit1/historical-table-reading-order What is… See the full description on the dataset page: https://huggingface.co/datasets/abhishekjha1008/historical-table-reading-order.

sourceHugging Facemitupdated 2d agoView on Hugging Face
0likes30downloads
Dataset Card

Reading order in historical documents

A small, reproducible study of one question: on a historical page with more than one column, the hard part is usually not finding the text lines, but deciding the order to read them in, and that order is what a text recogniser is ultimately given.

  • —Live results (every page browsable, side by side): https://valhtrdata01.z1.web.core.windows.net/
  • —Code and data: https://github.com/AbhiPandit1/historical-table-reading-order

What is measured

For each page and system: detection (did it find the lines? F and coverage at IoU ≥ 0.5) and reading order (Kendall τ between the system's order and the ground-truth document order, on matched lines). A validity guard reports τ only where a system matched at least 15 lines and 30% of the page.

Data

  • —Court hands (columns): Göta hovrätt and Trolldomskommissionen, from Riksarkivet's own open datasets.
  • —Handwritten tables: HisClima (log of the USS Jeannette Arctic expedition, 1879-1881, CC-BY-4.0), 198 pages with row/column cell ground truth.

Results on the tables (198 pages)

SystemReading-order τDetection F / coveragePages scored
PP-StructureV3 (plain OCR)0.880.34 / 34%165
A small row-by-row step0.69full coverage198
Table Transformer (Microsoft)0.68given the lines198
Naive top-to-bottom0.66full coverage198
PP-StructureV3 (table recognition)0.64given the lines127
Column-major (wrong mode)0.21full coverage198
krakenfew lines found0.13 / 9%0
Tesseractfew lines found0.03 / 2%0
htrflowfew lines found0.01 / 0.6%0

A few honest observations:

  • —On these dense handwritten tables, most detectors find very few of the lines. Detection, not ordering, is the harder problem there.
  • —PP-Structure's plain-OCR order shows the highest τ, but only over the 34% of lines it finds. On those same lines the simple step scores 0.85, about level. It reflects coverage, not a better order.
  • —Among methods that order every line, the simple step is level with Microsoft's Table Transformer and a little above the others. They all reach the same ceiling (τ ≈ 0.68), because about 86% of neighbouring rows overlap vertically on these wide handwritten pages. That is a shared open problem, not a weakness of one method.

On the two-column court hands detection is easy for everyone and only the order differs: htrflow's out-of-the-box pipeline reads across the columns on about half the pages, while reading down each column first matches the ground truth.

Author

Abhishek Jha. MIT licensed. Comments and collaboration welcome.