Dieses Repo enthält den Pytorch -Code für die Abwicklung der Papiergrafik über beschnittene Abhängigkeitsbäume verbessert die Beziehungsextraktion.
In diesem Papier/Code wird ein Graph -Faltungsfischnetz (GCN) über geschnittene Abhängigkeitsbäume für die Aufgabe der Beziehungsextraktion eingeführt. Eine spezielle Baumbeschneidungstechnik, die als Pfad-zentriertes Beschneiden bezeichnet wird, wird ebenfalls eingeführt, um irrelevante Informationen von den Bäumen zu beseitigen und gleichzeitig relevante Informationen aufrechtzuerhalten. Im Vergleich zu Sequenzmodellen wie verschiedenen LSTM-basierten Modellen nutzt dieses GCN-Modell Abhängigkeitsstrukturen, um entfernte Wörter zu überbrücken und daher die Leistung für Langstrecken-Beziehungen zu verbessern. Im Vergleich zu früheren rekursiven Modellen wie dem Treelstm erzielt dieses GCN -Modell eine bessere Leistung und ist gleichzeitig viel ohrelliger und daher viel effizienter.
Eine Übersicht über die Modellarchitektur finden Sie unten:

Der Code verlangt, dass Sie Zugriff auf den Tacred -Datensatz (LDC -Lizenz erforderlich) haben. Der Tacred -Datensatz ist derzeit im Dezember 2018 über LDC veröffentlicht. Für einen möglichen frühen Zugriff auf diese Daten kontaktieren Sie uns bitte unter yuhao.zhang ~at~ stanford.edu . Sobald Sie die Tacred -Daten haben, stellen Sie die JSON -Dateien bitte unter den dataset/tacred . Zur Vollständigkeit enthalten wir nur Beispieldatendateien aus dem Tacred -Datensatz in dieses Repo.
Download und entpeilt zu den Handschuhvektoren von der Stanford NLP Group -Website, mit:
chmod +x download.sh; ./download.sh
Bereiten Sie dann Vokabular und anfängliche Wortvektoren vor:
python prepare_vocab.py dataset/tacred dataset/vocab --glove_dir dataset/glove
Dadurch wird Vokabeln und Wortvektoren als numpy Matrix in den DIR dataset/vocab geschrieben.
Um ein Graph -Modell für das Neural Network (GCN) zu trainieren, leiten Sie:
bash train_gcn.sh 0
Modellkontrollpunkte und -protokolle werden auf ./saved_models/00 gespeichert.
Um ein kontextualisiertes GCN (C-GCN) -Modell zu trainieren, rennen Sie:
bash train_cgcn.sh 1
Modellkontrollpunkte und -protokolle werden auf ./saved_models/01 gespeichert.
Weitere Informationen zur Verwendung anderer Parameter wie der Schnittstrecke K finden Sie unter train.py .
Um die Bewertung im Testsatz auszuführen, rennen Sie:
python eval.py saved_models/00 --dataset test
Dadurch wird standardmäßig die Datei best_model.pt verwendet. Verwenden Sie --model checkpoint_epoch_10.pt um eine Modell -Checkpoint -Datei anzugeben.
Laden Sie ein vorgezogenes Modell neu und finetune es, rennen Sie:
python train.py --load --model_file saved_models/01/best_model.pt --optim sgd --lr 0.001
Das Papier enthält auch Vergleiche mit dem pa.-lstm-Modell (positionbewussten Aufmerksamkeit) für die Beziehungsextraktion. Um die entsprechenden Ergebnisse zu reproduzieren, beziehen Sie sich bitte auf dieses Repo.
@inproceedings{zhang2018graph,
author = {Zhang, Yuhao and Qi, Peng and Manning, Christopher D.},
booktitle = {Empirical Methods in Natural Language Processing (EMNLP)},
title = {Graph Convolution over Pruned Dependency Trees Improves Relation Extraction},
url = {https://nlp.stanford.edu/pubs/zhang2018graph.pdf},
year = {2018}
}
Alle in diesem Paket enthaltenen Arbeiten sind unter der Apache -Lizenz, Version 2.0, lizenziert. Siehe die mitgelieferte Lizenzdatei.