JAAT
Collection
The most up-to-date models comprising JAAT: the Job Ad Analysis Toolkit • 9 items • Updated
wage-ner-v2 is a fine-tuned token classification model specializing in Named Entity Recognition (NER) to extract minimum and maximum compensation ranges from text. It is built on top of a deberta-v3-base model.
For extracting specific pay ranges, use the ner pipeline. Using aggregation_strategy="simple" is highly recommended to merge multi-token numerical values cleanly.
from transformers import pipeline, AutoModelForTokenClassification, AutoTokenizer
model_name = "loyoladatamining/wage-ner-v2"
model = AutoModelForTokenClassification.from_pretrained(
model_name,
id2label={0: 'O', 1: 'B-MIN', 2: 'B-MAX'},
label2id={'O': 0, 'B-MIN': 1, 'B-MAX': 2}
)
tokenizer = AutoTokenizer.from_pretrained(model_name, model_max_length=128)
# Create the NER pipeline
nlp = pipeline(
"ner",
model=model,
tokenizer=tokenizer,
aggregation_strategy="simple"
)
# Inference
text = "The pay range is $25.00 to $35.00 per hour depending on experience."
results = nlp(text)
print(results)
When using aggregation_strategy="simple", the pipeline outputs a list of dictionaries providing the detected pay scales:
[
{
"entity_group": "MIN",
"score": 0.9942,
"word": "$25.00",
"start": 17,
"end": 23
},
{
"entity_group": "MAX",
"score": 0.9942,
"word": "$35.00",
"start": 27,
"end": 33
}
]
entity_group: MIN (the minimum threshold of the wage statement) or MAX (the maximum range of the wage statement, if available).word: The extracted text segment indicating the specific pay amount.If you find wage-ner-v2 useful in your work, please consider citing:
@article{meisenbacher2025extracting,
title={Extracting O* NET Features from the NLx Corpus to Build Public Use Aggregate Labor Market Data},
author={Meisenbacher, Stephen and Nestorov, Svetlozar and Norlander, Peter},
year={2025}
}
Base model
microsoft/deberta-v3-base