Skip to content
Bi-direction LSTM model for relation extraction with word representations composed by character-LSTM
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Char-LSTM with Word-LSTM Relation Extraction Model

Implementation of a character-level bi-lstm relation extraction model (Kavuluru et al., 2017).

  • Uses position vectors based on offsets (off1,off2) from each entity
  • Input form is of form [(word,off1,off2),..]
  • By default, trains and evaluates on example_dataset directory.

Required Packages

  • Python 2.7
  • numpy
  • tensorflow 1.0.0
  • tensorflow-fold
  • sklearn
  • nltk


Please note that this model takes as input the path of the data folder and not paths to each individual file. A data folder is expected to have the following files: train_ids.txt, dev_ids.txt, test_ids.txt, and dataset.txt. Please see the example_dataset directory for an example of the format.

  • More info about the dataset format can be found here.

  • Depending on the classes in your dataset, lines 105 and 106 in must be changes to include them.

  • To designate negative classes for the purpose of computing F1, see lines 270 in

Training and Evaluating

python --datapath=example_dataset
usage: [-h] [--datapath DATAPATH] [--optimizer OPTIMIZER]
                [--batch-size BATCH_SIZE] [--num-epoch NUM_EPOCH]
                [--learning-rate LEARNING_RATE]
                [--embedding-factor EMBEDDING_FACTOR] [--decay DECAY_RATE]
                [--keep-prob KEEP_PROB] [--num-cores NUM_CORES] [--seed SEED]

Train and evaluate CharLSTM on a given dataset

optional arguments:
  -h, --help            show this help message and exit
  --datapath DATAPATH   path to the train/dev/test dataset
  --optimizer OPTIMIZER
                        choose the optimizer: default, rmsprop, adagrad, adam.
  --batch-size BATCH_SIZE
                        number of instances in a minibatch
  --num-epoch NUM_EPOCH
                        number of passes over the training set
  --learning-rate LEARNING_RATE
                        learning rate, default depends on optimizer
  --embedding-factor EMBEDDING_FACTOR
                        learning rate multiplier for embeddings
  --decay DECAY_RATE    exponential decay for learning rate
  --keep-prob KEEP_PROB
                        dropout keep rate
  --num-cores NUM_CORES
                        seed for training
  --seed SEED           seed for training


Please consider citing the following paper(s) if you use this software in your work:

Ramakanth Kavuluru, Anthony Rios, and Tung Tran. "Extracting Drug-Drug Interactions with Word and Character-Level Recurrent Neural Networks." In Healthcare Informatics (ICHI), 2017 IEEE International Conference on, pp. 5-12. IEEE, 2017.

  title={Extracting Drug-Drug Interactions with Word and Character-Level Recurrent Neural Networks},
  author={Kavuluru, Ramakanth and Rios, Anthony and Tran, Tung},
  booktitle={Healthcare Informatics (ICHI), 2017 IEEE International Conference on},

For the word-level counterpart to this model, see this repo by Anthony Rios.


Tung Tran
tung.tran [at]

You can’t perform that action at this time.