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
Python 2.7, PyTorch >=0.3.0, Gensim >= 0.12.0
For the data format used in our implementation, please read this issue.
In the root of the repository, first make the tmp directory:
mkdir tmp
To train a CRF POS tagger,
./example/run_posCRFTagger.sh
where the arguments for train/dev/test
data, together with the pretrained word embedding should be setup.
To train a NER model,
./example/run_ner_crf.sh
If you want to apply the sequence labeling model to other tasks or different datasets, please be sure to remove the corresponding folders storing the vocabularies located in data/alphabets/
. Otherwise, the old vocabularies will be loaded from disk.
To train a Stack-Pointer parser, simply run
./example/run_stackPtrParser.sh
Remeber to setup the paths for data and embeddings.
To train a Deep BiAffine parser, simply run
./example/run_graphParser.sh
Again, remember to setup the paths for data and embeddings.
To train a Neural MST parser, run the same script, but change the argument objective
from cross_entropy
to crf
(this part is still under development).