-1.更新
发现现在brat直接Python3就可以使用,只是brat官网上和Github上最新release版本还停留在2012年,然而brat近几年有所更新,所以我们可以直接clone Github上的brat的最新源码进行使用hhh。
0.前言
0.1 背景
近日简单调研一下NLP标注工具brat的使用,其官网示例中可以标注的任务包括命名实体识别、事件抽取、指代消解、依存句法、成分句法等等。
0.2 brat介绍
brat是使用Python2开发的文本标注工具,只支持在Unix-like环境下使用,同时最新版v1.3提供两种使用方式,即:using CGI和standalone server,第一种方式官方推荐使用Apache2服务器,并提供了简单的配置教程;第二种模式更新,但可能有更多潜在的问题。另外其实也可以通过Docker使用,这种方法相对而言更加方便。
0.3 个人使用方式
我个人使用的是第一种方式,关键是我自己试了试第二种,没有成功,所以只能拿第一种搞了。网上的教程既有将brat当server端用的,也有简单的在localhost环境下使用的。由于自己的笔记本系统是Win10,所以选择在腾讯云服务器Cnetos7上搭建brat。
1.brat相关信息
1.1 brat相关网址
- brat官网:brat rapid annotation tool
- brat安装说明:Installation - brat rapid annotation tool
- brat手册网址:Manual - brat rapid annotation tool
- brat github地址:nlplab/brat: brat rapid annotation tool (brat) - for all your textual annotation needs
2.brat安装
说明:以下命令在root用户下运行,如普通用户请自行在部分命令前面加sudo
。
2.1 安装Apache
由于brat需要借助Apache提供cgi访问,所以我们首先需要安装apache。
安装命令如下:
yum install httpd
启动Apache
systemctl start httpd.service
Apache的默认配置:
- Apache默认将网站的根目录指向/
var/www/html
- 默认的主配置文件
/etc/httpd/conf/httpd.conf
- 配置存储在的
/etc/httpd/conf.d/
目录
更多关于CentOS下安装Apache请参考CentOS 7下Apache的安装 - 简书
2.2 初步配置Apache(视情况可略过)
由于自己的服务器上已经安装了Nginx,而Apache和Nginx都默认关联80端口,所以这里需要做一些调整,例如将Apache的监听端口设置为8080。而由于自己的frp程序已经关联了8080端口,所以自己这里将Apache的监听端口设置为8088。
具体配置请参考:CentOS下nginx与apache如何共存_weixin_42912498的博客-CSDN博客
2.3 下载brat
我们可以通过官网下载brat,也可以通过Github下载brat。
在下载完成后,我们需要将brat移动至var/www/html
目录,并解压重命名目录为brat
。
由于brat目录内的所有内容要被外网用户通过Apache访问到,所以我们需要配置brat目录的权限,具体命令为:
chmod 777 -R /var/www/html/brat
2.4 配置Apache
编辑/etc/httpd/conf/httpd.conf
文件。
2.4.1 添加brat配置
在<Directory "/var/www/html">...</Directory>
配置后添加如下内容:
# add brat
<Directory "/var/www/html/brat">
AllowOverride Options Indexes FileInfo Limit
Require all granted
AddType application/xhtml+xml .xhtml
AddType font/ttf .ttf
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
如图:
2.4.2 添加cgi配置
在第55行内容大约为# Example:# LoadModule foo_module modules/mod_foo.so
后面补充:
LoadModule cgi_module modules/mod_cgi.so
LoadModule cgid_module modules/mod_cgid.so
如图:
2.4.3 重启Apache
systemctl restart httpd.service
2.5 查看配置结果
在浏览器输入相应网址如图(以我个人网址为例):
便说明Apache服务配置成功了。
在浏览器输入http://lightsmile.cn:8088/brat
(以我个人网址为例)得到如下结果,便说明brat已经配置成功:
3.brat使用
3.1 一些相关文章
- 你爱我吗?企鹅风讯利用BRAT进行中文情感分析语料标注掌握玩家心 - 腾讯WeTest
- NLP标注工具brat 配置文件说明 - JadePeng - 博客园
- Zhong__CentOS7安装配置Brat(初级)_Zhong的博客-CSDN博客
- BRAT的安装、配置、标注操作 | 码农家园
3.2 配置brat中文环境
如前所述,brat目录为/var/www/html/brat
,我们需要更改/var/www/html/brat/server/src/projectconfig.py
中的第162行,具体为:
n = re.sub(r'[^a-zA-Z\u4e00-\u9fa5<>,0-9_-]', '_', n)
如图:
3.3 待标记语料配置
3.3.1 放置带标记语料
将待标注的语料(txt)格式放入到brat的data
目录中。
如:
(base) ➜ brat cd data
(base) ➜ data ls
examples tests tutorials
(base) ➜ data ls tests
annotation.conf fuck.ann fuck.txt tools.conf
其中的fuck.txt
就是待标记的纯文本语料,内容为:
曾经沧海难为水,除却巫山不是云。
何当共剪西窗烛,却话巴山夜雨时。
毛泽东出生于湖南。
3.3.2 创建ann文件
对于所有的待标记语料,brat要求必须有同名的ann文件(brat会将标注结果存放在该文件中,而brat不会自动创建,需要用户手动创建)。
我们可以在brat目录下执行如下命令来批量创建ann文件。
find data -name '*.txt' | sed -e 's|\.txt|.ann|g' | xargs touch
3.3.3 配置标注信息
我们可以在txt和ann同级目录中增加conf文件来对标注项目进行配置,具体详情参考上面提到的brat配置文件说明。
比如说上面的和fuck.txt
同级的annotation.conf
文件中的内容为:
[spans]
Place
Person
[relations]
Place-in Arg1:Person, Arg2:Place
[events]
[attributes]
同时也可以在tools.conf
文件中设置记录标注过程日志,如:
[options]
Annotation-log logfile:./log_history.log
3.4 对语料进行标注
具体标注过程略,标注界面如图:
3.5 查看并导出标注结果
我们可以点击data菜单项来查看标注结果,如图:
点击ann
即可打开新的页面,查看当前ann格式的标注结果,如图:
此内容和与fuck.txt
同目录的fuck.ann
内容一致。
点击Download tar.gz
按钮则可以将当前标注结果下载下来。
4.注意事项
4.1 无法加载标注文件
可能是由于文件权限原因,当放置新的标注文件到data目录中时,仍然需要改变文件的访问权限。具体来说,我们可以通过如下命令来执行:
chmod 777 -R /var/www/html/brat