NeuroNLP2
Deep neural models for core NLP tasks based on Pytorch(version 2)
This is the code we used in the following papers
End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF
Xuezhe Ma, Eduard Hovy
ACL 2016
Xuezhe Ma, Eduard Hovy
IJCNLP 2017
Xuezhe Ma, Zecong Hu, Jingzhou Liu, Nanyun Peng, Graham Neubig and Eduard Hovy
ACL 2018
It also includes the re-implementation of the Stanford Deep BiAffine Parser:
Timothy Dozat, Christopher D. Manning
ICLR 2017
Updates
- Upgraded the code to support PyTorch 1.3 and Python 3.6
- Re-factored code to better organization
- Implemented the batch version of Stack-Pointer Parser decoding algorithm, about 50 times faster!
Requirements
Python 3.6, PyTorch >=1.3.1, Gensim >= 0.12.0
Data format
For the data format used in our implementation, please read this issue.
Running the experiments
First to the experiments folder:
cd experiments
Sequence labeling
To train a CRF POS tagger of PTB WSJ corpus,
./scripts/run_pos_wsj.sh
where the arguments for train/dev/test
data, together with the pretrained word embedding should be setup.
To train a NER model on CoNLL-2003 English data set,
./scripts/run_ner_conll03.sh
Dependency Parsing
To train a Stack-Pointer parser, simply run
./scripts/run_stackptr.sh
Remeber to setup the paths for data and embeddings.
To train a Deep BiAffine parser, simply run
./scripts/run_deepbiaf.sh
Again, remember to setup the paths for data and embeddings.
To train a Neural MST parser,
./scripts/run_neuromst.sh