Skip to content

Code for paper "Joint Learning of Correlated Sequence Labelling Tasks Using Bidirectional Recurrent Neural Networks"

Notifications You must be signed in to change notification settings

vardaan123/Corr-seq-labeling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

corr-seq-labelling

Code for Interspeech 2017 paper: Joint Learning of Correlated Sequence Labeling Tasks Using Bidirectional Recurrent Neural Networks [Link]

Credits: Anirban Laha, Vardaan Pahuja, Vikas Raykar

Installation

The TF version used is 0.11.0rc2. Install the python dependencies using the command pip install -r requirements.txt. Install gunzip by following the instructions here

Directory Setup

mkdir seq_labelling_logs 
mkdir embed
cd embed
wget https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz
gunzip GoogleNews-vectors-negative300.bin.gz

Note: for all the following groups of 4 commands each, the first is for punctuation best individual model, second is for capitalization best individual model, third is for punctuation best joint model and fourth is for capitalization best joint model.

Training commands:

cd sequence_labelling/

Train on I2 data

python TrainCorrelatedSequenceLabelling.py --save_dir ../seq_labelling_logs/punc_4cl_rnn512_lstm_hid1_hdim300_linear_bat64_layer1 --pretrained_embedding_filename ../embed/GoogleNews-vectors-negative300.bin --trainFilename ../datasets/i2data/punc/data.ndp.np.train.txt --trainLabelFilename ../datasets/i2data/punc/data.ndp.train.lab --testFilename ../datasets/i2data/punc/data.ndp.np.test.txt --testLabelFilename ../datasets/i2data/punc/data.ndp.test.lab --devFilename ../datasets/i2data/punc/data.ndp.np.val.txt --devLabelFilename ../datasets/i2data/punc/data.ndp.val.lab --early_stopping 1 --max_epochs 100 --rnn_size 512 --model lstm --use_hidden_layer 1 --hidden_dimension 300 --hidden_activation linear --batch_size 64 --num_layers 1
python TrainCorrelatedSequenceLabelling.py --save_dir ../seq_labelling_logs/caps_4cl3_rnn512_gru_bat64_layer2_drop0p5 --pretrained_embedding_filename ../embed/GoogleNews-vectors-negative300.bin --trainFilename ../datasets/i2data/caps/data.capt.ndp.np.train.txt --trainLabelFilename ../datasets/i2data/caps/data.capt.ndp.train.lab --testFilename ../datasets/i2data/caps/data.capt.ndp.np.test.txt --testLabelFilename ../datasets/i2data/caps/data.capt.ndp.test.lab --devFilename ../datasets/i2data/caps/data.capt.ndp.np.val.txt --devLabelFilename ../datasets/i2data/caps/data.capt.ndp.val.lab --early_stopping 1 --max_epochs 100 --rnn_size 512 --model gru --batch_size 64 --num_layers 2 --rnn_dropout_keep_prob 0.5 --output_dropout_keep_prob 0.5
python TrainCorrelatedSequenceLabelling.py --save_dir ../seq_labelling_logs/corr_4cl3_rnn256_lstm_hid1_hdim300_linear_wt0p9_bat64_layer1 --pretrained_embedding_filename ../embed/GoogleNews-vectors-negative300.bin --trainFilename ../datasets/i2data/joint/data.ndp.np.train.txt --trainLabelFilename ../datasets/i2data/joint/data.ndp.train.lab --testFilename ../datasets/i2data/joint/data.ndp.np.test.txt --testLabelFilename ../datasets/i2data/joint/data.ndp.test.lab --devFilename ../datasets/i2data/joint/data.ndp.np.val.txt --devLabelFilename ../datasets/i2data/joint/data.ndp.val.lab --early_stopping 1 --max_epochs 100 --rnn_size 256 --model lstm --use_hidden_layer 1 --hidden_dimension 300 --hidden_activation linear --task_loss_weight 0.9:0.1 --batch_size 64 --num_layers 1
python TrainCorrelatedSequenceLabelling.py --save_dir ../seq_labelling_logs/corr_4cl3_rnn512_lstm_hid1_hdim300_linear_wt0p75_bat64_layer2_drop1p0 --pretrained_embedding_filename ../embed/GoogleNews-vectors-negative300.bin --trainFilename ../datasets/i2data/joint/data.ndp.np.train.txt --trainLabelFilename ../datasets/i2data/joint/data.ndp.train.lab --testFilename ../datasets/i2data/joint/data.ndp.np.test.txt --testLabelFilename ../datasets/i2data/joint/data.ndp.test.lab --devFilename ../datasets/i2data/joint/data.ndp.np.val.txt --devLabelFilename ../datasets/i2data/joint/data.ndp.val.lab --early_stopping 1 --max_epochs 100 --rnn_size 512 --model lstm --use_hidden_layer 1 --hidden_dimension 300 --hidden_activation linear --task_loss_weight 0.75:0.25 --batch_size 64 --num_layers 2 --rnn_dropout_keep_prob 1.0 --output_dropout_keep_prob 1.0

