MasakhaNEWS - News Topic Classification for African Languages
Single-label news topic classification for African-language news articles, following the MasakhaNEWS scheme (Adelani et al., IJCNLP-AACL 2023), the largest news topic benchmark for African languages, covering 16 languages such as Amharic, Hausa, Yoruba, Swahili, Somali, Lingala and isiXhosa. Masakhane community annotators label each headline/article into one of eight topics: business, entertainment, health, politics, religion, sports, technology, or uncategorized. Illustrative sample items include an English gloss for reference only.
About this dataset
MasakhaNEWS is a news topic classification dataset for African languages, again from the Masakhane community (Adelani and colleagues, IJCNLP-AACL 2023). It covers 16 languages, several of which had little labeled text data before.
The task is document-level: read a news article and assign it a single topic. The label set has seven categories — business, entertainment, health, politics, religion, sports, and technology.
Articles were collected from local news sources and labeled by Masakhane community volunteers who are native or fluent speakers. Because it is topic classification rather than token labeling, it is a good entry point for building text-classification data in a new language.
The Potato config below reproduces the task with a single radio scheme over the seven topics. Use it to extend MasakhaNEWS or to bootstrap news classification in a language it does not yet cover.
- Released
- IJCNLP-AACL 2023
- Languages
- 16 African languages
- Task
- News topic classification (document-level)
- Categories
- 7 (business, entertainment, health, politics, religion, sports, technology)
- Label type
- Single-label
- Source
- Local news outlets
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# MasakhaNEWS - News Topic Classification for African Languages
# Based on Adelani et al., IJCNLP-AACL 2023
# Paper: https://aclanthology.org/2023.ijcnlp-main.10/
# Dataset: https://github.com/masakhane-io/masakhane-news
#
# MasakhaNEWS is the largest news topic classification benchmark for African
# languages, covering 16 languages. Masakhane community volunteers labelled
# news articles into eight topics. Each article receives exactly one label.
#
# Topic Labels:
# - Business: economy, markets, trade, companies, finance
# - Entertainment: music, film, celebrities, arts, culture, lifestyle
# - Health: medicine, disease, public health, wellbeing
# - Politics: government, elections, policy, diplomacy, governance
# - Religion: faith, worship, religious events and institutions
# - Sports: matches, athletes, tournaments, teams
# - Technology: science, computing, internet, innovation
# - Uncategorized: does not clearly fit any category above
#
# Annotation Guidelines:
# 1. Read the headline and article snippet in the source language (an English
# gloss is provided for reference in this showcase only).
# 2. Choose the SINGLE topic that best describes the article's main subject.
# 3. Use "Uncategorized" only when no other topic clearly applies.
annotation_task_name: "MasakhaNEWS - African News Topic Classification"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "text"
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
port: 8000
server_name: localhost
annotation_schemes:
- annotation_type: radio
name: news_topic
description: "What is the main topic of this news article?"
labels:
- "Business"
- "Entertainment"
- "Health"
- "Politics"
- "Religion"
- "Sports"
- "Technology"
- "Uncategorized"
keyboard_shortcuts:
"Business": "1"
"Entertainment": "2"
"Health": "3"
"Politics": "4"
"Religion": "5"
"Sports": "6"
"Technology": "7"
"Uncategorized": "8"
tooltips:
"Business": "Economy, markets, trade, companies, finance"
"Entertainment": "Music, film, celebrities, arts, culture, lifestyle"
"Health": "Medicine, disease, public health, wellbeing"
"Politics": "Government, elections, policy, diplomacy, governance"
"Religion": "Faith, worship, religious events and institutions"
"Sports": "Matches, athletes, tournaments, teams"
"Technology": "Science, computing, internet, innovation"
"Uncategorized": "Does not clearly fit any of the other topics"
annotation_instructions: |
You will see a news headline and a short snippet written in an African
language, with its language identifier and (for this showcase only) an
English gloss. Choose the single topic that best describes what the article
is mainly about. Pick "Uncategorized" only if no other topic clearly fits.
html_layout: |
<div style="padding: 15px; max-width: 800px; margin: auto;">
<div style="background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 8px; padding: 12px; margin-bottom: 12px;">
<strong style="color: #065f46;">Language:</strong>
<span style="font-size: 15px; margin-left: 8px;">{{language}}</span>
</div>
<div style="background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 16px; margin-bottom: 8px;">
<strong style="color: #0369a1;">News article:</strong>
<p style="font-size: 17px; line-height: 1.7; margin: 8px 0 0 0;">{{text}}</p>
</div>
<div style="color: #6b7280; font-size: 13px; font-style: italic; margin-bottom: 16px;">
English gloss (reference only): {{gloss}}
</div>
</div>
allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 3
allow_skip: true
skip_reason_required: false
Sample Datasample-data.json
[
{
"id": "mnews_001",
"language": "Swahili (swa)",
"text": "Timu ya taifa ya Tanzania imefuzu kucheza fainali za Kombe la Mataifa ya Afrika baada ya ushindi wa mabao matatu.",
"gloss": "Tanzania's national team has qualified for the Africa Cup of Nations finals after a three-goal victory."
},
{
"id": "mnews_002",
"language": "Hausa (hau)",
"text": "Babban bankin kasa ya sanar da sabon farashin ruwan riba domin shawo kan hauhawar farashin kayayyaki.",
"gloss": "The central bank has announced a new interest rate to curb rising prices of goods."
}
]
// ... and 8 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/text/cross-lingual/masakhanews-topic-classification potato start config.yaml
Dataset & paper
Adelani et al., IJCNLP-AACL 2023
Citation (BibTeX)
@inproceedings{adelani-etal-2023-masakhanews,
title = "{M}asakha{NEWS}: News Topic Classification for {A}frican languages",
author = "Adelani, David Ifeoluwa and Masiak, Marek and Azime, Israel Abebe and Alabi, Jesujoba and Tonja, Atnafu Lambebo and others",
booktitle = "Proceedings of the 13th International Joint Conference on Natural Language Processing and the 3rd Conference of the Asia-Pacific Chapter of the Association for Computational Linguistics (Volume 1: Long Papers)",
month = nov,
year = "2023",
address = "Nusa Dua, Bali",
publisher = "Association for Computational Linguistics",
pages = "144--159",
url = "https://aclanthology.org/2023.ijcnlp-main.10"
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
MasakhaNER 2.0 - Named Entity Recognition for African Languages
Span-level named entity recognition for African-language text, following the MasakhaNER 2.0 annotation scheme (Adelani et al., EMNLP 2022): the largest human-annotated NER dataset for African languages, covering 20 languages such as Swahili, Hausa, Yoruba, Igbo, Nigerian-Pidgin and isiZulu. Native-speaker annotators, trained on the MUC-6 guidelines, highlight four entity types - Person (PER), Organization (ORG), Location (LOC) and Date & Time (DATE) - then confirm the overall entity composition of the sentence. Illustrative sample items include an English gloss for reference only; real annotation is done by native speakers without glosses.
NusaX - Sentiment Analysis for Indonesian Local Languages
Three-way sentiment annotation for low-resource Indonesian languages, following the NusaX scheme (Winata et al., EACL 2023, Outstanding Paper): the first high-quality human-annotated parallel sentiment corpus for 10 Indonesian local languages - Acehnese, Balinese, Banjarese, Buginese, Javanese, Madurese, Minangkabau, Ngaju, Sundanese and Toba Batak - plus Indonesian and English. Built by the IndoNLP community, it mirrors AfriSenti and IndicNLP-SA for a different, underrepresented language region. Annotators label each text as positive, negative, or neutral; sample items include an English gloss for reference only.
AfriHate - Hate and Abusive Language for African Languages
Multilingual content-moderation annotation following the AfriHate scheme (Muhammad et al., NAACL 2025), a collection of hate speech and abusive language datasets for 15 African languages including Amharic, Hausa, Igbo, Yoruba, Swahili, Somali and isiZulu. Native speakers familiar with the regional culture assign each tweet a three-way label - hate, abusive, or neutral - and, when the tweet is hateful, mark the targeted attribute (e.g. ethnicity, religion, politics, gender). Sample items are mild, constructed illustrations that avoid real slurs or targeting of real groups; an English gloss is provided for reference only.