FAQ

NLP

Named entity recognition datasets

Entity-labelled text across general, legal, Romanian and invoice domains — and the tag scheme problem.

NER datasets are abundant and mutually incompatible, because every one defines its own entity types and tagging convention.

Two sources of incompatibility. The entity inventory — one dataset has person, organisation, location and miscellaneous; another has forty biomedical types; a third has legal-specific categories. And the tagging scheme, where several conventions exist for marking the beginning and continuation of multi-token entities. Both must be aligned before datasets can be combined, and the alignment loses information wherever the inventories do not nest cleanly.

Domain matters more here than in most classification tasks because entity boundaries are domain-specific. A general-purpose model will not reliably find gene names, drug dosages or statutory references, and a biomedical model will not help with contract parties. Pick for domain first and scale second.

This list is deliberately short. Entity recognition data is plentiful in the sense that many corpora contain names, and scarce in the sense that matters: text annotated span by span, to a written guideline, with a stated tag scheme. Corpora that merely mention entities were removed. Before you merge any two of the sets below, compare their entity inventories line by line — one corpus's organisation is another's location, and the merged model learns the contradiction.

The sentence 'Tetracycline resistance genes of Clostridium perfringens isolated from cattle affected with malignant edema' shown three times: plain, with four coloured flat entity boxes (gene, species, species, disease), and with nested boxes adding Tetracycline as a chemical and Clostridium as a species inside the outer spans.
One biomedical sentence annotated two ways. Flat annotation finds four entities; nested annotation also marks Tetracycline as a chemical and Clostridium as a species inside longer spans. A one-tag-per-token BIO scheme cannot represent that inner layer, so the tagging convention decides which entities a model can ever learn. Image: Figure 1 of the article · CC BY 4.0 · from Park et al. 2024, Applied Sciences, “Biomedical Flat and Nested Named Entity Recognition: Methods, Challenges, and Advances”, doi:10.3390/app14209302
DatasetModalitySizeLicenceBest for
CoNLL-2003Text301,418 tokensResearch onlyNamed entity recognition
RONECText12,330 sentencesMITNamed entity recognition models
Text Anonymization BenchmarkText1,268 documentsMITAutomatic anonymisation
Text Extraction for OCRMultimodal1,560 imagesCC0Invoice-specific entity extraction
Licences in this shortlist — computed from the 4 datasets below. Red marks licences that are unclear or restricted.
A two-part diagram. The left half shows pre-training: PubMed with 4.5 billion words and PMC with 13.5 billion words feeding a transformer stack initialised from BERT. The right half shows fine-tuning on three task-specific dataset families - named entity recognition with NCBI-disease and BC2GM, relation extraction with EU-ADR and ChemProt, and question answering with BioASQ - each illustrated with a worked example, including a sentence tagged with the BIO label sequence O O B I O.
Domain pretraining, then task fine-tuning. The NER panel shows the BIO tag scheme, one of several an entity dataset has to commit to — and switching scheme silently changes your scores. Image: dmis-lab/biobert · Apache-2.0 repository · from “BioBERT: a pre-trained biomedical language representation model for biomedical text mining”, arXiv:1901.08746
№ 01

CoNLL-2003

Text
Size
301,418 English tokens (train, dev and test), IOB1 tags in CoNLL column format
Licence
Annotations free; the Reuters text must be obtained from NIST, which supplies it for research purposes only

Several hundred thousand tokens of journalistic text annotated with IOB1 tags (re-releases often convert them to BIO) for people, places, organisations and miscellaneous entities, introduced with the CoNLL-2003 shared task. Still the default named-entity recognition benchmark.

What to train on it

Training named entity recognition, comparative evaluation of NLP architectures, extracting information from documents, and improving search and monitoring systems.

Source: innovatiana.com

A Jupyter cell running displacy.render(doc, style='ent', jupyter=True) on a news paragraph about agtech funding, with entity spans highlighted in coloured boxes and labelled: 'recent years' DATE, 'this year' DATE, 'Series' EVENT, 'Crunchbase' ORG, 'more than $320 million' MONEY, '2017' DATE and 'the same period last year' DATE. The 'B' of 'Series B' sits outside the EVENT box.
spaCy's displaCy view of a general-purpose English pipeline's entities on a news paragraph. Dates, money and the organisation come out cleanly, but 'Series' is tagged EVENT with the 'B' left outside the span: a funding round is not a type that general-news training labels define, so the model reaches for the nearest one and gets the boundary wrong too. Image: explosion/spaCy · MIT repository
№ 02

RONEC

Text
Size
Approximately 12,330 sentences, 0.5 million tokens, JSON/Parquet format, 2.94 MB
Licence
MIT

