{"id":20899360,"url":"https://github.com/davidemodolo/nlu_intent_and_slot","last_synced_at":"2026-03-15T07:07:30.569Z","repository":{"id":152556104,"uuid":"561894727","full_name":"davidemodolo/NLU_Intent_and_Slot","owner":"davidemodolo","description":"Intent detection and Slot filling joint learning on ATIS and SNIPS datasets using pre-trained models and built-from-scratch models","archived":false,"fork":false,"pushed_at":"2023-08-17T16:00:59.000Z","size":1993,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-08T19:36:53.534Z","etag":null,"topics":["atis-dataset","bert","encoder-decoder-model","ernie","intent-classification","intent-detection","pytorch","slot-filling","snips-dataset"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidemodolo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-11-04T18:31:20.000Z","updated_at":"2025-04-28T08:35:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"347f2804-f5d3-43e7-8937-fb3baa6353bf","html_url":"https://github.com/davidemodolo/NLU_Intent_and_Slot","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/davidemodolo/NLU_Intent_and_Slot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidemodolo%2FNLU_Intent_and_Slot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidemodolo%2FNLU_Intent_and_Slot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidemodolo%2FNLU_Intent_and_Slot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidemodolo%2FNLU_Intent_and_Slot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidemodolo","download_url":"https://codeload.github.com/davidemodolo/NLU_Intent_and_Slot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidemodolo%2FNLU_Intent_and_Slot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30537164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T06:53:40.532Z","status":"ssl_error","status_checked_at":"2026-03-15T06:51:47.131Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atis-dataset","bert","encoder-decoder-model","ernie","intent-classification","intent-detection","pytorch","slot-filling","snips-dataset"],"created_at":"2024-11-18T11:13:53.068Z","updated_at":"2026-03-15T07:07:30.555Z","avatar_url":"https://github.com/davidemodolo.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"**Davide Modolo 229297**\n\n# NLU Project - Joint Intent Classification and Slot Filling Sentence Level\n\n## Theory\n\n### Intent Classification\n\nIntent classification is a text classification task in which the objective is to assign an intent for a given sentence or utterance.\n\n\u003e _Utterance_: Can you help me find out about flights?\n\u003e\n\u003e _Intent_: InfoRequest\n\n### Slot Filling (Slot F1)\nSlot filling is a sequence labelling task where the objective is to map a given sentence or utterance to a sequence of domain-slot labels.\n\n\u003e _Utterance_: I want to travel from nashville to tacoma\n\u003e\n\u003e _Concepts_: O O O O O B-fromloc.city_name O B-toloc.city_name\n\n## Task\n\nImplement a neural network that predicts intents and slots in a multitask learning setting.\n\n\u003cu\u003eSince the datasets are tiny, you have to train and test your model from scratch at least 5 times. Report average and standard deviation.\u003c/u\u003e\n\n**Datasets**: ATIS and SNIPS\n\n**Goal**: Improve baseline results by at least 2/3%:\n\n- ATIS -\u003e Slot F1: 92.0%, Intent Acc.: 94.0%\n\n- SNIPS -\u003e Slot F1: 80.0%, Intent Acc.: 96.0%\n\n**PROJECT TODO**:\n\n1. Implement baseline methods\n\n2. Build different architectures (Seq2Seq, Bi-LSTM + CRF, etc.)\n\n3. Try to use pre-trained models (e.g. BERT, GPT2, T5, etc.)\n\n**MY TODO**:\n\n- [x] download and import datasets\n\n- [x] prepare validation dataset for ATIS (since only SNIPS has it) - ~10% of the train but intents with only one instance remain in training\n\n- [x] implement baseline methods\n\n- [x] implement architectures from scratch (PyTorch)\n\n- [x] implement pre-trained models (PyTorch) BERT \u0026 ERNIE\n\n- [x] data visualization\n\n- [x] write paper\n\n## Repository content\n```\nproject\n│   README.md\n│   NLU_Report_Modolo.pdf: report on this project\n│   conll.py: script to evaluate results\n│   modolo_davide.ipynb: python notebook containing the baseline model, the bi-directional one and ED\n│   pretrainedBERT.ipynb: python notebook containing the BERT model\n│   pretrainedERNIE.ipynb: python notebook containing the ERNIE model\n│\n└───data\n    └───ATIS\n    │   test.json\n    │   train_full.json\n    │   train.json\n    │   valid.json\n    │\n    └───SNIPS\n        test.json\n        train.json\n        valid.json\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidemodolo%2Fnlu_intent_and_slot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidemodolo%2Fnlu_intent_and_slot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidemodolo%2Fnlu_intent_and_slot/lists"}