Skip to content
Showcase/WikiANN (PAN-X): Multilingual Named Entity Recognition
intermediatetext

WikiANN (PAN-X): Multilingual Named Entity Recognition

WikiANN / PAN-X is the multilingual NER dataset covering 282 languages, generated automatically from Wikipedia links and knowledge-base types. This page explains how it was built (silver-standard, not hand-annotated) and gives a runnable Potato config to produce gold PER/ORG/LOC labels or correct the silver ones.

About this dataset

WikiANN, also called PAN-X, is a multilingual named entity recognition dataset introduced by Pan and colleagues at ACL 2017. Its scale is the draw: name tagging and linking across 282 languages, far beyond what hand annotation could cover.

That scale is possible because WikiANN is silver-standard, not hand-annotated. The authors extracted entity mentions from Wikipedia anchor-link markup, assigned types using knowledge bases (DBpedia, YAGO, Freebase), and propagated those types across languages through Wikipedia's redirect and cross-lingual links. There were no annotators and no annotation guideline, so the labels carry known noise. The version most people load today is Rahimi, Li, and Cohn's (2019) balanced re-split of 176 languages, which uses three tags — PER, ORG, LOC — in IOB2 format.

Because it is automatic, WikiANN is a natural fit for a human-in-the-loop annotation task rather than a re-run of an original protocol. The Potato config below asks an annotator to mark PER/ORG/LOC spans in a Wikipedia sentence in any language and, when silver labels are present, to record whether they were correct or needed fixing.

Use it to build gold evaluation data for a language WikiANN only covers with silver labels, to clean noisy spans before training, or as a template for cross-lingual NER in the PER/ORG/LOC scheme. For a fully human-annotated, guideline-based NER dataset, see the related MasakhaNER 2.0 design.

Released
ACL 2017 (Pan et al.)
Languages
282 original / 176 in the standard balanced splits
Source
Wikipedia (anchor links + DBpedia/YAGO/Freebase types)
Label quality
Silver / automatic — no human guideline
Tag set
PER, ORG, LOC (IOB2)
Standard splits
Rahimi et al., ACL 2019
PERORGLOCPERORGLOCDATESelect text to annotate

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
# WikiANN / PAN-X - Multilingual Named Entity Recognition
# Based on Pan et al., ACL 2017 (original) and Rahimi et al., ACL 2019 (balanced splits)
# Papers: https://aclanthology.org/P17-1178/  |  https://aclanthology.org/P19-1015/
# Dataset: https://huggingface.co/datasets/unimelb-nlp/wikiann
#
# IMPORTANT — how WikiANN was made: WikiANN (a.k.a. PAN-X) is a SILVER-standard,
# automatically generated resource. Pan et al. (2017) projected entity labels
# from Wikipedia anchor-link markup and knowledge-base types (DBpedia, YAGO,
# Freebase) across 282 languages. There were no human annotators and no
# annotation guideline — so the labels carry known noise. The widely used
# distribution is Rahimi et al.'s (2019) balanced re-split of 176 languages,
# which uses three tags — PER, ORG, LOC — in IOB2 format.
#
# This Potato config lets you produce GOLD labels in the same PER/ORG/LOC scheme
# — either annotating fresh Wikipedia sentences in any language, or correcting
# silver WikiANN labels. It is not a reconstruction of an original human protocol
# (there wasn't one); it is the human-in-the-loop task WikiANN's noise motivates.
#
# Tag set (Rahimi et al. 2019 balanced splits):
# - PER (Person): names of people
# - ORG (Organization): companies, institutions, agencies, teams
# - LOC (Location): countries, cities, regions, and other place names
#   (the original paper's GPE type is folded into LOC in the standard splits)

