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: Fine-tuned from SIRIS-Lab/affilgood-affilxlm (AffilXLM), an XLM-RoBERTa base model (12 layers, 768 hidden size, ~270M parameters) further pre-trained with masked language modeling on 10 million OpenAlex affiliation strings (Duran-Silva et al., 2024)
  • 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: multilingual affiliation strings with a bias toward Latin-script, English-structured affiliation conventions
  • 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         Switzerland                    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 with seqeval on the held-out test split (strict span matching):

Entity Precision Recall F1
ORG 85.5 87.9 86.6
SUB 87.1 89.6 88.3
CITY 94.7 95.8 95.2
COUNTRY 97.8 98.8 98.3
Overall 90.5 92.3 91.4

Limitations and bias

  • Trained on scholarly affiliation strings; performance may degrade on out-of-domain text.
  • Street addresses, postal codes, and regions are not labeled and will typically be tagged O (e.g. MA in "Cambridge, MA, USA").
  • The data is multilingual in organization and place names, but still skewed toward Latin-script, English-structured affiliation conventions; performance on affiliations written entirely in non-Latin scripts is not guaranteed.
  • The training dataset is not publicly released, so exact reproduction of the reported metrics is not possible from this card alone.
  • 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 tokenizer treats - as a token boundary. Downstream consumers may want to re-merge adjacent same-label spans separated only by punctuation.

Additional information

@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}}
}

@inproceedings{duran-silva-etal-2024-affilgood,
  title     = {{A}ffil{G}ood: Building reliable institution name disambiguation tools to improve scientific literature analysis},
  author    = {Duran-Silva, Nicolau and Accuosto, Pablo and Przyby{\l}a, Piotr and Saggion, Horacio},
  booktitle = {Proceedings of the Fourth Workshop on Scholarly Document Processing (SDP 2024)},
  year      = {2024},
  address   = {Bangkok, Thailand},
  publisher = {Association for Computational Linguistics},
  url       = {https://aclanthology.org/2024.sdp-1.13},
  pages     = {135--144}
}

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
183
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
(4)
this model