Papers › BERT for Joint Intent Classification and Slot Filling

BERT for Joint Intent Classification and Slot Filling

28 Feb 2019arXiv:1902.10909archive 2025-07-28

Qian Chen, Zhu Zhuo, Wen Wang

Intent classification and slot filling are two essential tasks for natural language understanding. They often suffer from small-scale human-labeled training data, resulting in poor generalization capability, especially for rare words. Recently a new language representation model, BERT (Bidirectional Encoder Representations from Transformers), facilitates pre-training deep bidirectional representations on large-scale unlabeled corpora, and has created state-of-the-art models for a wide variety of natural language processing tasks after simple fine-tuning. However, there has not been much effort on exploring BERT for natural language understanding. In this work, we propose a joint intent classification and slot filling model based on BERT. Experimental results demonstrate that our proposed model achieves significant improvement on intent classification accuracy, slot filling F1, and sentence-level semantic frame accuracy on several public benchmark datasets, compared to the attention-based recurrent neural network models and slot-gated models.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1902.10909")

Code

Syntology Ran 9 of 32 code samples harvested from 6 repositories linked to this paper; 23 have no recorded run. Of those that ran: 1 ran · honoured contract; 7 ran · our draft was wrong; 1 ran with no contract checked.

By repository: community (archive-listed): 32 samples from 6 repositories, 9 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

16 repositories listed; official and paper-mentioned ones first.

Domanjiri/joint-bert-with-tf2 mentioned on GitHubtf report
Huawei-MRC-OSI/mrc-nlp-public mentioned on GitHubpytorch report
MahmoudWahdan/dialog-nlu mentioned on GitHubtf report
Polly42Rose/SiriusIntentPredictionSlotFilling mentioned on GitHubpytorchApache-2.0 report
VinAIResearch/JointIDSF mentioned on GitHubpytorchAGPL-3.0 report
alibaba-damo-academy/spokennlp mentioned on GitHubtfApache-2.0 report
asadovsky/nn mentioned on GitHubtf report
bhchoi/bert-for-joint-ic-sf mentioned on GitHubpytorch report
dsindex/iclassifier mentioned on GitHubpytorch report
mangushev/intent_slot mentioned on GitHubtfMIT report
monologg/JointBERT mentioned on GitHubpytorchApache-2.0 report
sonos/svc-demographic-bias-assessment mentioned on GitHubNOASSERTION report
sxjscience/GluonNLP-Slot-Filling mentioned on GitHubmxnet report
yinghao1019/Joint_learn mentioned on GitHubpytorch report
zhoucz97/JointBERT-paddle mentioned on GitHubpaddle report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

32 samples harvested; 9 ran; 1 honoured the contract we drafted; 23 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · honoured contract
7ran · our draft was wrong
1ran
23unverified

Licence: 3 of the 32 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 6 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