About 12,330 annotated sentences and half a million tokens in JSON and Parquet, 2.94 MB, with 15 entity classes and over 80,000 distinct entities. RONEC is the Romanian Named Entity Corpus, although its catalogue page describes it as French.

What to train on it

Training named entity recognition models, improving information extraction from text, and testing NER accuracy on manually annotated data.

Source: innovatiana.com

RONECdata/train.json · record id 4582
PremieraOopereiOaOavutOlocOlaOMilanoB-GPE,OlaO„B-FACILITYTeatroI-FACILITYCannobianaI-FACILITY”I-FACILITY,OînOziuaB-DATETIMEdeI-DATETIME2I-DATETIMEmaiI-DATETIME1832I-DATETIME.O
One Romanian sentence from RONEC, one BIO2 tag per token: Milano is a GPE, the theatre a four-token FACILITY with its quotation marks inside the span, the date a five-token DATETIME. Whether punctuation belongs inside a span is exactly the kind of guideline decision that differs between corpora. From the dataset: dumitrescustefan/ronec · data/train.json · MIT repository
№ 03

Text Anonymization Benchmark

Text
Size
1,268 documents in English in annotated JSON format
Licence
MIT

1,268 English judgments from the European Court of Human Rights in annotated JSON, marked up with named entities, their categories, their confidential status and coreference links between mentions. Purpose-built for anonymisation.

What to train on it

Training automatic anonymisation of legal or sensitive texts, studying bias around personal information in documents, and testing NER detection and masking systems.

Source: innovatiana.com

Text Anonymization Benchmarkechr_dev.json · doc 001-83927, annotator 1
{
  "entity_type": "ORG",
  "entity_mention_id": "001-83927_a1_em2",
  "start_offset": 76,
  "end_offset": 94,
  "span_text": "Republic of Turkey",
  "edit_type": "insert",
  "confidential_status": "NOT_CONFIDENTIAL",
  "identifier_type": "NO_MASK",
  "entity_id": "001-83927_a1_e2"
}
{
  "entity_type": "DATETIME",
  "entity_mention_id": "001-83927_a1_em5",
  "start_offset": 292,
  "end_offset": 307,
  "span_text": "15 October 2004",
  "edit_type": "check",
  "identifier_type": "QUASI",
  "entity_id": "001-83927_a1_e5",
  "confidential_status": "NOT_CONFIDENTIAL"
}
Two annotations from one European Court of Human Rights judgment. Beyond the entity type, each mention records whether it has to be masked — the country is NO_MASK, the date a QUASI identifier — which is the layer ordinary NER data does not carry. From the dataset: NorskRegnesentral/text-anonymization-benchmark · echr_dev.json · MIT
№ 04

Text Extraction for OCR

Multimodal
Size
About 1,560 invoice images (JPG/PNG) paired with XML entity annotations, including extracted tabular data
Licence
CC0: Public Domain

About 1,560 pairs of invoice images in JPG or PNG with XML files holding extracted entities such as invoice number, date, business name, telephone and address, plus extracted tabular data. A ready-made document-NER set.

What to train on it

Developing invoice-specific entity extraction, improving recognition of tabular data in complex images, and building OCR robust to typographic and quality errors.

Source: innovatiana.com

Table titled 'Zero-Shot Scores on Out-of-Domain NER Benchmark' listing eleven models (Vicuna-7B and -13B, USM, ChatGPT, InstructUIE, UniNER-7B and -13B, GoLLIE, GLiNER-S, -M and -L) with parameter counts and scores on Movie, Restaurant, AI, Literature, Music, Politics and Science plus an average. GLiNER-L averages 60.9, from 42.9 on Restaurant to 72.6 on Politics.
Zero-shot scores of entity recognisers on seven domains none of them was trained on, from the GLiNER paper. The largest GLiNER model scores 72.6 on politics but 42.9 on restaurants, and no model leads every column. Entity types and boundaries shift with the domain, which is why the domain of a NER set matters more than its size. Image: urchade/GLiNER · Apache-2.0 repository · from “GLiNER: Generalist Model for Named Entity Recognition using Bidirectional Transformer”, arXiv:2311.08526

How this list was put together

Found by searching Dataset Finder for datasets whose documentation describes the task, then checked by hand. A keyword match is not a fit — the first pass picked up a coral survey for the depth-estimation list because it was recorded below fifty metres — so every entry was read against what this page covers, and the ones that matched a word without matching the task were removed.

Sizes and licences come from each dataset's own documentation, vague wording included. Where we found a re-upload or catalogue card stating a licence that the original release contradicts — a CC0 tag on Flickr photographs, MIT on data whose terms require a signed agreement — the entry gives the original terms and says so. The comparison table abbreviates licences; hover a cell for the full wording.

Stop hunting. Start searching.

The datasets listed on this page are in Dataset Finder, alongside tens of thousands more — searchable in plain language.

Search Dataset Finder →