Train on TED data

python TrainCorrelatedSequenceLabelling.py --save_dir ../seq_labelling_logs/punc7_4cl_rnn256_gru_bat64_layer1 --pretrained_embedding_filename ../embed/GoogleNews-vectors-negative300.bin --trainFilename ../datasets/TED_train_corr7/4classes_punct/data.ndp.np.train.txt --trainLabelFilename ../datasets/TED_train_corr7/4classes_punct/data.ndp.train.lab --testFilename ../datasets/TED_2/4classes_punct/data.ndp.np.test.txt --testLabelFilename ../datasets/TED_2/4classes_punct/data.ndp.test.lab --devFilename ../datasets/TED_val_single/4classes_punct/data.ndp.np.val.txt --devLabelFilename ../datasets/TED_val_single/4classes_punct/data.ndp.val.lab --early_stopping 1 --max_epochs 100 --rnn_size 256 --model gru --batch_size 64 --num_layers 1
python TrainCorrelatedSequenceLabelling.py --save_dir ../seq_labelling_logs/caps7_4cl_rnn512_gru_bat64_layer2_drop0p75 --pretrained_embedding_filename ../embed/GoogleNews-vectors-negative300.bin --trainFilename ../datasets/TED_train_corr7/4classes_capt/data.capt.ndp.np.train.txt --trainLabelFilename ../datasets/TED_train_corr7/4classes_capt/data.capt.ndp.train.lab --testFilename ../datasets/TED_2/4classes_capt/data.capt.ndp.np.test.txt --testLabelFilename ../datasets/TED_2/4classes_capt/data.capt.ndp.test.lab --devFilename ../datasets/TED_val_single/4classes_capt/data.capt.ndp.np.val.txt --devLabelFilename ../datasets/TED_val_single/4classes_capt/data.capt.ndp.val.lab --early_stopping 1 --max_epochs 100 --rnn_size 512 --model gru --batch_size 64 --num_layers 2 --rnn_dropout_keep_prob 0.75 --output_dropout_keep_prob 0.75
python TrainCorrelatedSequenceLabelling.py --save_dir ../seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5 --pretrained_embedding_filename ../embed/GoogleNews-vectors-negative300.bin --trainFilename ../datasets/TED_train_corr7/4classes/data.ndp.np.train.txt --trainLabelFilename ../datasets/TED_train_corr7/4classes/data.ndp.train.lab --testFilename ../datasets/TED_2/4classes/data.ndp.np.test.txt --testLabelFilename ../datasets/TED_2/4classes/data.ndp.test.lab --devFilename ../datasets/TED_val_single/4classes/data.ndp.np.val.txt --devLabelFilename ../datasets/TED_val_single/4classes/data.ndp.val.lab --early_stopping 1 --max_epochs 100 --rnn_size 512 --model gru --use_hidden_layer 1 --hidden_dimension 300 --hidden_activation relu --task_loss_weight 0.9:0.1 --batch_size 64 --num_layers 2 --rnn_dropout_keep_prob 0.5 --output_dropout_keep_prob 0.5
python TrainCorrelatedSequenceLabelling.py --save_dir ../seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75 --pretrained_embedding_filename ../embed/GoogleNews-vectors-negative300.bin --trainFilename ../datasets/TED_train_corr7/4classes/data.ndp.np.train.txt --trainLabelFilename ../datasets/TED_train_corr7/4classes/data.ndp.train.lab --testFilename ../datasets/TED_2/4classes/data.ndp.np.test.txt --testLabelFilename ../datasets/TED_2/4classes/data.ndp.test.lab --devFilename ../datasets/TED_val_single/4classes/data.ndp.np.val.txt --devLabelFilename ../datasets/TED_val_single/4classes/data.ndp.val.lab --early_stopping 1 --max_epochs 100 --rnn_size 512 --model lstm --use_hidden_layer 1 --hidden_dimension 300 --hidden_activation relu --task_loss_weight 0.75:0.25 --batch_size 64 --num_layers 1 --rnn_dropout_keep_prob 0.75 --output_dropout_keep_prob 0.75

Compute label predictions

cd sequence_labelling/

I2 data Reference

python evaluateCorrelatedSequenceLabels.py ../seq_labelling_logs/punc_4cl_rnn512_lstm_hid1_hdim300_linear_bat64_layer1
python evaluateCorrelatedSequenceLabels.py ../seq_labelling_logs/caps_4cl3_rnn512_gru_bat64_layer2_drop0p5
python evaluateCorrelatedSequenceLabels.py ../seq_labelling_logs/corr_4cl3_rnn256_lstm_hid1_hdim300_linear_wt0p9_bat64_layer1
python evaluateCorrelatedSequenceLabels.py ../seq_labelling_logs/corr_4cl3_rnn512_lstm_hid1_hdim300_linear_wt0p75_bat64_layer2_drop1p0

