CoolFace
Modelpublic

Jzuluaga/bert-base-ner-atc-en-atco2-1h

sourceHugging Faceapache-2.0updated 3y agoView on Hugging Face
7likes342downloads
Model Card

bert-base-ner-atc-en-atco2-1h

This model allow to perform named-entity recognition (NER) on air traffic control communications data. We solve this challenge by performing token classification (NER) with a BERT model. We fine-tune a pretrained BERT model on the ner task.

For instance, if you have the following transcripts/gold annotations:

  • —Utterance: lufthansa three two five cleared to land runway three four left

Could you tell what are the main entities in the communication? The desired output is shown below:

  • —Named-entity module output: [call] lufthansa three two five [/call] [cmd] cleared to land [/cmd] [val] runway three four left [/val]

This model is a fine-tuned version of bert-base-uncased on the atco2_corpus_1h.

<a href="https://github.com/idiap/atco2-corpus"> <img alt="GitHub" src="https://img.shields.io/badge/GitHub-Open%20source-green\"> </a>

It achieves the following results on the development set:

  • —Loss: 1.4282
  • —Precision: 0.6195
  • —Recall: 0.7071
  • —F1: 0.6604
  • —Accuracy: 0.8182

Paper: ATCO2 corpus: A Large-Scale Dataset for Research on Automatic Speech Recognition and Natural Language Understanding of Air Traffic Control Communications

Authors: Juan Zuluaga-Gomez, Karel Veselý, Igor Szöke, Petr Motlicek, Martin Kocour, Mickael Rigault, Khalid Choukri, Amrutha Prasad and others

Abstract: Personal assistants, automatic speech recognizers and dialogue understanding systems are becoming more critical in our interconnected digital world. A clear example is air traffic control (ATC) communications. ATC aims at guiding aircraft and controlling the airspace in a safe and optimal manner. These voice-based dialogues are carried between an air traffic controller (ATCO) and pilots via very-high frequency radio channels. In order to incorporate these novel technologies into ATC (low-resource domain), large-scale annotated datasets are required to develop the data-driven AI systems. Two examples are automatic speech recognition (ASR) and natural language understanding (NLU). In this paper, we introduce the ATCO2 corpus, a dataset that aims at fostering research on the challenging ATC field, which has lagged behind due to lack of annotated data. The ATCO2 corpus covers 1) data collection and pre-processing, 2) pseudo-annotations of speech data, and 3) extraction of ATC-related named entities. The ATCO2 corpus is split into three subsets. 1) ATCO2-test-set corpus contains 4 hours of ATC speech with manual transcripts and a subset with gold annotations for named-entity recognition (callsign, command, value). 2) The ATCO2-PL-set corpus consists of 5281 hours of unlabeled ATC data enriched with automatic transcripts from an in-domain speech recognizer, contextual information, speaker turn information, signal-to-noise ratio estimate and English language detection score per sample. Both available for purchase through ELDA at this http URL. 3) The ATCO2-test-set-1h corpus is a one-hour subset from the original test set corpus, that we are offering for free at this url: https://www.atco2.org/data. We expect the ATCO2 corpus will foster research on robust ASR and NLU not only in the field of ATC communications but also in the general research community.

Code — GitHub repository: https://github.com/idiap/atco2-corpus

Intended uses & limitations

This model was fine-tuned on air traffic control data. We don't expect that it keeps the same performance on some others datasets where BERT was pre-trained or fine-tuned.

Training and evaluation data

See Table 6 (page 18) in our paper: ATCO2 corpus: A Large-Scale Dataset for Research on Automatic Speech Recognition and Natural Language Understanding of Air Traffic Control Communications. We described there the data used to fine-tune our NER model.

  • —We use the ATCO2 corpus to fine-tune this model. You can download a free sample here: https://www.atco2.org/data
  • —However, do not worry, we have prepared a script in our repository for preparing this databases:
  • —Dataset preparation folder: https://github.com/idiap/atco2-corpus/tree/main/data/databases/atco2testset1h/dataprepareatco2corpus_other.sh
  • —Get the data in the format required by HuggingFace: speakerrole/datapreparation/preparespkidatco2corpustestset1h.sh

Writing your own inference script

The snippet of code:

python
from transformers import pipeline, AutoTokenizer, AutoModelForTokenClassification

tokenizer = AutoTokenizer.from_pretrained("Jzuluaga/bert-base-ner-atc-en-atco2-1h")
model = AutoModelForTokenClassification.from_pretrained("Jzuluaga/bert-base-ner-atc-en-atco2-1h")


##### Process text sample
from transformers import pipeline

nlp = pipeline('ner', model=model, tokenizer=tokenizer, aggregation_strategy="first")
nlp("lufthansa three two five cleared to land runway three four left")

# output:
[{'entity_group': 'callsign', 'score': 0.8753265, 
'word': 'lufthansa three two five', 
'start': 0, 'end': 24},
{'entity_group': 'command', 'score': 0.99988264, 
'word': 'cleared to land', 'start': 25, 'end': 40}, 
{'entity_group': 'value', 'score': 0.9999145, 
'word': 'runway three four left', 'start': 41, 'end': 63}]

Cite us

If you use this code for your research, please cite our paper with:

@article{zuluaga2022bertraffic,
  title={BERTraffic: BERT-based Joint Speaker Role and Speaker Change Detection for Air Traffic Control Communications},
  author={Zuluaga-Gomez, Juan and Sarfjoo, Seyyed Saeed and Prasad, Amrutha and others},
  journal={IEEE Spoken Language Technology Workshop (SLT), Doha, Qatar},
  year={2022}
  }

and,

@article{zuluaga2022how,
    title={How Does Pre-trained Wav2Vec2. 0 Perform on Domain Shifted ASR? An Extensive Benchmark on Air Traffic Control Communications},
    author={Zuluaga-Gomez, Juan and Prasad, Amrutha and Nigmatulina, Iuliia and Sarfjoo, Saeed and others},
    journal={IEEE Spoken Language Technology Workshop (SLT), Doha, Qatar},
    year={2022}
  }

and,

@article{zuluaga2022atco2,
  title={ATCO2 corpus: A Large-Scale Dataset for Research on Automatic Speech Recognition and Natural Language Understanding of Air Traffic Control Communications},
  author={Zuluaga-Gomez, Juan and Vesel{\`y}, Karel and Sz{\"o}ke, Igor and Motlicek, Petr and others},
  journal={arXiv preprint arXiv:2211.04054},
  year={2022}
}

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

  • —learning_rate: 5e-05
  • —trainbatchsize: 32
  • —evalbatchsize: 16
  • —seed: 42
  • —gradientaccumulationsteps: 2
  • —totaltrainbatch_size: 64
  • —optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • —lrschedulertype: linear
  • —lrschedulerwarmup_steps: 500
  • —training_steps: 3000

Training results

Training LossEpochStepValidation LossPrecisionRecallF1Accuracy
No log125.05000.86920.63960.71720.67620.8307
0.2158250.010001.00740.57020.69700.62730.8245
0.2158375.015001.35600.65770.73740.69520.8119
0.0184500.020001.33930.61820.68690.65070.8056
0.0184625.025001.35280.60870.70710.65420.8213
0.0175750.030001.42820.61950.70710.66040.8182

Framework versions

  • —Transformers 4.24.0
  • —Pytorch 1.13.0+cu117
  • —Datasets 2.7.0
  • —Tokenizers 0.13.2