{"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/masakhaner-named-entity-recognition-for","title":"MasakhaNER: Named Entity Recognition for African Languages","arxiv_id":"2103.11811","date":"2021-03-22","proceeding":null,"authors":["David Ifeoluwa Adelani","Jade Abbott","Graham Neubig","Daniel D'souza","Julia Kreutzer","Constantine Lignos","Chester Palen-Michel","Happy Buzaaba","Shruti Rijhwani","Sebastian Ruder","Stephen Mayhew","Israel Abebe Azime","Shamsuddeen Muhammad","Chris Chinenye Emezue","Joyce Nakatumba-Nabende","Perez Ogayo","Anuoluwapo Aremu","Catherine Gitau","Derguene Mbaye","Jesujoba Alabi","Seid Muhie Yimam","Tajuddeen Gwadabe","Ignatius Ezeani","Rubungo Andre Niyongabo","Jonathan Mukiibi","Verrah Otiende","Iroro Orife","Davis David","Samba Ngom","Tosin Adewumi","Paul Rayson","Mofetoluwa Adeyemi","Gerald Muriuki","Emmanuel Anebi","Chiamaka Chukwuneke","Nkiruka Odu","Eric Peter Wairagala","Samuel Oyerinde","Clemencia Siro","Tobius Saul Bateesa","Temilola Oloyede","Yvonne Wambui","Victor Akinode","Deborah Nabagereka","Maurice Katusiime","Ayodele Awokoya","Mouhamadane MBOUP","Dibora Gebreyohannes","Henok Tilaye","Kelechi Nwaike","Degaga Wolde","Abdoulaye Faye","Blessing Sibanda","Orevaoghene Ahia","Bonaventure F. P. Dossou","Kelechi Ogueji","Thierno Ibrahima DIOP","Abdoulaye Diallo","Adewale Akinfaderin","Tendai Marengereke","Salomey Osei"],"abstract":"We take a step towards addressing the under-representation of the African continent in NLP research by creating the first large publicly available high-quality dataset for named entity recognition (NER) in ten African languages, bringing together a variety of stakeholders. We detail characteristics of the languages to help researchers understand the challenges that these languages pose for NER. We analyze our datasets and conduct an extensive empirical evaluation of state-of-the-art methods across both supervised and transfer learning settings. We release the data, code, and models in order to inspire future research on African NLP.","url_abs":"https://arxiv.org/abs/2103.11811v2","url_pdf":"https://arxiv.org/pdf/2103.11811v2.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":"masakhaner-named-entity-recognition-for","repo_url":"https://github.com/masakhane-io/masakhane-ner","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"masakhaner-named-entity-recognition-for","repo_url":"https://github.com/michael-beukman/nertransfer","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"cg","task_name":"NER"},{"task_slug":"named-entity-recognition-1","task_name":"Named Entity Recognition"},{"task_slug":"named-entity-recognition-ner","task_name":"Named Entity Recognition (NER)"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"},{"task_slug":"named-entity-recognition","task_name":"named-entity-recognition"}],"methods":[],"datasets_introduced":[{"slug":"masakhaner","name":"MasakhaNER","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2103.11811","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.11811"}},"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/michael-beukman/nertransfer","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/masakhane-io/masakhane-ner","reach":null}],"summary":{"ran_draft_wrong":5,"unverified":11},"by_repo_kind":{"official":{"samples":6,"ran":5,"repositories":1},"listed":{"samples":10,"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":6,"samples":[{"code_sha256_prefix":"366bf9d9c1ffe01e","entry":"convert_examples_to_features","repo":"masakhane-io/masakhane-ner","repo_kind":"official","path":"code/predict_ner.py","file_url":"https://github.com/masakhane-io/masakhane-ner/blob/HEAD/code/predict_ner.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"366bf9d9c1ffe01e"}},{"code_sha256_prefix":"59f7e84a8e40deed","entry":"map_task_to_data","repo":"masakhane-io/masakhane-ner","repo_kind":"official","path":"MasakhaNER2.0/ranking_languages/langrank.py","file_url":"https://github.com/masakhane-io/masakhane-ner/blob/HEAD/MasakhaNER2.0/ranking_languages/langrank.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":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"59f7e84a8e40deed"}},{"code_sha256_prefix":"cd55b256a5726cf4","entry":"map_task_to_models","repo":"masakhane-io/masakhane-ner","repo_kind":"official","path":"MasakhaNER2.0/ranking_languages/langrank.py","file_url":"https://github.com/masakhane-io/masakhane-ner/blob/HEAD/MasakhaNER2.0/ranking_languages/langrank.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":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"cd55b256a5726cf4"}},{"code_sha256_prefix":"d6f999d45b668128","entry":"read_examples","repo":"masakhane-io/masakhane-ner","repo_kind":"official","path":"code/predict_ner.py","file_url":"https://github.com/masakhane-io/masakhane-ner/blob/HEAD/code/predict_ner.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d6f999d45b668128"}},{"code_sha256_prefix":"7f352620f4bfd7b0","entry":"read_vocab_file","repo":"masakhane-io/masakhane-ner","repo_kind":"official","path":"MasakhaNER2.0/ranking_languages/langrank.py","file_url":"https://github.com/masakhane-io/masakhane-ner/blob/HEAD/MasakhaNER2.0/ranking_languages/langrank.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":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"7f352620f4bfd7b0"}},{"code_sha256_prefix":"f3323c9c3c5c92a4","entry":"get_common_things_between_two_langs","repo":"michael-beukman/nertransfer","repo_kind":"listed","path":"src/analysis/v50/statistical_overlap.py","file_url":"https://github.com/michael-beukman/nertransfer/blob/HEAD/src/analysis/v50/statistical_overlap.py","link_basis":"harvester_set","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":"f3323c9c3c5c92a4"}},{"code_sha256_prefix":"c60cb5d43bb0779f","entry":"get_f1","repo":"michael-beukman/nertransfer","repo_kind":"listed","path":"src/analysis/v20/base.py","file_url":"https://github.com/michael-beukman/nertransfer/blob/HEAD/src/analysis/v20/base.py","link_basis":"harvester_set","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":"c60cb5d43bb0779f"}},{"code_sha256_prefix":"47472e158df3a8ba","entry":"get_hidden_states","repo":"michael-beukman/nertransfer","repo_kind":"listed","path":"src/analysis/v40/embeddings.py","file_url":"https://github.com/michael-beukman/nertransfer/blob/HEAD/src/analysis/v40/embeddings.py","link_basis":"harvester_set","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":"47472e158df3a8ba"}},{"code_sha256_prefix":"14f54b791055c4c7","entry":"get_word_idx","repo":"michael-beukman/nertransfer","repo_kind":"listed","path":"src/analysis/v40/embeddings.py","file_url":"https://github.com/michael-beukman/nertransfer/blob/HEAD/src/analysis/v40/embeddings.py","link_basis":"harvester_set","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":"14f54b791055c4c7"}},{"code_sha256_prefix":"54cecc912e67b334","entry":"get_word_vector","repo":"michael-beukman/nertransfer","repo_kind":"listed","path":"src/analysis/v40/embeddings.py","file_url":"https://github.com/michael-beukman/nertransfer/blob/HEAD/src/analysis/v40/embeddings.py","link_basis":"harvester_set","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":"54cecc912e67b334"}},{"code_sha256_prefix":"a962fe586a31e797","entry":"load_and_cache_examples","repo":"masakhane-io/masakhane-ner","repo_kind":"official","path":"code/predict_ner.py","file_url":"https://github.com/masakhane-io/masakhane-ner/blob/HEAD/code/predict_ner.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"a962fe586a31e797"}},{"code_sha256_prefix":"842eea7c099f7105","entry":"load_compressed_pickle","repo":"michael-beukman/nertransfer","repo_kind":"listed","path":"src/analysis/utils.py","file_url":"https://github.com/michael-beukman/nertransfer/blob/HEAD/src/analysis/utils.py","link_basis":"harvester_set","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":"842eea7c099f7105"}},{"code_sha256_prefix":"d2afa5d042c7a876","entry":"order_columns_of_df","repo":"michael-beukman/nertransfer","repo_kind":"listed","path":"src/analysis/utils.py","file_url":"https://github.com/michael-beukman/nertransfer/blob/HEAD/src/analysis/utils.py","link_basis":"harvester_set","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":"d2afa5d042c7a876"}},{"code_sha256_prefix":"b655ab126afacd7a","entry":"pretty","repo":"michael-beukman/nertransfer","repo_kind":"listed","path":"src/analysis/v10/basic_analyse_pretrained_model.py","file_url":"https://github.com/michael-beukman/nertransfer/blob/HEAD/src/analysis/v10/basic_analyse_pretrained_model.py","link_basis":"harvester_set","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":"b655ab126afacd7a"}},{"code_sha256_prefix":"c80e5c9a8ef905bf","entry":"read_examples_from_file","repo":"michael-beukman/nertransfer","repo_kind":"listed","path":"src/utils/utils_ner.py","file_url":"https://github.com/michael-beukman/nertransfer/blob/HEAD/src/utils/utils_ner.py","link_basis":"harvester_set","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":"c80e5c9a8ef905bf"}},{"code_sha256_prefix":"cad5b48757653160","entry":"read_examples_from_file_flexible","repo":"michael-beukman/nertransfer","repo_kind":"listed","path":"src/utils/utils_ner.py","file_url":"https://github.com/michael-beukman/nertransfer/blob/HEAD/src/utils/utils_ner.py","link_basis":"harvester_set","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":"cad5b48757653160"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}