/SU4MLC

Code for the article "Semantic-Unit-Based Dilated Convolution for Multi-Label Text Classification" (EMNLP 2018)

Primary LanguagePython

Semantic-Unit-for-Multi-label-Text-Classification

Code for the article "Semantic-Unit-Based Dilated Convolution for Multi-Label Text Classification" (EMNLP 2018).


Requirements

  • Ubuntu 16.0.4
  • Python 3.5
  • Pytorch 0.4.1 (updated)

Data

Our preprocessed RCV1-V2 dataset can be retrieved through this link. (The json file of label set for evaluation is added for convenience.)


Preprocessing

python3 preprocess.py -load_data path_to_data -save_data path_to_store_data (-src_filter 500)

Remember to put the data (plain text file) into a folder and name them train.src, train.tgt, valid.src, valid.tgt, test.src and test.tgt, and make a new folder inside called data.


Training

python3 train.py -log log_name -config config_yaml -gpus id (-label_dict_file path to your label set)

Create your own yaml file for hyperparameter setting.


Evaluation

python3 train.py -log log_name -config config_yaml -gpus id -restore checkpoint -mode eval

Citation

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

@inproceedings{DBLP:conf/emnlp/LinSYM018,
  author    = {Junyang Lin and
               Qi Su and
               Pengcheng Yang and
               Shuming Ma and
               Xu Sun},
  title     = {Semantic-Unit-Based Dilated Convolution for Multi-Label Text Classification},
  booktitle = {Proceedings of the 2018 Conference on Empirical Methods in Natural
               Language Processing, Brussels, Belgium, October 31 - November 4, 2018},
  pages     = {4554--4564},
  year      = {2018}
}