Repo ini berisi kode Pytorch untuk konvolusi grafik kertas atas pohon ketergantungan yang dipangkas meningkatkan ekstraksi hubungan.
Makalah/kode ini memperkenalkan jaringan saraf konvolusional (GCN) grafik atas pohon ketergantungan yang dipangkas untuk tugas ekstraksi hubungan. Teknik pemangkasan pohon khusus yang disebut pemangkasan jalur-sentris juga diperkenalkan untuk menghilangkan informasi yang tidak relevan dari pohon sambil memelihara informasi yang relevan secara maksimal. Dibandingkan dengan model urutan seperti berbagai model berbasis LSTM, model GCN ini memanfaatkan struktur ketergantungan untuk menjembatani kata-kata jarak jauh, oleh karena itu meningkatkan kinerja untuk hubungan jangka panjang. Dibandingkan dengan model rekursif sebelumnya seperti treelstm, model GCN ini mencapai kinerja yang lebih baik sambil menjadi lebih banyak eariser untuk diparalelkan dan karenanya jauh lebih efisien.
Lihat di bawah untuk ikhtisar arsitektur model:

Kode ini mengharuskan Anda memiliki akses ke Dataset Tacred (diperlukan lisensi LDC). Dataset Tacred saat ini dijadwalkan untuk rilis publik melalui LDC pada bulan Desember 2018. Untuk kemungkinan akses awal ke data ini, silakan hubungi kami di yuhao.zhang ~at~ stanford.edu . Setelah Anda memiliki data tacred, silakan letakkan file JSON di bawah dataset/tacred . Untuk kelengkapan, kami hanya menyertakan file data sampel dari dataset tacred dalam repo ini.
Pertama, unduh dan unzip sarung tangan vektor dari situs web Stanford NLP Group, dengan:
chmod +x download.sh; ./download.sh
Kemudian siapkan kosakata dan kata -kata awal dengan:
python prepare_vocab.py dataset/tacred dataset/vocab --glove_dir dataset/glove
Ini akan menulis kosakata dan vektor kata sebagai matriks numpy ke dalam dataset/vocab Dir.
Untuk melatih model grafik Convolutional Neural Network (GCN), jalankan:
bash train_gcn.sh 0
Pos Pemeriksaan dan Log Model akan disimpan ke ./saved_models/00 .
Untuk melatih model GCN (C-GCN) yang kontekstual, jalankan:
bash train_cgcn.sh 1
Pos Pemeriksaan dan Log Model akan disimpan ke ./saved_models/01 .
Untuk detail tentang penggunaan parameter lain, seperti jarak pemangkasan k, silakan merujuk ke train.py .
Untuk menjalankan evaluasi pada set tes, jalankan:
python eval.py saved_models/00 --dataset test
Ini akan menggunakan file best_model.pt secara default. Gunakan --model checkpoint_epoch_10.pt untuk menentukan file pos pemeriksaan model.
Muat ulang model pretrained dan finetune, jalankan:
python train.py --load --model_file saved_models/01/best_model.pt --optim sgd --lr 0.001
Makalah ini juga mencakup perbandingan model LSTM (PA-LSTM) yang sadar posisi untuk ekstraksi hubungan. Untuk mereproduksi hasil yang sesuai, silakan merujuk ke repo ini.
@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}
}
Semua pekerjaan yang terkandung dalam paket ini dilisensikan di bawah lisensi Apache, versi 2.0. Lihat file lisensi yang disertakan.