Este repositorio contiene el código de Pytorch para la convolución del gráfico de papel sobre los árboles de dependencia podados mejora la extracción de la relación.
Este documento/código introduce una red neuronal convolucional gráfica (GCN) sobre árboles de dependencia podados para la tarea de extracción de relaciones. También se introduce una técnica especial de poda de árbol llamada la poda centrada en la ruta para eliminar la información irrelevante de los árboles mientras mantiene al máximo la información relevante. En comparación con los modelos de secuencia como varios modelos basados en LSTM, este modelo GCN utiliza estructuras de dependencia para unir palabras remotas, por lo tanto, mejora el rendimiento de las relaciones de largo alcance. En comparación con los modelos recursivos anteriores, como el TreelstM, este modelo GCN logra un mejor rendimiento, al tiempo que es mucho más oído para paralelizar y, por lo tanto, mucho más eficiente.
Vea a continuación una visión general de la arquitectura del modelo:

El código requiere que tenga acceso al conjunto de datos Tacred (se requiere la licencia LDC). El conjunto de datos Tacred está actualmente programado para el lanzamiento público a través de LDC en diciembre de 2018. Para un posible acceso temprano a estos datos, contáctenos en yuhao.zhang ~at~ stanford.edu . Una vez que tenga los datos Tacred, coloque los archivos JSON en el dataset/tacred . Para completar, solo incluimos archivos de datos de muestra del conjunto de datos Tacred en este repositorio.
Primero, descargue y descifite vectores de guantes del sitio del Grupo Stanford NLP, con:
chmod +x download.sh; ./download.sh
Luego prepare el vocabulario y los vectores de palabras iniciales con:
python prepare_vocab.py dataset/tacred dataset/vocab --glove_dir dataset/glove
Esto escribirá vectores de vocabulario y palabras como una matriz numpy en el dataset/vocab DIR.
Para entrenar un modelo de red neuronal convolucional (GCN) gráfico, ejecute:
bash train_gcn.sh 0
Los puntos de control del modelo y los registros se guardarán en ./saved_models/00 .
Para entrenar un modelo GCN (C-GCN) contextualizado, ejecute:
bash train_cgcn.sh 1
Los puntos de control del modelo y los registros se guardarán en ./saved_models/01 .
Para obtener detalles sobre el uso de otros parámetros, como la distancia de poda K, consulte train.py .
Para ejecutar la evaluación en el conjunto de pruebas, ejecute:
python eval.py saved_models/00 --dataset test
Esto utilizará el archivo best_model.pt de forma predeterminada. Use --model checkpoint_epoch_10.pt para especificar un archivo de punto de control modelo.
Recargar un modelo previo y finetune, ejecute:
python train.py --load --model_file saved_models/01/best_model.pt --optim sgd --lr 0.001
El documento también incluye comparaciones con el modelo LSTM (PA-LSTM) de atención al consciente de la posición para la extracción de relaciones. Para reproducir los resultados correspondientes, consulte este repositorio.
@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}
}
Todo el trabajo contenido en este paquete tiene licencia bajo la licencia Apache, versión 2.0. Consulte el archivo de licencia incluido.