ACE2005数据预处理
注意,个人感觉使用Github:ace-data-prep进行预处理得到的是用于关系抽取的数据,而不是事件抽取。
ACE2005数据预处理,指使用Standford NLP Tools对原始的ACE2005进行词性标注、依存关系标注,并将源标注文件(.apf.xml)中的实体间关系标注出来。这项工作的进行通过Github:ace-data-prep提供的代码完成。
英文语料预处理
环境
根据ace-data-prep,先根据Reqirements安装所需环境。要注意的是,这里要求是Python2.7.x, 最好能保证就用Python.2.7.x。笔者使用的是python3.6,中间在CHUNK生成时会出现一些小的不兼容bug要修改(主要是几个bytes和str的数据类型转换)。
-
Java 1.8+
-
Maven 3.4+
-
Python 2.7.x
-
GNU Make
运行
首先,使用make命令运行ace-data-prep/下的Makefile,README中给出的运行命令如下
make LDC_DIR=<path to LDC dir> \
OUT_DIR=<path for output dir> \
ace05splits
LDC_DIR
在该命令中,LDC_DIR是ACE数据所在目录,LDC_DIR目录下应当包含一个名为LDC2006T06的目录,LDC2006T06/下包含dtd/目录与/data/English/目录(这里先只讨论English的情况)。由于笔者是直接对timex2norm/目录下标注的语料进行处理,因此将Makefile中Line51和Line113中的adj改为了timex2norm。
OUT_DIR
OUT_DIR是输出文件的目录,手动创建OUT_DIR的空目录即可(创建空目录即可,其他子目录会在代码执行过程中自动生成)。
关于参数命令(ace05splits)
README中给出的参数命令是"ace05splits",如果照此执行会发现程自动创建ace-05-comms/、ace-05-comms-ptb-anno/、ace-05-comms-ptb-anno-chunks/等目录,对每个文件逐步生成.concrete、标注后的.concrete和chunks文件。完成以上文件及json文件的生成后,会通过bash执行.scripts/data/split_ace_dir.sh对bn和nw进行划分。由于觉得这样的生成过程方便数据统计,因此根据Makefile中的伪命令,换一种方式进行数据自动标注过程。