{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/scientific-evidence-extraction","title":"PubTables-1M: Towards comprehensive table extraction from unstructured documents","arxiv_id":"2110.00061","date":"2021-09-30","proceeding":"CVPR 2022 1","authors":["Brandon Smock","Rohith Pesala","Robin Abraham"],"abstract":"Recently, significant progress has been made applying machine learning to the problem of table structure inference and extraction from unstructured documents. However, one of the greatest challenges remains the creation of datasets with complete, unambiguous ground truth at scale. To address this, we develop a new, more comprehensive dataset for table extraction, called PubTables-1M. PubTables-1M contains nearly one million tables from scientific articles, supports multiple input modalities, and contains detailed header and location information for table structures, making it useful for a wide variety of modeling approaches. It also addresses a significant source of ground truth inconsistency observed in prior datasets called oversegmentation, using a novel canonicalization procedure. We demonstrate that these improvements lead to a significant increase in training performance and a more reliable estimate of model performance at evaluation for table structure recognition. Further, we show that transformer-based object detection models trained on PubTables-1M produce excellent results for all three tasks of detection, structure recognition, and functional analysis without the need for any special customization for these tasks. Data and code will be released at https://github.com/microsoft/table-transformer.","url_abs":"https://arxiv.org/abs/2110.00061v3","url_pdf":"https://arxiv.org/pdf/2110.00061v3.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"scientific-evidence-extraction","repo_url":"https://github.com/microsoft/table-transformer","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"scientific-evidence-extraction","repo_url":"https://github.com/phamquiluan/table-transformer","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"articles","task_name":"Articles"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"table-detection","task_name":"Table Detection"},{"task_slug":"table-extraction","task_name":"Table Extraction"},{"task_slug":"table-functional-analysis","task_name":"Table Functional Analysis"},{"task_slug":"table-recognition","task_name":"Table Recognition"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"detr","method_name":"Detr"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"feedforward-network","method_name":"Feedforward Network"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"}],"datasets_introduced":[{"slug":"pubtables-1m","name":"PubTables-1M","full_name":"PubMed Tables One Million"}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2110.00061","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.00061"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/phamquiluan/table-transformer","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/microsoft/table-transformer","reach":null}],"summary":{"ran_honours":3,"ran_draft_wrong":1,"ran_fixture":1,"unverified":8},"by_repo_kind":{"official":{"samples":3,"ran":3,"repositories":1},"listed":{"samples":10,"ran":2,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":10,"samples":[{"code_sha256_prefix":"52d4b812bdc17687","entry":"box_cxcywh_to_xyxy","repo":"microsoft/table-transformer","repo_kind":"official","path":"src/inference.py","file_url":"https://github.com/microsoft/table-transformer/blob/HEAD/src/inference.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"52d4b812bdc17687"}},{"code_sha256_prefix":"e0a06ded5d4f6c3c","entry":"box_cxcywh_to_xyxy","repo":"phamquiluan/table-transformer","repo_kind":"listed","path":"src/transforms.py","file_url":"https://github.com/phamquiluan/table-transformer/blob/HEAD/src/transforms.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"e0a06ded5d4f6c3c"}},{"code_sha256_prefix":"031b02fb990284ba","entry":"box_xyxy_to_cxcywh","repo":"phamquiluan/table-transformer","repo_kind":"listed","path":"src/transforms.py","file_url":"https://github.com/phamquiluan/table-transformer/blob/HEAD/src/transforms.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"031b02fb990284ba"}},{"code_sha256_prefix":"0342a5d56baf82fb","entry":"get_class_map","repo":"microsoft/table-transformer","repo_kind":"official","path":"src/inference.py","file_url":"https://github.com/microsoft/table-transformer/blob/HEAD/src/inference.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0342a5d56baf82fb"}},{"code_sha256_prefix":"44195a5621bcf750","entry":"rescale_bboxes","repo":"microsoft/table-transformer","repo_kind":"official","path":"src/inference.py","file_url":"https://github.com/microsoft/table-transformer/blob/HEAD/src/inference.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"44195a5621bcf750"}},{"code_sha256_prefix":"8ac9e5fec2aa104d","entry":"align_1d","repo":"phamquiluan/table-transformer","repo_kind":"listed","path":"src/grits.py","file_url":"https://github.com/phamquiluan/table-transformer/blob/HEAD/src/grits.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"8ac9e5fec2aa104d"}},{"code_sha256_prefix":"ba4693e812106154","entry":"apply_class_thresholds","repo":"phamquiluan/table-transformer","repo_kind":"listed","path":"src/eval_utils.py","file_url":"https://github.com/phamquiluan/table-transformer/blob/HEAD/src/eval_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"ba4693e812106154"}},{"code_sha256_prefix":"4877ebf4c4df63a4","entry":"apply_threshold","repo":"phamquiluan/table-transformer","repo_kind":"listed","path":"src/eval_utils.py","file_url":"https://github.com/phamquiluan/table-transformer/blob/HEAD/src/eval_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"4877ebf4c4df63a4"}},{"code_sha256_prefix":"302ec916d91b12a8","entry":"build_transformer","repo":"phamquiluan/table-transformer","repo_kind":"listed","path":"detr/models/transformer.py","file_url":"https://github.com/phamquiluan/table-transformer/blob/HEAD/detr/models/transformer.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"302ec916d91b12a8"}},{"code_sha256_prefix":"3cac9717d8564e2d","entry":"crop_around_bbox_coco","repo":"phamquiluan/table-transformer","repo_kind":"listed","path":"src/table_datasets.py","file_url":"https://github.com/phamquiluan/table-transformer/blob/HEAD/src/table_datasets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"3cac9717d8564e2d"}},{"code_sha256_prefix":"7c2ef30ca5a59095","entry":"load_json","repo":"phamquiluan/table-transformer","repo_kind":"listed","path":"core.py","file_url":"https://github.com/phamquiluan/table-transformer/blob/HEAD/core.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"7c2ef30ca5a59095"}},{"code_sha256_prefix":"e914fd7c0331c5f1","entry":"read_pascal_voc","repo":"phamquiluan/table-transformer","repo_kind":"listed","path":"src/table_datasets.py","file_url":"https://github.com/phamquiluan/table-transformer/blob/HEAD/src/table_datasets.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"e914fd7c0331c5f1"}},{"code_sha256_prefix":"1503ee81768a3749","entry":"transpose","repo":"phamquiluan/table-transformer","repo_kind":"listed","path":"src/grits.py","file_url":"https://github.com/phamquiluan/table-transformer/blob/HEAD/src/grits.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":false,"mcp_get_code":{"code_sha256":"1503ee81768a3749"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}