tsujuifu / pytorch_graph-rel

A PyTorch implementation of GraphRel
MIT License
270 stars 54 forks source link
acl2019 named-entity-recognition natural-language-processing pytorch relation-extraction

[2021/12/20 Update] Reimplementation by Author

Thanks to everyone's interest in this project and sorry for missing the original preprocessed data.
It got lost in my previous lab, and I finally had time to reimplement it 😂.
I also want to appreciate @LuoXukun for his nice reply about reproducing.

NYT Precision Recall F1
GraphRel1p (Paper) 62.9 57.3 60.0
GraphRel1p (Reimplementation) 60.9 59.2 60.1
GraphRel2p (Paper) 63.9 60.0 61.9
GraphRel2p (Reimplementation) 63.1 60.2 61.6

[ACL'19 (Long)] GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction

A PyTorch implementation of GraphRel

Paper | Slide | Poster

Overview

GraphRel is an implementation of
"GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction"
Tsu-Jui Fu, Peng-Hsuan Li, and Wei-Yun Ma
in Annual Meeting of the Association for Computational Linguistics (ACL) 2019 (Long)

In the 1st-phase, we adopt bi-RNN and GCN to extract both sequential and regional dependency word features. Given the word features, we predict relations for each word pair and the entities for all words. Then, in 2nd-phase, based on the predicted 1st-phase relations, we build complete relational graphs for each relation, to which we apply GCN on each graph to integrate each relation’s information and further consider the interaction between entities and relations.

Requirements

This code is implemented under Python3.8 and PyTorch 1.7.

Usage

python -m spacy download en_core_web_lg
python main.py --arch=2p

We also provide the trained checkpoints.

Citation

@inproceedings{fu2019graph-rel, 
  author = {Tsu-Jui Fu and Peng-Hsuan Li and Wei-Yun Ma}, 
  title = {{GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extractionn}}, 
  booktitle = {Annual Meeting of the Association for Computational Linguistics (ACL)}, 
  year = {2019} 
}

Acknowledgement