xinyadu / eeqa

Event Extraction by Answering (Almost) Natural Questions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Event Extraction by Answering (Almost) Natural Questions (EMNLP'20)

Question answering for event extraction (trigger detection and argument extraction with various questioning strategies).

Paper link

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

About

Event Extraction by Answering (Almost) Natural Questions

License:MIT License


Languages

Language:Python 97.6%Language:Shell 2.4%