Test-dataset-2 Reference

python evaluateCorrelatedSequenceLabels.py ../seq_labelling_logs/punc7_4cl_rnn256_gru_bat64_layer1
python evaluateCorrelatedSequenceLabels.py ../seq_labelling_logs/caps7_4cl_rnn512_gru_bat64_layer2_drop0p75
python evaluateCorrelatedSequenceLabels.py ../seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5
python evaluateCorrelatedSequenceLabels.py ../seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75

Test-dataset-1 Reference

python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/punc7_4cl_rnn256_gru_bat64_layer1 ../datasets/TED_3/4classes/data.ndp.np.test.txt ../datasets/TED_3/4classes/data.ndp.test.lab ted3
python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/caps7_4cl_rnn512_gru_bat64_layer2_drop0p75 ../datasets/TED_3/4classes_capt/data.capt.ndp.np.test.txt ../datasets/TED_3/4classes_capt/data.capt.ndp.test.lab ted3
python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5 ../datasets/TED_3/4classes/data.ndp.np.test.txt ../datasets/TED_3/4classes/data.ndp.test.lab ted3
python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75 ../datasets/TED_3/4classes/data.ndp.np.test.txt ../datasets/TED_3/4classes/data.ndp.test.lab ted3

Test-dataset-2 ASR

python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/punc7_4cl_rnn256_gru_bat64_layer1 ../datasets/TED_2_ASR/4classes/data.ndp.np.test.txt ../datasets/TED_2_ASR/4classes/data.ndp.test.lab ted2_asr
python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/caps7_4cl_rnn512_gru_bat64_layer2_drop0p75 ../datasets/TED_2_ASR/4classes_capt/data.capt.ndp.np.test.txt ../datasets/TED_2_ASR/4classes_capt/data.capt.ndp.test.lab ted2_asr
python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5 ../datasets/TED_2_ASR/4classes/data.ndp.np.test.txt ../datasets/TED_2_ASR/4classes/data.ndp.test.lab ted2_asr
python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75 ../datasets/TED_2_ASR/4classes/data.ndp.np.test.txt ../datasets/TED_2_ASR/4classes/data.ndp.test.lab ted2_asr

Test-dataset-1 ASR

python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/punc7_4cl_rnn256_gru_bat64_layer1 ../datasets/TED_3_ASR/4classes/data.ndp.np.test.txt ../datasets/TED_3_ASR/4classes/data.ndp.test.lab ted3_asr
python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/caps7_4cl_rnn512_gru_bat64_layer2_drop0p75 ../datasets/TED_3_ASR/4classes_capt/data.capt.ndp.np.test.txt ../datasets/TED_3_ASR/4classes_capt/data.capt.ndp.test.lab ted3_asr
python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5 ../datasets/TED_3_ASR/4classes/data.ndp.np.test.txt ../datasets/TED_3_ASR/4classes/data.ndp.test.lab ted3_asr
python evaluateCorrelatedSequenceLabelsTest.py ../seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75 ../datasets/TED_3_ASR/4classes/data.ndp.np.test.txt ../datasets/TED_3_ASR/4classes/data.ndp.test.lab ted3_asr

Computation of evaluation metrics

I2 data Reference

python sequence_labelling/metrics_full_correlated.py datasets/i2data/punc/data.ndp.test.lab seq_labelling_logs/punc_4cl_rnn512_lstm_hid1_hdim300_linear_bat64_layer1/test_predictions_task0.tsv
python sequence_labelling/metrics_full_correlated.py datasets/i2data/caps/data.capt.ndp.test.lab seq_labelling_logs/caps_4cl3_rnn512_gru_bat64_layer2_drop0p5/test_predictions_task0.tsv
python sequence_labelling/metrics_full_correlated.py datasets/i2data/joint/data.ndp.test.lab seq_labelling_logs/corr_4cl3_rnn256_lstm_hid1_hdim300_linear_wt0p9_bat64_layer1/test_predictions_task0.tsv seq_labelling_logs/corr_4cl3_rnn256_lstm_hid1_hdim300_linear_wt0p9_bat64_layer1/test_predictions_task1.tsv
python sequence_labelling/metrics_full_correlated.py datasets/i2data/joint/data.ndp.test.lab seq_labelling_logs/corr_4cl3_rnn512_lstm_hid1_hdim300_linear_wt0p75_bat64_layer2_drop1p0/test_predictions_task0.tsv seq_labelling_logs/corr_4cl3_rnn512_lstm_hid1_hdim300_linear_wt0p75_bat64_layer2_drop1p0/test_predictions_task1.tsv

