{"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/doc2soargraph-discrete-reasoning-over","title":"Doc2SoarGraph: Discrete Reasoning over Visually-Rich Table-Text Documents via Semantic-Oriented Hierarchical Graphs","arxiv_id":"2305.01938","date":"2023-05-03","proceeding":null,"authors":["Fengbin Zhu","Chao Wang","Fuli Feng","Zifeng Ren","Moxin Li","Tat-Seng Chua"],"abstract":"Discrete reasoning over table-text documents (e.g., financial reports) gains increasing attention in recent two years. Existing works mostly simplify this challenge by manually selecting and transforming document pages to structured tables and paragraphs, hindering their practical application. In this work, we explore a more realistic problem setting in the form of TAT-DQA, i.e. to answer the question over a visually-rich table-text document. Specifically, we propose a novel Doc2SoarGraph framework with enhanced discrete reasoning capability by harnessing the differences and correlations among different elements (e.g., quantities, dates) of the given question and document with Semantic-oriented hierarchical Graph structures. We conduct extensive experiments on TAT-DQA dataset, and the results show that our proposed framework outperforms the best baseline model by 17.73% and 16.91% in terms of Exact Match (EM) and F1 score respectively on the test set, achieving the new state-of-the-art.","url_abs":"https://arxiv.org/abs/2305.01938v3","url_pdf":"https://arxiv.org/pdf/2305.01938v3.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":"doc2soargraph-discrete-reasoning-over","repo_url":"https://github.com/fengbinzhu/doc2soargraph","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"jax","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[{"method_slug":"test","method_name":"Test"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2305.01938","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.01938"}},"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/fengbinzhu/doc2soargraph","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_honours":3,"ran":2,"unverified":14},"by_repo_kind":{"official":{"samples":19,"ran":5,"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":0,"samples":[{"code_sha256_prefix":"56a9ab06b860b180","entry":"gelu","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/tree_model.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/tree_model.py","link_basis":"plan_row","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":"56a9ab06b860b180"}},{"code_sha256_prefix":"899d1e2736236351","entry":"is_remote_url","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/file_utils.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/file_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"899d1e2736236351"}},{"code_sha256_prefix":"56ffa4b32330ceab","entry":"torch_only_method","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/file_utils.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/file_utils.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"56ffa4b32330ceab"}},{"code_sha256_prefix":"e7d542062316094a","entry":"warmup_constant","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/optimizer.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/optimizer.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e7d542062316094a"}},{"code_sha256_prefix":"c58d57224530d17e","entry":"warmup_linear","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/optimizer.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/optimizer.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c58d57224530d17e"}},{"code_sha256_prefix":"10844798fc58cc7d","entry":"create_logger","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/sys_util.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/sys_util.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"10844798fc58cc7d"}},{"code_sha256_prefix":"e5ec43ad6ecbb2b9","entry":"extract_feature_from_image","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/layout_model.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/layout_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e5ec43ad6ecbb2b9"}},{"code_sha256_prefix":"3f39764e4b17918b","entry":"extract_gold_answers","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"tatqa_metric.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/tatqa_metric.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3f39764e4b17918b"}},{"code_sha256_prefix":"b591a51b9d4dd3bb","entry":"extract_one_num_from_str","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"tatqa_utils.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/tatqa_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b591a51b9d4dd3bb"}},{"code_sha256_prefix":"4f6c175642bee7dc","entry":"get_arithmetic_input","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/model_doc2soar.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/model_doc2soar.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4f6c175642bee7dc"}},{"code_sha256_prefix":"85bc6fd421c42e7c","entry":"get_logger","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/log.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/log.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"85bc6fd421c42e7c"}},{"code_sha256_prefix":"06efa6795b7a9514","entry":"masked_cross_entropy","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/tree_model.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/tree_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"06efa6795b7a9514"}},{"code_sha256_prefix":"03692148eacb9928","entry":"metric_max_over_ground_truths","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"tatqa_metric.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/tatqa_metric.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"03692148eacb9928"}},{"code_sha256_prefix":"b97f0283fababae5","entry":"normalize_bbox","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/layout_model.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/layout_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b97f0283fababae5"}},{"code_sha256_prefix":"2cd9135e83a62a04","entry":"replace_return_docstrings","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/file_utils.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/file_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2cd9135e83a62a04"}},{"code_sha256_prefix":"71b0d5b420628a19","entry":"scale_to_num","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"tatqa_utils.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/tatqa_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"71b0d5b420628a19"}},{"code_sha256_prefix":"aa9d285348e69a1a","entry":"sequence_mask","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/tree_model.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/tree_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"aa9d285348e69a1a"}},{"code_sha256_prefix":"8550db0b2a901b9c","entry":"simple_extract_one_num_from_str","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"tatqa_utils.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/tatqa_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8550db0b2a901b9c"}},{"code_sha256_prefix":"35f7cddf90dd05d4","entry":"warmup_cosine","repo":"fengbinzhu/doc2soargraph","repo_kind":"official","path":"etr/model/optimizer.py","file_url":"https://github.com/fengbinzhu/doc2soargraph/blob/HEAD/etr/model/optimizer.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":true,"mcp_get_code":{"code_sha256":"35f7cddf90dd05d4"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}