Skip to content
Code and datasets for our AAAI'19 paper : GIRNet: Interleaved Multi-Task Recurrent State Sequence Models
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config_files/absa
core
data_prep
outputs
sequence_classification
sequence_labeling
target_based_classification
.gitignore
README.md
environment.yml
exps_absa.py
exps_cmsenti.py
exps_postag.py
requirements.txt

README.md

GIRNet: Interleaved Multi-Task Recurrent State Sequence Models

Packaged datasets and Keras code for the paper GIRNet: Interleaved Multi-Task Recurrent State Sequence Models.

We use tensorflow-gpu-1.4.0 which needs cudnn6. To run on CUDA ca 2019, you need to download cudnn6 from here and install along with CUDA8.

Prepare a virtual environment and install requirements as follows.

$ virtualenv -p `which python2` /path/to/girnet-env
$ source /path/to/girnet-env/bin/activate
(girnet-env)$ pip install -r requirements.txt

We will assume this code has been cloned to /path/to/mtl_girnet as the code base directory. Download the zipped data files and unzip in the code base directory, which will place all the .h5 files in the data subdirectory. Gdrive can be used for downloading.

$ cd /tmp
$ gdrive download 1fksInwJMD9vlFfduonjDyNMJ5GbUkKTQ
$ cd /path/to/mtl_girnet
$ unzip /path/to/zipfile

If you want to prepare the data sets by yourself, clone this repository of labeled aspect-based sentiment data and convert to the .h5 format we use, by running

(girnet-env)$ cd /path/to/mtl_girnet/data
(girnet-env)$ git clone https://github.com/NUSTM/ABSC.git
(girnet-env)$ cd /path/to/mtl_girnet/data_prep
(girnet-env)$ python prep_absa_datasets.py

To use GIRNet, import GIRNet.py in your project. Examples are provided in the following snippet.

# Import GIRNet
from GIRNet import GIRNet

# Define the aux LSTMs
rnn_aux1 = LSTM( nHidden )
rnn_aux2 = LSTM( nHidden )

# Submodel for aux task 1
inp_aux1 = Input((n ,))
x_a1 = rnn_aux1( inp_aux1 )
out_aux1 = Dense( n_classes , activation='softmax')( x_a1 )

# Submodel for aux task 2
inp_aux2 = Input((n ,))
x_a2 = rnn_aux1( inp_aux2 )
out_aux2 = Dense( n_classes , activation='softmax')( x_a2 )

# Submodel for prim task
inp_prim = Input((n,))
gate_vales , prime_out , out_interleaved = GIRNet( inp_prim ,  [rnn_aux1 , rnn_aux2 ] , return_sequences=False )
out_prim = Dense( 3 , activation='softmax')( out_interleaved )

m = Model([inp_aux1 , inp_aux2 , inp_prim] , [out_aux1  , out_aux2  , out_prim ] )

In case of questions, contact: divam14038 [at] iiitd [dot] ac [dot] in

You can’t perform that action at this time.