This code implements the models described in the paper "Fast and Accurate Entity Recognition with Iterated Dilated Convolutions" by Emma Strubell, Patrick Verga, David Belanger and Andrew McCallum.
This code uses TensorFlow v[1.0, 1.4) and Python 2.7.
It will probably train on a CPU, but honestly we haven't tried, and highly recommend training on a GPU.
- Set up environment variables. For example, from the root directory of this project:
export DILATED_CNN_NER_ROOT=`pwd` export DATA_DIR=/path/to/conll-2003
word 0.45 0.67 0.99 ...
Make a directory for the embeddings:
mkdir -p data/embeddings
and place the file there.
Perform all data preprocessing for a given configuration. For example:
preprocess.py, which loads the data from text files, maps the tokens, labels and any other features to
integers, and writes to TensorFlow tfrecords.
Once the data preprocessing is completed, you can train a tagger:
By default, the trainer will write the model which achieved the best dev F1. To evaluate a saved model on the dev set:
./bin/eval-cnn.sh conf/conll/dilated-cnn.conf --load_model path/to/model
To evaluate a saved model on the test set:
./bin/eval-cnn.sh conf/conll/dilated-cnn.conf test --load_model path/to/model
Configuration files (
conf/*) specify all the data, parameters, etc. for an experiment.