{"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/restoring-ancient-text-using-deep-learning-a","title":"Restoring ancient text using deep learning: a case study on Greek epigraphy","arxiv_id":"1910.06262","date":"2019-10-14","proceeding":"IJCNLP 2019 11","authors":["Yannis Assael","Thea Sommerschield","Jonathan Prag"],"abstract":"Ancient history relies on disciplines such as epigraphy, the study of ancient inscribed texts, for evidence of the recorded past. However, these texts, \"inscriptions\", are often damaged over the centuries, and illegible parts of the text must be restored by specialists, known as epigraphists. This work presents Pythia, the first ancient text restoration model that recovers missing characters from a damaged text input using deep neural networks. Its architecture is carefully designed to handle long-term context information, and deal efficiently with missing or corrupted character and word representations. To train it, we wrote a non-trivial pipeline to convert PHI, the largest digital corpus of ancient Greek inscriptions, to machine actionable text, which we call PHI-ML. On PHI-ML, Pythia's predictions achieve a 30.1% character error rate, compared to the 57.3% of human epigraphists. Moreover, in 73.5% of cases the ground-truth sequence was among the Top-20 hypotheses of Pythia, which effectively demonstrates the impact of this assistive method on the field of digital epigraphy, and sets the state-of-the-art in ancient text restoration.","url_abs":"https://arxiv.org/abs/1910.06262v1","url_pdf":"https://arxiv.org/pdf/1910.06262v1.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":"restoring-ancient-text-using-deep-learning-a","repo_url":"https://github.com/sommerschield/ancient-text-restoration","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"ancient-tex-restoration","task_name":"Ancient Text Restoration"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1910.06262","atlas_url":"https://app.syntology.ai/?focus=1910.06262","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1910.06262"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/sommerschield/ancient-text-restoration","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":9},"by_repo_kind":{"official":{"samples":9,"ran":0,"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":"dcd412c5340b7001","entry":"build_graph","repo":"sommerschield/ancient-text-restoration","repo_kind":"official","path":"pythia/model/graph.py","file_url":"https://github.com/sommerschield/ancient-text-restoration/blob/HEAD/pythia/model/graph.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dcd412c5340b7001"}},{"code_sha256_prefix":"1da3e2dd45219cde","entry":"error","repo":"sommerschield/ancient-text-restoration","repo_kind":"official","path":"pythia/model/loss.py","file_url":"https://github.com/sommerschield/ancient-text-restoration/blob/HEAD/pythia/model/loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1da3e2dd45219cde"}},{"code_sha256_prefix":"92f3c297fa4bc0c9","entry":"idx_to_text","repo":"sommerschield/ancient-text-restoration","repo_kind":"official","path":"pythia/util/vocab.py","file_url":"https://github.com/sommerschield/ancient-text-restoration/blob/HEAD/pythia/util/vocab.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"92f3c297fa4bc0c9"}},{"code_sha256_prefix":"abe06350e77d2d47","entry":"loss_seq2seq","repo":"sommerschield/ancient-text-restoration","repo_kind":"official","path":"pythia/model/loss.py","file_url":"https://github.com/sommerschield/ancient-text-restoration/blob/HEAD/pythia/model/loss.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"abe06350e77d2d47"}},{"code_sha256_prefix":"b34f5dfa407987e8","entry":"strip_accents","repo":"sommerschield/ancient-text-restoration","repo_kind":"official","path":"pythia/util/text_clean.py","file_url":"https://github.com/sommerschield/ancient-text-restoration/blob/HEAD/pythia/util/text_clean.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b34f5dfa407987e8"}},{"code_sha256_prefix":"c202065a5f0872be","entry":"text_clean_phi","repo":"sommerschield/ancient-text-restoration","repo_kind":"official","path":"pythia/util/text_clean.py","file_url":"https://github.com/sommerschield/ancient-text-restoration/blob/HEAD/pythia/util/text_clean.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c202065a5f0872be"}},{"code_sha256_prefix":"bbfa59c68f3512e4","entry":"text_to_idx","repo":"sommerschield/ancient-text-restoration","repo_kind":"official","path":"pythia/util/vocab.py","file_url":"https://github.com/sommerschield/ancient-text-restoration/blob/HEAD/pythia/util/vocab.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bbfa59c68f3512e4"}},{"code_sha256_prefix":"0593a6b4d210c86b","entry":"text_to_sentences","repo":"sommerschield/ancient-text-restoration","repo_kind":"official","path":"pythia/util/text_clean.py","file_url":"https://github.com/sommerschield/ancient-text-restoration/blob/HEAD/pythia/util/text_clean.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0593a6b4d210c86b"}},{"code_sha256_prefix":"177808f8fa0313ab","entry":"text_to_word_idx","repo":"sommerschield/ancient-text-restoration","repo_kind":"official","path":"pythia/util/vocab.py","file_url":"https://github.com/sommerschield/ancient-text-restoration/blob/HEAD/pythia/util/vocab.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"177808f8fa0313ab"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}