Document-Level Argument Extraction by Conditional Generation 复现

已添加OneIE处理后ACE2005数据集的仓库:vkgo/gen-arg: Code for paper “Document-Level Argument Extraction by Conditional Generation”. NAACL 21′ (github.com)

1 环境配置

按要求README配置好

2 运行尝试

尝试执行train.py

python train.py --model gen --dataset ACE

报错,缺参数

仔细看一遍仓库文件后,发现有现成的scripts,ACE 2005 script如下:

红圈为缺少的文件。

3 数据处理

通过上述缺少文件的文件名可以猜测,数据可能需要通过OneIE处理。

配置好OneIE项目后,执行以下代码处理数据:

python preprocessing/process_ace.py -i ./data/LDC2006T06/data -o ./data/ACE2005-English-output -s resource/splits/ACE05-E -b bert-large-cased -l english

4 运行

根据处理后的数据,简单修改一下运行命令。

#!/usr/bin/env bash
set -e 
set -x 
DATA_DIR=./data/ACE2005-English-oneie
MODEL=constrained-gen
CKPT_NAME=constrained-gen-ACE 


rm -rf checkpoints/${CKPT_NAME}
python train.py --model=${MODEL} --ckpt_name=${CKPT_NAME} \
    --dataset=ACE \
    --tmp_dir=preprocessed_ACE \
    --train_file=${DATA_DIR}/train.oneie.json \
    --val_file=${DATA_DIR}/dev.oneie.json \
    --test_file=${DATA_DIR}/test.oneie.json \
    --train_batch_size=4 \
    --eval_batch_size=4 \
    --learning_rate=3e-5 \
    --accumulate_grad_batches=4 \
    --num_train_epochs=6 \
    --mark_trigger 

Windows没有bash,修改为:

python train.py --model=constrained-gen --ckpt_name=constrained-gen-ACE --dataset=ACE --tmp_dir=preprocessed_ACE --train_file=./data/ACE2005-English-oneie/train.oneie.json --val_file=./data/ACE2005-English-oneie/dev.oneie.json --test_file=./data/ACE2005-English-oneie/test.oneie.json --train_batch_size=4 --eval_batch_size=4 --learning_rate=3e-5 --accumulate_grad_batches=4 --num_train_epochs=6 --mark_trigger

简单debug(删除之前尝试的时候生成的许多临时文件夹、显存不足调低batchsize),成功运行:

成功跑完1个epoch

发表回复