Este repo contém o código Pytorch para atenção à posição de papel e dados supervisionados, melhorando o enchimento de slots.
O conjunto de dados Tacred : Detalhes sobre o conjunto de dados de extração de relação TAC podem ser encontrados neste site de dados.
Primeiro, download e vetores de luvas unzip do site de Stanford, com:
chmod +x download.sh; ./download.sh
Em seguida, prepare o vocabulário e os vetores iniciais de palavras com:
python prepare_vocab.py dataset/tacred dataset/vocab --glove_dir dataset/glove
Isso escreverá vetores de vocabulário e palavras como uma matriz Numpy no dataset/vocab DIR.
Treine um modelo RNN de atenção com consciência de posição com:
python train.py --data_dir dataset/tacred --vocab_dir dataset/vocab --id 00 --info "Position-aware attention model"
Use --topn N para finalizar apenas os vetores principais de N Word. O script fará o pré -processamento automaticamente (abandono de palavras, mascaramento de entidades, etc.).
Treine um modelo LSTM com:
python train.py --data_dir dataset/tacred --vocab_dir dataset/vocab --no-attn --id 01 --info "LSTM model"
Os pontos de verificação do modelo e os logs serão salvos em ./saved_models/00 .
Execute avaliação no conjunto de testes com:
python eval.py saved_models/00 --dataset test
Isso usará o best_model.pt por padrão. Use --model checkpoint_epoch_10.pt Para especificar um arquivo de ponto de verificação do modelo. Adicione --out saved_models/out/test1.pkl para gravar saída de probabilidade do modelo em arquivos (para conjunto, etc.).
Por favor, veja o exemplo de script ensemble.sh .
Todo o trabalho contido neste pacote é licenciado sob a licença Apache, versão 2.0. Consulte o arquivo de licença incluído.