eeqa
eeqa copied to clipboard
Event Extraction by Answering (Almost) Natural Questions
Event Extraction by Answering (Almost) Natural Questions (EMNLP'20)
Question answering for event extraction (trigger detection and argument extraction with various questioning strategies).
If you use my code, please cite:
@inproceedings{du2020event,
title = {Event Extraction by Answering (Almost) Natural Questions},
author={Du, Xinya and Cardie, Claire},
booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing",
year = "2020",
publisher = "Association for Computational Linguistics",
}
Feel free to ask questions: xdu [at] cs [dot] cornell [dot] edu. http://www.cs.cornell.edu/~xdu/
Preprocessing (for ACE data)
Read ./proc/README.md
for details
Requirement
See requirements.txt
Code
Train and eval models
-
Trigger Detection
QA based model ([CLS] verb [SEP] input sentence [SEP]):
bash ./code/script_trigger_qa.sh
Note: To get final results on test, you should (1) add --eval_test; (2) set --model_dir to your model path for test (e.g., trigger_qa_output/epoch-x-step-x). Similarly for argument extraction.
-
Argument Extraction
-
With dynamic threshold:
bash ./code/script_args_qa_thresh.sh
-
Without dynamic threshold:
bash ./code/script_args_qa.sh
- Get results on unseen arguments (Train on a set excluding unseen arguments and test on those):
bash ./code/script_args_qa_unseen.sh
-
Question Templates
Template 1 (Role Name)
Template 2 (Role + Type): ./question_templates/arg_queries.csv
Template 3 (Annotation Guideline): ./question_templates/description_queries.csv
Unseen args for analysis, see unseen_args
and all_args