Ce dépôt contient le code pytorch pour l'attention consciente de la position du papier et les données supervisées améliorent le remplissage des emplacements.
L'ensemble de données TACred : les détails de l'ensemble de données d'extraction de la relation TAC sont disponibles sur ce site Web de données.
Tout d'abord, téléchargez et dézip des vecteurs de gant du site Web de Stanford, avec:
chmod +x download.sh; ./download.sh
Préparez ensuite les vecteurs de vocabulaire et de mots initiaux avec:
python prepare_vocab.py dataset/tacred dataset/vocab --glove_dir dataset/glove
Cela écrira des vecteurs de vocabulaire et de mots comme une matrice Numpy dans l' dataset/vocab DIR.
Former un modèle RNN d'attention conscient de la position avec:
python train.py --data_dir dataset/tacred --vocab_dir dataset/vocab --id 00 --info "Position-aware attention model"
Utilisez --topn N pour Finetune les n vecteurs de mot supérieurs uniquement. Le script fera automatiquement le prétraitement (dépôt de mots, masquage d'entité, etc.).
Former un modèle LSTM avec:
python train.py --data_dir dataset/tacred --vocab_dir dataset/vocab --no-attn --id 01 --info "LSTM model"
Les points de contrôle et les journaux du modèle seront enregistrés sur ./saved_models/00 .
Exécutez l'évaluation sur l'ensemble de tests avec:
python eval.py saved_models/00 --dataset test
Cela utilisera le best_model.pt par défaut. Utiliser --model checkpoint_epoch_10.pt pour spécifier un fichier de point de contrôle de modèle. Add --out saved_models/out/test1.pkl Pour écrire la sortie de probabilité du modèle dans les fichiers (pour Ensemble, etc.).
Veuillez consulter l'exemple de script ensemble.sh .
Tous les travaux contenus dans ce package sont concédés sous licence Apache, version 2.0. Voir le fichier de licence inclus.