NER for affiliation parsing

org-geo-ner is a token-classification (NER) model that extracts organizations and geographic context from affiliation strings. It was fine-tuned in-house by MDPI AG to power mdpi-ror-search, an open-source tool that matches affiliation strings against the Research Organization Registry (ROR).

Model description

  • Architecture: XLM-RoBERTa base (12 layers, 768 hidden size), fine-tuned for token classification
  • Task: Named Entity Recognition (NER) over affiliation / address strings
  • Labeling scheme: BIO (B-/I-/O)
  • Entity types:
    • ORG: parent organization (e.g. university, company, ministry)
    • SUB: sub-organization / department, faculty, institute, lab
    • CITY: city
    • COUNTRY: country
  • Language: primarily English, but trained on multilingual affiliation strings drawn from real scholarly manuscripts, so the model generalizes to non-English organization and place names to some extent
  • License: Apache 2.0

Intended use

This model is designed to extract structured entities from free-text author affiliation strings as found in scholarly manuscripts and metadata (e.g. "Dept. of Physics, ETH, Zürich, Switzerland"). It is the first stage in a pipeline whose downstream goal is to resolve affiliations to ROR IDs. For further details about the pipeline, visit mdpi-ror-search.

It is not intended for general-purpose NER on arbitrary text (news, social media, etc.) as it is specialized for the affiliation/address domain.

How to use

The model works out of the box with the transformers token-classification pipeline using aggregation_strategy="simple", which merges wordpiece tokens into full entity spans.

from transformers import pipeline

ner_pipeline = pipeline(
    "token-classification",
    model="mdpi-ai/org-geo-ner",
    aggregation_strategy="simple",
)

text = "MDPI, Grosspeteranlage 5, 4052 Basel, Switzerland."
output = ner_pipeline(text)

for entity in output:
    print(f"{entity['entity_group']:<10} {entity['word']:<40} score={entity['score']:.3f}")

Output:

ORG             MDPI                           score=0.855
CITY            Basel                          score=0.994
COUNTRY         Swtizerland                    score=1.000

Batch inference works the same way by passing a list of strings:

texts = [
    "MDPI, Grosspeteranlage 5, 4052 Basel, Switzerland.",
    "Department of Chemistry, MIT, Cambridge, MA, USA.",
]
outputs = ner_pipeline(texts)

For production use, filter low-confidence predictions with a score threshold (e.g. score >= 0.65) before downstream processing.

Training data

The model was fine-tuned on an internal, proprietary dataset of affiliation strings annotated for ORG, SUB, CITY, and COUNTRY spans. This dataset is not publicly released.

Evaluation

Evaluated on a held-out internal test split, per-entity metrics (strict span matching):

Entity Precision Recall F1
ORG 94.7 95.4 95.4
SUB 94.2 95.9 95.0
CITY 97.2 97.4 97.3
COUNTRY 98.2 99.1 98.7
Overall 95.9 96.8 96.4

Limitations and bias

  • Trained on affiliation strings sourced from scholarly manuscripts; performance may degrade on out-of-domain text.
  • The training data, while multilingual in the organization and place names it contains, is predominantly structured around English-language affiliation conventions; performance on affiliations written entirely in non-Latin scripts is not guaranteed.
  • The training dataset is internal and not publicly available, so independent reproduction of the reported metrics is not possible.
  • As with any NER model, ambiguous or heavily abbreviated affiliation strings (e.g. bare acronyms) may be mislabeled or missed; downstream consumers should apply a confidence threshold and treat predictions as candidates rather than ground truth.
  • With aggregation_strategy="simple", hyphenated compound organization names (e.g. CREAF-CSIC-UAB) can be split into multiple adjacent ORG spans rather than merged into one, since the underlying XLM-RoBERTa tokenizer treats - as a token boundary. Downstream consumers may want to re-merge adjacent same-label spans separated only by punctuation.

Additional information

  • Repository (pipeline code, docs): MDPI-ROR-Search.
  • Contact: For questions, issues, or collaboration inquiries, please open an issue on the GitHub repository.
  • Funding: This project was fully funded and supported by MDPI AG.
  • License: Apache 2.0
  • Citation: No associated publication is available at this time. If you use this model, please cite it as:
@misc{orggeoner,
  title  = {org-geo-ner: A Named Entity Recognition Model for Affiliation Parsing},
  author = {MDPI AG},
  year   = {2026},
  howpublished = {\url{https://huggingface.co/mdpi-ai/org-geo-ner}}
}

Disclaimer

This model is provided as-is, without warranty of any kind. Predictions should be reviewed before being used in contexts requiring high accuracy, such as automated compliance or reporting workflows.

Downloads last month
33
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for mdpi-ai/org-geo-ner

Finetuned
(4098)
this model