이 repo에는 가지 치기 의존성 트리에 대한 용지 그래프 컨볼 루션에 대한 Pytorch 코드가 포함되어 있습니다.
이 논문/코드는 관계 추출 작업을 위해 가지 치기 의존성 트리에 대한 그래프 Convolutional Neural Network (GCN)를 소개합니다. 경로 중심 가지 치기라는 특수 트리 가지 치기 기술이 도입되어 관련 정보를 최대한 유지하는 동시에 나무의 관련없는 정보를 제거합니다. 다양한 LSTM 기반 모델과 같은 시퀀스 모델과 비교 하여이 GCN 모델은 의존성 구조를 사용하여 원격 단어를 연결하므로 장거리 관계의 성능을 향상시킵니다. TreelSTM과 같은 이전 재귀 모델과 비교하여,이 GCN 모델은 더 나은 성능을 달성하면서 병렬화 할 수있는 많은 이어가되어 훨씬 더 효율적입니다.
모델 아키텍처에 대한 개요는 아래를 참조하십시오.

코드는 테일 리드 데이터 세트 (LDC 라이센스가 필요한)에 액세스해야합니다. Tacred 데이터 세트는 현재 2018 년 12 월 LDC를 통해 공개 릴리스로 예정되어 있습니다.이 데이터에 대한 조기 액세스 가능성은 yuhao.zhang ~at~ stanford.edu 로 문의하십시오. 테일링 된 데이터가 있으면 JSON 파일을 디렉토리 dataset/tacred 아래에 넣으십시오. 완전성을 위해, 우리는이 repo에 테일링 된 데이터 세트의 샘플 데이터 파일 만 포함합니다.
먼저 Stanford NLP Group 웹 사이트에서 다음과 같이 다운로드 및 분리 된 장갑 벡터를 다운로드합니다.
chmod +x download.sh; ./download.sh
그런 다음 다음과 함께 어휘 및 초기 단어 벡터를 준비하십시오.
python prepare_vocab.py dataset/tacred dataset/vocab --glove_dir dataset/glove
이것은 DIR dataset/vocab 에 Numpy Matrix로 어휘와 단어 벡터를 작성합니다.
그래프 컨볼 루션 신경망 (GCN) 모델을 훈련시키기 위해 실행 :
bash train_gcn.sh 0
모델 체크 포인트 및 로그는 ./saved_models/00 으로 저장됩니다.
상황에 맞는 GCN (C-GCN) 모델을 훈련시키기 위해 실행 :
bash train_cgcn.sh 1
모델 체크 포인트 및 로그는 ./saved_models/01 로 저장됩니다.
가지 치기 거리 k와 같은 다른 매개 변수 사용에 대한 자세한 내용은 train.py 를 참조하십시오.
테스트 세트에서 평가를 실행하려면 실행하십시오.
python eval.py saved_models/00 --dataset test
기본적으로 best_model.pt 파일을 사용합니다. 모델 체크 포인트 파일을 지정하려면 --model checkpoint_epoch_10.pt 사용하십시오.
사전 준비된 모델을 새로 고침하고 정합하고 실행하십시오.
python train.py --load --model_file saved_models/01/best_model.pt --optim sgd --lr 0.001
이 논문에는 또한 관계 추출에 대한 위치 인식주의 LSTM (PA-LSTM) 모델과의 비교가 포함됩니다. 해당 결과를 재현하려면이 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}
}
이 패키지에 포함 된 모든 작업은 Apache 라이센스 버전 2.0에 따라 라이센스가 부여됩니다. 포함 된 라이센스 파일을 참조하십시오.