convert_to_unicode mangushev/intent_slot/assistant/functions/intent_slot/preprocessor/tokenization.py community (archive-listed) ran · our draft was wrong fingerprinted MIT (permissive) · 1923fc05163d207d · report
gelu alibaba-damo-academy/spokennlp/action-item-detection/script/modeling.py community (archive-listed) ran · honoured contract fingerprinted Apache-2.0 (permissive) · d08f324f950148de · report
get_activation alibaba-damo-academy/spokennlp/action-item-detection/script/modeling.py community (archive-listed) ran · our draft was wrong Apache-2.0 (permissive) · 5842ee67106321d6 · report
get_args monologg/JointBERT/predict.py community (archive-listed) ran · our draft was wrong Apache-2.0 (permissive) · 107869d936646d01 · report
get_device monologg/JointBERT/predict.py community (archive-listed) ran · our draft was wrong Apache-2.0 (permissive) · 88395eef09dea094 · report
get_soft_label dsindex/iclassifier/evaluate.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 46fa4973164b67e8 · report
load_vocab mangushev/intent_slot/assistant/functions/intent_slot/preprocessor/tokenization.py community (archive-listed) ran MIT (permissive) · deb4d1793cf3ba73 · report
read_file yinghao1019/Joint_learn/predict.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · 7b9905a68c0add30 · report
set_device yinghao1019/Joint_learn/predict.py community (archive-listed) ran · our draft was wrong no licence file found · pointer only · cfd666d38b923d90 · report
abridge_model_name alibaba-damo-academy/spokennlp/emnlp2023-topic_segmentation/src/utils.py community (archive-listed) unverified Apache-2.0 (permissive) · 0628b6fa4fa6d748 · report
convert_examples_to_features monologg/JointBERT/data_loader.py community (archive-listed) unverified Apache-2.0 (permissive) · 9d27d5015d7a3b3e · report
convert_single_example mangushev/intent_slot/assistant/functions/intent_slot/preprocessor/preprocess.py community (archive-listed) unverified MIT (permissive) · 047d8e25a9cd47a0 · report
file_based_input_fn_builder mangushev/intent_slot/bert/run_intent_slot.py community (archive-listed) unverified MIT (permissive) · 6c079a61fb350572 · report
get_assignment_map_from_checkpoint alibaba-damo-academy/spokennlp/action-item-detection/script/modeling.py community (archive-listed) unverified Apache-2.0 (permissive) · a8a77945aa9b653f · report
get_cn_type2video alibaba-damo-academy/spokennlp/mmvts/src/evaluate.py community (archive-listed) unverified Apache-2.0 (permissive) · c77e7567c42aa639 · report
get_data_name2folder alibaba-damo-academy/spokennlp/emnlp2023-topic_segmentation/src/preprocess_data.py community (archive-listed) unverified Apache-2.0 (permissive) · 28f8fe33f44d2b1c · report
get_intent_labels monologg/JointBERT/utils.py community (archive-listed) unverified Apache-2.0 (permissive) · 5c324b980ac8fc2f · report
get_slot_labels monologg/JointBERT/utils.py community (archive-listed) unverified Apache-2.0 (permissive) · 2756ee0a98c809b9 · report
get_topk_preds_purely alibaba-damo-academy/spokennlp/mmvts/src/evaluate.py community (archive-listed) unverified Apache-2.0 (permissive) · 96d532ea3cd5bd8e · report
intent_accuracy Polly42Rose/SiriusIntentPredictionSlotFilling/quality_metrics/quality_metrics.py community (archive-listed) unverified Apache-2.0 (permissive) · 0933912fab50428a · report
load_data Polly42Rose/SiriusIntentPredictionSlotFilling/data_loading/load_data.py community (archive-listed) unverified Apache-2.0 (permissive) · 96f7ae2ec61191ba · report
load_sequences_from_file Polly42Rose/SiriusIntentPredictionSlotFilling/data_loading/load_data.py community (archive-listed) unverified Apache-2.0 (permissive) · b2e0a020c6065fe1 · report
load_words_from_file Polly42Rose/SiriusIntentPredictionSlotFilling/data_loading/load_data.py community (archive-listed) unverified Apache-2.0 (permissive) · c807f612db31bf63 · report
padding_map Polly42Rose/SiriusIntentPredictionSlotFilling/models/dataset.py community (archive-listed) unverified Apache-2.0 (permissive) · 680833552e4de839 · report
preprocess_atis Polly42Rose/SiriusIntentPredictionSlotFilling/models/dataset.py community (archive-listed) unverified Apache-2.0 (permissive) · 89bccc2b443e9266 · report
printable_text mangushev/intent_slot/assistant/functions/intent_slot/preprocessor/tokenization.py community (archive-listed) unverified MIT (permissive) · 0e5615f8994003cf · report
process_wiki_section_subset alibaba-damo-academy/spokennlp/emnlp2023-topic_segmentation/src/preprocess_data.py community (archive-listed) unverified Apache-2.0 (permissive) · 40b50b726e7a6434 · report
read_jsonl_file alibaba-damo-academy/spokennlp/mmvts/src/evaluate.py community (archive-listed) unverified Apache-2.0 (permissive) · 90bf04bed34edf57 · report
read_total_pred_and_labels alibaba-damo-academy/spokennlp/emnlp2023-topic_segmentation/src/postprocess_predictions.py community (archive-listed) unverified Apache-2.0 (permissive) · e9b0cd55fca10310 · report
sentence_accuracy Polly42Rose/SiriusIntentPredictionSlotFilling/quality_metrics/quality_metrics.py community (archive-listed) unverified Apache-2.0 (permissive) · 0a3ade9a74c9987d · report
slot_f1 Polly42Rose/SiriusIntentPredictionSlotFilling/quality_metrics/quality_metrics.py community (archive-listed) unverified Apache-2.0 (permissive) · b62b0764cd5a1413 · report
tokenize_method alibaba-damo-academy/spokennlp/emnlp2023-topic_segmentation/src/preprocess_data.py community (archive-listed) unverified Apache-2.0 (permissive) · e83d18c25c1278b9 · report

Tasks

General ClassificationIntent ClassificationIntent DetectionNatural Language UnderstandingSentenceSlot Fillingintent-classification

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Intent Detection ATIS Joint BERT + CRF Accuracy 97.9 #6 of 16 Archive leaderboard report
Intent Detection ATIS Joint BERT Accuracy 97.5 #10 of 16 Archive leaderboard report
Slot Filling ATIS Joint BERT F1 0.961 #3 of 14 Archive leaderboard report
Slot Filling ATIS Joint BERT + CRF F1 0.96 #6 of 14 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

AdamAttentionAttention DropoutBERTDense ConnectionsDropoutLayer NormalizationLinear LayerLinear Warmup With Linear DecayMulti-Head AttentionResidual ConnectionSoftmaxWeight DecayWordPiece

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections