事件图谱首先涉及到的是事件标注,我采用的是brat事件标注平台,该平台使用的是Linux系统,因为我的电脑是windows系统, 将brat安装在了linux虚拟机(Ubuntu)上。
一.下载与安装
1.下载brat
进入brat官网brat rapid annotation tool下载安装包,点击download的按钮即可。因为我当时是在windows上下载的,所以又下载了FileZilla将压缩包从Windows上传到虚拟机中。(注意:brat一切操作都是在Linux系统上的。)
2:更新apt
sudo apt upgrade
sudo apt update
3:安装git
sudo apt install git
4.安装apache2
sudo apt install apache2
5.在主目录下新建一个datalabeling的文件夹,将压缩包安装到这里,在终端解压缩。
tar xzf brat-1.3p1_.tar.gz
进入brat-1.3p1文件夹,输入命令进行安装
./install.sh
接下来需要输入登录名,密码,邮箱。登录名和密码是之后登录brat所需要的
如果之前虚拟机上有安装python2的话可以直接输入以下命令
python2 standalone.py
如果没有安装python2的话,需要安装一下,再输入上面的命令
之后就可以运行啦,显示Serving brat at http://127.0.0.1:8001
右键点击上链接,选择打开链接,就可以开始标注了(Ubuntu默认的浏览器是火狐浏览器,但是官方推荐Google chrome,所以最好还是先下载一个Google chrome)
6.因为brat默认不支持中文标注,因此需手动修改brat主目录**/server/src路径下的projectconfig.py**文件的第162行代码
sudo vim /var/www/html/brat/server/src/projectconfig.py
(可能会报错,可以把上面命令的vim改成vi)
将其改为:
# n = re.sub(r'[^a-zA-Z0-9_-]', '_', n)
n = re.sub(u'[^a-zA-Z\u4e00-\u9fa5<>,0-9_-]', '_', n)
二、标注
先登录用户名和密码,也即之前在终端安装时设置的用户名和密码。
1.根据标注需求,按照句子/段落/篇章整理成文件,每个文件为一个样本,所有样本整合到一个文件夹下,再将该文件夹置于 Brat 安装路径下的 data 目录下。
注意:文本编码格式为utf-8,文件名称为xxx.txt,其中xxx只能为数字或英文。
添加标注文本,在brat-v1.3p1/data文件夹下添加标注的文本,然后在brat-v1.3p1目录下执行以下命令就会生成和标注文本文件名相同文件后缀为.ann的文件,这个文件保存了标注结果。每个样本文件必须有一个与之对应的空的ann文件,主要用于存放标注后自动生成的标注结果。若没有ann文件,那么当你在页面点击相应文件时是无法打开的。
在brat-v1.3p1目录下执行命令
find data -name '*.txt' | sed -e 's|\.txt|.ann|g' | xargs touch
2、配置实体、事件、关系
首先,我们需要明确:
-
所要标注的事件有哪些,即明确事件类型;
-
每个事件的结构如何,即明确每个事件类型下的事件元素/论元(角色);
-
每个事件元素可以属于哪些实体类型;
-
每个事件元素是必须有,还是可以有可以无,或者有几个。
在以上内容明确以后,再进行配置文件的配置。
这里需要解释一点,就是按照标准事件抽取任务定义来说,事件的元素都是实体,所以我们必须明确每个事件类型下的每一个元素可以属于哪些实体类型。
annotation.conf 配置文件放于相应数据文件夹下。
如何配置具体内容可参考https://blog.csdn.net/fengdu78/article/details/126552709
3、brat支持标注实体、关系、事件、属性,把brat-v1.3p1目录下annotation.conf中对应的地方改成你要标注的即可,如果想要在标注页面显示成中文,则需要修改相同目录下的visual.conf。
注:visual.conf和annotation.conf是对应的,annotation.conf中所涉及到的实体、事件、论元角色,都需要在visual.conf中配置中文名称,否则标注时出现的还是英文名称。
4、打开我们想要标注的文件,光标选择某个实体,会弹出一个选择框,选择之前设置好的实体类型即可。光标选择某个触发词,会弹出一个选择框,选择之前设置好的事件类型即可。双击这个实体或触发词可删除或移动。
长按某个触发词会出现一个箭头,可指向某个实体。(这一步在annotation.conf中的事件配置部分设置,配置好这个事件中需要的实体,从这个事件触发词出来的箭头才能指向这个实体。)
如果在标注过程中,annotation.conf文件有修改(记得修改完保存),点击页面上方的刷新,标注界面即可实时更新。
参考:
1、(16条消息) 【NLP】NLP标注工具Brat的简单使用_风度78的博客-CSDN博客
2、(16条消息) 保姆级brat标注工具部署_dl_None的博客-CSDN博客_brat部署
3、(16条消息) 文本标注工具之BRAT_brat标注_发呆的比目鱼的博客-CSDN博客