annotation_task_name: "WikiANN - Multilingual NER"
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:
  # Highlight entity spans and label each with its type
  - annotation_type: span
    name: entity_spans
    description: "Highlight every named entity and label it PER, ORG, or LOC"
    labels:
      - "PER (Person)"
      - "ORG (Organization)"
      - "LOC (Location)"
    label_colors:
      "PER (Person)": "#3b82f6"
      "ORG (Organization)": "#22c55e"
      "LOC (Location)": "#ef4444"
    keyboard_shortcuts:
      "PER (Person)": "1"
      "ORG (Organization)": "2"
      "LOC (Location)": "3"

  # Whether the auto-projected silver labels (if any) were correct
  - annotation_type: radio
    name: silver_label_check
    description: "If this sentence came with silver WikiANN labels, were they correct?"
    labels:
      - "Correct"
      - "Needs fixing"
      - "No silver labels"
    keyboard_shortcuts:
      "Correct": "4"
      "Needs fixing": "5"
      "No silver labels": "6"
    tooltips:
      "Correct": "The pre-existing WikiANN labels matched your annotation"
      "Needs fixing": "The pre-existing WikiANN labels were wrong or incomplete"
      "No silver labels": "This sentence was annotated from scratch"

annotation_instructions: |
  You will see a short sentence, typically from Wikipedia, in one of many
  languages. Using the WikiANN / PAN-X tag set (PER, ORG, LOC):

  1. Highlight every named-entity mention and label it with the correct type.
     Select the full span (e.g. "United Nations", not just "United").
  2. A place name inside an organization name is part of the ORG span (e.g. in
     "University of Nairobi", the whole phrase is ORG).
  3. If the sentence arrived with silver WikiANN labels, record whether those
     labels were correct or needed fixing.

  Note: WikiANN labels are generated automatically from Wikipedia links, so they
  are noisy. Your job is to produce clean, gold-standard PER/ORG/LOC labels.

html_layout: |
  <div style="padding: 15px; max-width: 800px; margin: auto;">
    <div style="background: #eef2ff; border: 1px solid #c7d2fe; border-radius: 8px; padding: 8px 12px; margin-bottom: 12px; font-size: 13px; color: #4338ca;">
      Language: {{lang}}
    </div>
    <div style="background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 16px;">
      <p style="font-size: 18px; line-height: 1.8; margin: 0;">{{text}}</p>
    </div>
  </div>

allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 2
allow_skip: true
skip_reason_required: false

Sample Datasample-data.json

json
[
  {
    "id": "wikiann_en_001",
    "lang": "English (en)",
    "text": "Barack Obama served as the president of the United States and was born in Honolulu."
  },
  {
    "id": "wikiann_fr_001",
    "lang": "French (fr)",
    "text": "Le siège de l'Organisation des Nations unies se trouve à New York."
  }
]

// ... and 2 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/named-entity-recognition/wikiann-multilingual-ner
potato start config.yaml

Dataset & paper

Pan et al., ACL 2017; Rahimi et al., ACL 2019

Citation (BibTeX)

bibtex
@inproceedings{pan-etal-2017-cross,
    title = "Cross-lingual Name Tagging and Linking for 282 Languages",
    author = "Pan, Xiaoman and Zhang, Boliang and May, Jonathan and Nothman, Joel and Knight, Kevin and Ji, Heng",
    booktitle = "Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)",
    month = jul,
    year = "2017",
    address = "Vancouver, Canada",
    publisher = "Association for Computational Linguistics",
    pages = "1946--1958",
    url = "https://aclanthology.org/P17-1178/"
}

@inproceedings{rahimi-etal-2019-massively,
    title = "Massively Multilingual Transfer for {NER}",
    author = "Rahimi, Afshin and Li, Yuan and Cohn, Trevor",
    booktitle = "Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics",
    month = jul,
    year = "2019",
    address = "Florence, Italy",
    publisher = "Association for Computational Linguistics",
    pages = "151--164",
    url = "https://aclanthology.org/P19-1015/"
}

Details

Annotation Types

spanradio

Domain

Natural Language ProcessingNamed Entity RecognitionMultilingual

Use Cases

Named Entity RecognitionCross-lingual NERLabel Correction

Tags

wikiannpan-xnamed-entity-recognitionmultilingualcross-lingualwikipediasilver-standard

Found an issue or want to improve this design?

Open an Issue