Test-dataset-2 Reference

python sequence_labelling/metrics_full_correlated.py datasets/TED_2/4classes_punct/data.ndp.test.lab seq_labelling_logs/punc7_4cl_rnn256_gru_bat64_layer1/test_predictions_task0.tsv
python sequence_labelling/metrics_full_correlated.py datasets/TED_2/4classes_capt/data.capt.ndp.test.lab seq_labelling_logs/caps7_4cl_rnn512_gru_bat64_layer2_drop0p75/test_predictions_task0.tsv
python sequence_labelling/metrics_full_correlated.py datasets/TED_2/4classes/data.ndp.test.lab seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5/test_predictions_task0.tsv seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5/test_predictions_task1.tsv
python sequence_labelling/metrics_full_correlated.py datasets/TED_2/4classes/data.ndp.test.lab seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75/test_predictions_task0.tsv seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75/test_predictions_task1.tsv

Test-dataset-1 Reference

python sequence_labelling/metrics_full_correlated.py datasets/TED_3/4classes_punct/data.ndp.test.lab seq_labelling_logs/punc7_4cl_rnn256_gru_bat64_layer1/ted3_task0.tsv
python sequence_labelling/metrics_full_correlated.py datasets/TED_3/4classes_capt/data.capt.ndp.test.lab seq_labelling_logs/caps7_4cl_rnn512_gru_bat64_layer2_drop0p75/ted3_task0.tsv
python sequence_labelling/metrics_full_correlated.py datasets/TED_3/4classes/data.ndp.test.lab seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5/ted3_task0.tsv seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5/ted3_task1.tsv
python sequence_labelling/metrics_full_correlated.py datasets/TED_3/4classes/data.ndp.test.lab seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75/ted3_task0.tsv seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75/ted3_task1.tsv

Test-dataset-2 ASR

python sequence_labelling/metrics_full_correlated_asr.py datasets/TED_2/4classes_punct/data.ndp.test.lab datasets/TED_2_ASR/ted2_asr_punct_slots.txt seq_labelling_logs/punc7_4cl_rnn256_gru_bat64_layer1/ted2_asr_task0.tsv
python sequence_labelling/metrics_full_correlated_asr.py datasets/TED_2/4classes_capt/data.capt.ndp.test.lab datasets/TED_2_ASR/ted2_asr_punct_slots.txt seq_labelling_logs/caps7_4cl_rnn512_gru_bat64_layer2_drop0p75/ted2_asr_task0.tsv
python sequence_labelling/metrics_full_correlated_asr.py datasets/TED_2/4classes/data.ndp.test.lab datasets/TED_2_ASR/ted2_asr_punct_slots.txt seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5/ted2_asr_task0.tsv seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5/ted2_asr_task1.tsv
python sequence_labelling/metrics_full_correlated_asr.py datasets/TED_2/4classes/data.ndp.test.lab datasets/TED_2_ASR/ted2_asr_punct_slots.txt seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75/ted2_asr_task0.tsv seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75/ted2_asr_task1.tsv

Test-dataset-1 ASR

python sequence_labelling/metrics_full_correlated_asr.py datasets/TED_3/4classes_punct/data.ndp.test.lab datasets/TED_3_ASR/ted3_asr_punct_slots.txt seq_labelling_logs/punc7_4cl_rnn256_gru_bat64_layer1/ted3_asr_task0.tsv
python sequence_labelling/metrics_full_correlated_asr.py datasets/TED_3/4classes_capt/data.capt.ndp.test.lab datasets/TED_3_ASR/ted3_asr_punct_slots.txt seq_labelling_logs/caps7_4cl_rnn512_gru_bat64_layer2_drop0p75/ted3_asr_task0.tsv
python sequence_labelling/metrics_full_correlated_asr.py datasets/TED_3/4classes/data.ndp.test.lab datasets/TED_3_ASR/ted3_asr_punct_slots.txt seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5/ted3_asr_task0.tsv seq_labelling_logs/corr7_4cl_rnn512_gru_hid1_hdim300_relu_wt0p9_bat64_layer2_drop0p5/ted3_asr_task1.tsv
python sequence_labelling/metrics_full_correlated_asr.py datasets/TED_3/4classes/data.ndp.test.lab datasets/TED_3_ASR/ted3_asr_punct_slots.txt seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75/ted3_asr_task0.tsv seq_labelling_logs/corr7_4cl_rnn512_lstm_hid1_hdim300_relu_wt0p75_bat64_layer1_drop0p75/ted3_asr_task1.tsv

About

Code for paper "Joint Learning of Correlated Sequence Labelling Tasks Using Bidirectional Recurrent Neural Networks"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages