{"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/reactable-enhancing-react-for-table-question","title":"ReAcTable: Enhancing ReAct for Table Question Answering","arxiv_id":"2310.00815","date":"2023-10-01","proceeding":null,"authors":["Yunjia Zhang","Jordan Henkel","Avrilia Floratou","Joyce Cahoon","Shaleen Deep","Jignesh M. Patel"],"abstract":"Table Question Answering (TQA) presents a substantial challenge at the intersection of natural language processing and data analytics. This task involves answering natural language (NL) questions on top of tabular data, demanding proficiency in logical reasoning, understanding of data semantics, and fundamental analytical capabilities. Due to its significance, a substantial volume of research has been dedicated to exploring a wide range of strategies aimed at tackling this challenge including approaches that leverage Large Language Models (LLMs) through in-context learning or Chain-of-Thought (CoT) prompting as well as approaches that train and fine-tune custom models. Nonetheless, a conspicuous gap exists in the research landscape, where there is limited exploration of how innovative foundational research, which integrates incremental reasoning with external tools in the context of LLMs, as exemplified by the ReAct paradigm, could potentially bring advantages to the TQA task. In this paper, we aim to fill this gap, by introducing ReAcTable (ReAct for Table Question Answering tasks), a framework inspired by the ReAct paradigm that is carefully enhanced to address the challenges uniquely appearing in TQA tasks such as interpreting complex data semantics, dealing with errors generated by inconsistent data and generating intricate data transformations. ReAcTable relies on external tools such as SQL and Python code executors, to progressively enhance the data by generating intermediate data representations, ultimately transforming it into a more accessible format for answering the questions with greater ease. We demonstrate that ReAcTable achieves remarkable performance even when compared to fine-tuned approaches. In particular, it outperforms the best prior result on the WikiTQ benchmark, achieving an accuracy of 68.0% without requiring training a new model or fine-tuning.","url_abs":"https://arxiv.org/abs/2310.00815v1","url_pdf":"https://arxiv.org/pdf/2310.00815v1.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":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"reactable-enhancing-react-for-table-question","repo_url":"https://github.com/yunjiazhang/reactable","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2310.00815","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2310.00815"}},"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/yunjiazhang/reactable","reach":{"status":"ok"}}],"summary":{"ran":12,"unverified":2},"by_repo_kind":{"official":{"samples":14,"ran":12,"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":14,"samples":[{"code_sha256_prefix":"cc0da5b0802e9c63","entry":"contains_sqlite_functions","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/GptCOTPrompter.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/GptCOTPrompter.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cc0da5b0802e9c63"}},{"code_sha256_prefix":"b85d9bc26ff2e614","entry":"get_NN_demo","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/GptPrompter.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/GptPrompter.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b85d9bc26ff2e614"}},{"code_sha256_prefix":"88546384ad84b949","entry":"get_embedding_cos_sim","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/GptPrompter.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/GptPrompter.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"88546384ad84b949"}},{"code_sha256_prefix":"7180fc1ec0102f1e","entry":"get_utterance_embedding","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/GptPrompter.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/GptPrompter.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7180fc1ec0102f1e"}},{"code_sha256_prefix":"4c07388a9e0b0c59","entry":"is_chat_model","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/GptConnector.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/GptConnector.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4c07388a9e0b0c59"}},{"code_sha256_prefix":"d362da205b859c10","entry":"normalize_date","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/GptCOTPrompter.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/GptCOTPrompter.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d362da205b859c10"}},{"code_sha256_prefix":"a45d4f4937e13ce9","entry":"normalize_sql","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/GptCOTPrompter.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/GptCOTPrompter.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a45d4f4937e13ce9"}},{"code_sha256_prefix":"a96370ed557030b6","entry":"parseTokenizedStr","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/tokenizer.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/tokenizer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a96370ed557030b6"}},{"code_sha256_prefix":"d36ac54a744f2e4d","entry":"prompt2messages","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/GptConnector.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/GptConnector.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d36ac54a744f2e4d"}},{"code_sha256_prefix":"cdf3e617d4e9fa9a","entry":"tokenizeDF","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/tokenizer.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/tokenizer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cdf3e617d4e9fa9a"}},{"code_sha256_prefix":"487c2b67e9994abc","entry":"tokenizeDFWithColNames","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/tokenizer.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/tokenizer.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"487c2b67e9994abc"}},{"code_sha256_prefix":"7d08d54b37310ff6","entry":"visualize_messages","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/GptConnector.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/GptConnector.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7d08d54b37310ff6"}},{"code_sha256_prefix":"46c6b158cb4dd891","entry":"gen_text","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/Table2Text.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/Table2Text.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"46c6b158cb4dd891"}},{"code_sha256_prefix":"85430df17257a172","entry":"get_token_num","repo":"yunjiazhang/reactable","repo_kind":"official","path":"tabqa/GptCOTPrompter_BeamSeach.py","file_url":"https://github.com/yunjiazhang/reactable/blob/HEAD/tabqa/GptCOTPrompter_BeamSeach.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"85430df17257a172"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}