Skip to content

[COLING'22] Code for "Semantic Role Labeling as Dependency Parsing: Exploring Latent Tree Structures Inside Arguments".

License

Notifications You must be signed in to change notification settings

yzhangcs/crfsrl

Repository files navigation

Semantic Role Labeling as Dependency Parsing: Exploring Latent Tree Structures Inside Arguments

1Soochow University, Suzhou, China
2Huawei Cloud, China
3DAMO Academy, Alibaba Group, China

conf arxiv citation python

image

Citation

If you are interested in our work, please cite

@inproceedings{zhang-etal-2022-semantic,
  title     = {Semantic Role Labeling as Dependency Parsing: Exploring Latent Tree Structures inside Arguments},
  author    = {Zhang, Yu  and
               Xia, Qingrong  and
               Zhou, Shilin  and
               Jiang, Yong  and
               Fu, Guohong  and
               Zhang, Min},
  booktitle = {Proceedings of COLING},
  year      = {2022},
  url       = {https://aclanthology.org/2022.coling-1.370},
  address   = {Gyeongju, Republic of Korea},
  publisher = {International Committee on Computational Linguistics},
  pages     = {4212--4227}
}

Setup

The following packages should be installed:

Clone this repo recursively:

git clone https://github.com/yzhangcs/crfsrl.git --recursive

Run the following scripts to obtain the training data. Please make sure PTB and OntoNotes are available:

bash scripts/conll05.sh PTB=<path-to-ptb>             SRL=data
bash scripts/conll12.sh ONTONOTES=<path-to-ontonotes> SRL=data

Run

Try the following commands to train first-order CRF and second-order CRF2o models:

# LSTM
# CRF
python -u crf.py   train -b -c configs/conll05.crf.srl.lstm.char-lemma.ini   -d 0 -f char lemma -p exp/conll05.crf.srl.lstm.char-lemma/model   --cache --binarize
# CRF2o
python -u crf2o.py train -b -c configs/conll05.crf2o.srl.lstm.char-lemma.ini -d 0 -f char lemma -p exp/conll05.crf2o.srl.lstm.char-lemma/model --cache --binarize
# BERT finetuning
# CRF
python -u crf.py   train -b -c configs/conll05.crf.srl.bert.ini   -d 0 -p exp/conll05.crf.srl.bert/model   --batch-size=2000 --encoder bert --bert bert-large-cased --cache --binarize
# CRF2o
python -u crf2o.py train -b -c configs/conll05.crf2o.srl.bert.ini -d 0 -p exp/conll05.crf2o.srl.bert/model --batch-size=2000 --encoder bert --bert bert-large-cased --cache --binarize

To do evaluation:

# end-to-end
python -u crf.py   evaluate -c configs/conll05.crf.srl.bert.ini   -d 0 -p exp/conll05.crf.srl.bert/model
# w/ gold predicates
python -u crf.py   evaluate -c configs/conll05.crf.srl.bert.ini   -d 0 -p exp/conll05.crf.srl.bert/model --prd

To make predictions:

python -u crf.py   predict  -c configs/conll05.crf.srl.bert.ini   -d 0 -p exp/conll05.crf.srl.bert/model
bash scripts/eval.sh pred=pred.conllu gold=data/conll05/test.conllu

Contact

If you have any questions, feel free to contact me via emails.

About

[COLING'22] Code for "Semantic Role Labeling as Dependency Parsing: Exploring Latent Tree Structures Inside Arguments".

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published