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