-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相关网址

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 一些相关文章

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

5.参考

评论




博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Volantis 作为主题,总访问量为
载入天数...载入时分秒...
冀ICP备20001334号