Skip to content
beginnertext

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
Submit

Configuration Fileconfig.yaml

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# 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

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 items

Get This Design

View on GitHub

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)

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

radio

Domain

NLPText ClassificationMultilingual NLPLow-Resource Languages

Use Cases

News Topic ClassificationText CategorizationAfrican Language NLPLow-Resource Languages

Tags

text-classificationtopic-classificationnewsafrican-languagesmultilinguallow-resourcemasakhanemasakhanewsaacl2023

Found an issue or want to improve this design?

Open an Issue

Related 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.

spanradio

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.

radio

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.

radiomultiselect