{"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/frustratingly-easy-label-projection-for-cross","title":"Frustratingly Easy Label Projection for Cross-lingual Transfer","arxiv_id":"2211.15613","date":"2022-11-28","proceeding":null,"authors":["Yang Chen","Chao Jiang","Alan Ritter","Wei Xu"],"abstract":"Translating training data into many languages has emerged as a practical solution for improving cross-lingual transfer. For tasks that involve span-level annotations, such as information extraction or question answering, an additional label projection step is required to map annotated spans onto the translated texts. Recently, a few efforts have utilized a simple mark-then-translate method to jointly perform translation and projection by inserting special markers around the labeled spans in the original sentence. However, as far as we are aware, no empirical analysis has been conducted on how this approach compares to traditional annotation projection based on word alignment. In this paper, we present an extensive empirical study across 57 languages and three tasks (QA, NER, and Event Extraction) to evaluate the effectiveness and limitations of both methods, filling an important gap in the literature. Experimental results show that our optimized version of mark-then-translate, which we call EasyProject, is easily applied to many languages and works surprisingly well, outperforming the more complex word alignment-based methods. We analyze several key factors that affect the end-task performance, and show EasyProject works well because it can accurately preserve label span boundaries after translation. We will publicly release all our code and data.","url_abs":"https://arxiv.org/abs/2211.15613v5","url_pdf":"https://arxiv.org/pdf/2211.15613v5.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":"frustratingly-easy-label-projection-for-cross","repo_url":"https://github.com/edchengg/easyproject","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"frustratingly-easy-label-projection-for-cross","repo_url":"https://github.com/edchengg/transfusion","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"cross-lingual-ner","task_name":"Cross-Lingual NER"},{"task_slug":"cross-lingual-transfer","task_name":"Cross-Lingual Transfer"},{"task_slug":"event-extraction","task_name":"Event Extraction"},{"task_slug":"cg","task_name":"NER"},{"task_slug":"question-answering","task_name":"Question Answering"},{"task_slug":"sentence","task_name":"Sentence"},{"task_slug":"translation","task_name":"Translation"},{"task_slug":"word-alignment","task_name":"Word Alignment"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/cross-lingual-ner-on-masakhaner2-0","task":"Cross-Lingual NER","dataset":"MasakhaNER2.0","model":"EasyProject","rank_in_archive_order":1,"of":2,"metrics":{"Akan/Twi":"65.3","Bambara":" 45.8","Chichewa":"75.3","Ewe":" 78.5","Fon":" 61.4","Hausa":"72.2","Igbo":" 65.6","Kinyarwanda":" 71.0","Kiswahili":"83.6","Luganda":" 76.7","Luo":" 50.2","Mossi":"53.1","Setswana":"74.0","Wolof":" 58.9","Yoruba":" 36.8","chiShona":" 55.9","isiXhosa":"71.1","isiZulu":"73.0"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2211.15613","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2211.15613"}},"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/edchengg/easyproject","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/edchengg/transfusion","reach":{"status":"ok","spdx":"MIT"}}],"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":"cec6338a46a61ed0","entry":"convert_examples_to_features","repo":"edchengg/easyproject","repo_kind":"official","path":"ner/utils_ner.py","file_url":"https://github.com/edchengg/easyproject/blob/HEAD/ner/utils_ner.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":"cec6338a46a61ed0"}},{"code_sha256_prefix":"35340916993999b5","entry":"halfen","repo":"edchengg/easyproject","repo_kind":"official","path":"ner/decode_marker_conll.py","file_url":"https://github.com/edchengg/easyproject/blob/HEAD/ner/decode_marker_conll.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":"35340916993999b5"}},{"code_sha256_prefix":"4b1d1aa43106f57a","entry":"judge_if_Chinese_and_Japanese_char","repo":"edchengg/easyproject","repo_kind":"official","path":"ner/decode_marker_conll.py","file_url":"https://github.com/edchengg/easyproject/blob/HEAD/ner/decode_marker_conll.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":"4b1d1aa43106f57a"}},{"code_sha256_prefix":"81d48856b7ce8168","entry":"judge_if_Chinese_char","repo":"edchengg/easyproject","repo_kind":"official","path":"ner/decode_marker_conll.py","file_url":"https://github.com/edchengg/easyproject/blob/HEAD/ner/decode_marker_conll.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":"81d48856b7ce8168"}},{"code_sha256_prefix":"c80e5c9a8ef905bf","entry":"read_examples_from_file","repo":"edchengg/easyproject","repo_kind":"official","path":"ner/utils_ner.py","file_url":"https://github.com/edchengg/easyproject/blob/HEAD/ner/utils_ner.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":"c80e5c9a8ef905bf"}},{"code_sha256_prefix":"ba009de5b2cadce3","entry":"read_examples_from_file","repo":"edchengg/easyproject","repo_kind":"official","path":"ner/process_conll.py","file_url":"https://github.com/edchengg/easyproject/blob/HEAD/ner/process_conll.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":"ba009de5b2cadce3"}},{"code_sha256_prefix":"d6c77bb6d749edd4","entry":"read_examples_from_file","repo":"edchengg/easyproject","repo_kind":"official","path":"ner/process_wikiann.py","file_url":"https://github.com/edchengg/easyproject/blob/HEAD/ner/process_wikiann.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":"d6c77bb6d749edd4"}},{"code_sha256_prefix":"cad5b48757653160","entry":"read_examples_from_file_flexible","repo":"edchengg/easyproject","repo_kind":"official","path":"ner/utils_ner.py","file_url":"https://github.com/edchengg/easyproject/blob/HEAD/ner/utils_ner.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":"cad5b48757653160"}},{"code_sha256_prefix":"4809235f7dd5aba7","entry":"save_pickle","repo":"edchengg/easyproject","repo_kind":"official","path":"ner/process_conll.py","file_url":"https://github.com/edchengg/easyproject/blob/HEAD/ner/process_conll.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":"4809235f7dd5aba7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}