Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/MiuLab/SlotGated-SLU

Slot-Gated Modeling for Joint Slot Filling and Intent Prediction
https://github.com/MiuLab/SlotGated-SLU

intent-prediction joint-models natural-language-understanding slot-filling spoken-language-understanding

Last synced: 2 days ago
JSON representation

Slot-Gated Modeling for Joint Slot Filling and Intent Prediction

Awesome Lists containing this project

README

        

# Slot-Gated Modeling for Joint Slot Filling and Intent Prediction

## Reference
Main paper to be cited ([Goo et al., 2018](https://www.csie.ntu.edu.tw/~yvchen/doc/NAACL18_SlotGated.pdf))

```
@inproceedings{goo2018slot,
title={Slot-Gated Modeling for Joint Slot Filling and Intent Prediction},
author={Chih-Wen Goo and Guang Gao and Yun-Kai Hsu and Chih-Li Huo and Tsung-Chieh Chen and Keng-Wei Hsu and Yun-Nung Chen},
booktitle={Proceedings of The 16th Annual Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies},
year={2018}
}
```

## Want to Reproduce the experiment?
Enter `--dataset=atis` or `--dataset=snips` to use ATIS or Snips ([Coucke et al., 2018](https://arxiv.org/abs/1805.10190)) dataset.

## Where to Put My Dataset?
You need to put your dataset under ./data/ and use `--dataset=foldername`.
For example, your dataset is ./data/mydata, then you need to enter `--dataset=mydata`

Your dataset should be seperated to three folders - train, test, and valid, which is named 'train', 'test', and 'valid' by default setting of train.py.
Each of these folders contain three files - word sequence, slot label, and intent label, which is named 'seq.in', 'seq.out', and 'label' by default setting of train.py.
For example, the full path to train/slot_label_file is './data/mydata/train/seq.out' .
Each line represents an example, and slot label should use the IBO format.

Vocabulary files will be generated by utils.createVocabulary() automatically

You may see ./data/atis for more detail.

## Requirements
tensorflow 1.4

python 3.5

## Usage
some sample usage

* run with 32 units, atis dataset and no patience for early stop

 python3 train.py --num_units=32 --dataset=atis --patience=0

* disable early stop, use snips dataset and use intent attention version

 python3 train.py --no_early_stop --dataset=snips --model_type=intent_only

* use "python3 train.py -h" for all avaliable parameter settings

* Note: must type `--dataset`. If you don't want to use this flag, type `--dataset=''` instead.