Этот репо содержит код Pytorch для свертки бумажного графа по сравнению с обрезными деревьями зависимостей, улучшает извлечение отношений.
В этом документе/коде вводятся графическая сверточная нейронная сеть (GCN) по сравнению с обрезненными деревьями зависимостей для задачи извлечения отношений. Специальная техника обрезки деревьев, называемая обрезкой, ориентированной на путь, также вводится для устранения не относящейся к делу информации из деревьев, максимально поддержав соответствующую информацию. По сравнению с моделями последовательностей, такими как различные модели на основе LSTM, эта модель GCN использует структуры зависимостей для устранения удаленных слов, поэтому повышает производительность для дальнейших отношений. По сравнению с предыдущими рекурсивными моделями, такими как Treelstm, эта модель GCN достигает лучшей производительности, одновременно стараясь параллелизировать и, следовательно, гораздо более эффективную.
См. Ниже для обзора модельной архитектуры:

Код требует, чтобы у вас был доступ к Tacred DataSet (требуется лицензия LDC). В настоящее время запланированный набор данных запланирован на публичный выпуск через LDC в декабре 2018 года. Для возможного раннего доступа к этим данным, пожалуйста, свяжитесь с нами по адресу yuhao.zhang ~at~ stanford.edu . После того, как у вас есть Tacred Data, пожалуйста, поместите файлы JSON в dataset/tacred . Для полноты мы включаем только образцы файлов данных из Tacred DataSet в этом репо.
Во -первых, загрузить и раскапывать векторы перчаток с веб -сайта Stanford NLP Group, с:
chmod +x download.sh; ./download.sh
Затем подготовьте словарный запас и начальные векторы слов с:
python prepare_vocab.py dataset/tacred dataset/vocab --glove_dir dataset/glove
Это будет писать словарь и векторы слов как матрицу Numpy в DIR dataset/vocab .
Чтобы обучить модель графика сверточной нейронной сети (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) с учетом положения (PA-LSTM) для извлечения отношений. Чтобы воспроизвести соответствующие результаты, пожалуйста, обратитесь к этому репо.
@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. См. Включенный файл лицензии.