Code Monkey home page Code Monkey logo

nlu_intent_and_slot's Introduction

Davide Modolo 229297

NLU Project - Joint Intent Classification and Slot Filling Sentence Level

Theory

Intent Classification

Intent classification is a text classification task in which the objective is to assign an intent for a given sentence or utterance.

Utterance: Can you help me find out about flights?

Intent: InfoRequest

Slot Filling (Slot F1)

Slot filling is a sequence labelling task where the objective is to map a given sentence or utterance to a sequence of domain-slot labels.

Utterance: I want to travel from nashville to tacoma

Concepts: O O O O O B-fromloc.city_name O B-toloc.city_name

Task

Implement a neural network that predicts intents and slots in a multitask learning setting.

Since the datasets are tiny, you have to train and test your model from scratch at least 5 times. Report average and standard deviation.

Datasets: ATIS and SNIPS

Goal: Improve baseline results by at least 2/3%:

  • ATIS -> Slot F1: 92.0%, Intent Acc.: 94.0%

  • SNIPS -> Slot F1: 80.0%, Intent Acc.: 96.0%

PROJECT TODO:

  1. Implement baseline methods

  2. Build different architectures (Seq2Seq, Bi-LSTM + CRF, etc.)

  3. Try to use pre-trained models (e.g. BERT, GPT2, T5, etc.)

MY TODO:

  • download and import datasets

  • prepare validation dataset for ATIS (since only SNIPS has it) - ~10% of the train but intents with only one instance remain in training

  • implement baseline methods

  • implement architectures from scratch (PyTorch)

  • implement pre-trained models (PyTorch) BERT & ERNIE

  • data visualization

  • write paper

Repository content

project
│   README.md
│   NLU_Report_Modolo.pdf: report on this project
│   conll.py: script to evaluate results
│   modolo_davide.ipynb: python notebook containing the baseline model, the bi-directional one and ED
│   pretrainedBERT.ipynb: python notebook containing the BERT model
│   pretrainedERNIE.ipynb: python notebook containing the ERNIE model
│
└───data
    └───ATIS
    │   test.json
    │   train_full.json
    │   train.json
    │   valid.json
    │
    └───SNIPS
        test.json
        train.json
        valid.json

nlu_intent_and_slot's People

Contributors

davidemodolo avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

firashm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.