前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【NLP】:Brat 安装与部署(基于Docker)

【NLP】:Brat 安装与部署(基于Docker)

作者头像
WEBJ2EE
发布2022-01-24 11:02:56
9621
发布2022-01-24 11:02:56
举报
文章被收录于专栏:WebJ2EEWebJ2EE
代码语言:javascript
复制
目录
1. !!! Docker 镜像 !!! 
2. Brat 是什么?
3. Brat 安装、部署前,你需要知道的一些事情..
4. 安装 python
5. 安装 Apache httpd
6. 安装 Brat
7. 使用 Brat

本文描述了

在 CentOS 8 中的安装、部署 Brat 的全过程

1. !!! Docker 镜像 !!!

为了方便大家使用

我把下面的整个安装、部署过程搞成了一个 Docker 镜像

是可以直接使用的哟

  • 拉取镜像
代码语言:javascript
复制
docker pull webj2eedev/brat-1.3
  • 运行
    • 容器内 Brat 数据集目录:/var/www/html/brat/data
    • 容器内 Brat 监听端口:80
    • 容器内 Brat 访问上下文:/brat
代码语言:javascript
复制
docker run -it \
  -p 8080:80 \
  -v e:\bratdata:/var/www/html/brat/data \
  webj2eedev/brat-1.3:v1
  • 浏览器访问
    • 默认登录账号:admin
    • 默认登录密码:sa
    • 默认管理邮箱:admin@sa.com
代码语言:javascript
复制
http://localhost:8080/brat
  • 你也可以自定义 Brat 的默认登录账号(username)、密码(password)和邮箱(email)信息
代码语言:javascript
复制
docker run -it \
  -p 8080:80 \
  -v e:\bratdata:/var/www/html/brat/data \
  -e username=admin1 \
  -e password=sa1 \
  -e email=admin1@sa1.com \
  webj2eedev/brat-1.3:v1

2. Brat 是什么?

BRAT是一个基于web的文本标注工具,主要用于对文本的结构化标注。用BRAT生成的标注结果能够把无结构化的原始文本结构化,供计算机处理。利用该工具可以方便的获得各项NLP任务需要的标注语料。

brat is a webbased tool for text annotation; that is, for adding notes to existing text documents. brat is designed in particular for structured annotation, where the notes are not freeform text but have a fixed form that can be automatically processed and interpreted by a computer.

3. Brat 安装、部署前,你需要知道的一些事情..

  • Brat用哪个版本?
  • Python 用哪个版本?
    • Python 2.7.18
      • PS:官方要求必须是 Python2,并且版本不低于 2.5 就行

The brat server is implemented in Python, and requires version 2.5 (or higher in the 2.x series) of python to run.

  • Apache httpd 用哪个版本?
    • Apache 2.4.37
      • PS:官方要求必须是 2.x 版本的 Apache,然而这么多年多去了,Apache 一直是 2.x 版本,so....选个最新的用咯

In its standard setup, brat is a served through a web server. If you are installing brat server on a machine that is not currently running a web server, you should consider starting by installing one. brat is currently developed against Apache 2.x, and we recommend using Apache.

  • 操作系统用那个版本?
    • CentOS 8
      • PS:额...你也可以选你喜欢的系统 - -
  • 要用 Docker 搞?
    • Yes
      • PS:不想一遍遍的搞环境...有点烦

4. 安装 python?

使用 CentOS 的默认包管理工具 dnf 安装 python2.

代码语言:javascript
复制
dnf install python2 -y

验证 python2 是否安装成功(注意这里使用 python2 命令

代码语言:javascript
复制
python2 --version

设置 python2 为系统默认 python (PS: 我不想一直用 python2 命令访问 python)

代码语言:javascript
复制
whereis python2
代码语言:javascript
复制
alternatives --set python /usr/bin/python2

再验证一下 python 命令是否可用(注意这里是 python 命令,不是 python2 了

代码语言:javascript
复制
python2 --version

5. 安装 Apache httpd

使用 CentOS 的默认包管理工具 dnf 安装 Apache httpd.

代码语言:javascript
复制
dnf install httpd -y

验证 httpd 是否安装正常

代码语言:javascript
复制
httpd -version

验证 httpd 是否服务正常(ps:httpd 托管的静态文件默认在 /var/www/html/ 目录中)

代码语言:javascript
复制
echo "<h1>Hello Webj2eedev</h1>" > /var/www/html/index.html

6. 安装 Brat

下载:去官网下载 Brat(好多年没更新了,一直是 1.3)

代码语言:javascript
复制
http://weaver.nlplab.org/~brat/releases/brat-v1.3_Crunchy_Frog.tar.gz

解压:将 Brat 解压到 /var/www/html/ 目录(apache httpd),并将默认目录名 brat-v1.3_Crunchy_Frog 修改为 brat(好记)

赋权:直接给 brat 目录 777 吧,省事

代码语言:javascript
复制
chmod -R 777 ./brat

安装:安装过程中会提示输入用户名、密码、邮箱信息。用户名和密码用于 web 浏览器用户登录。

代码语言:javascript
复制
./install.sh

配置(apache httpd):

  • 在文件:
代码语言:javascript
复制
/etc/httpd/conf/httpd.conf
  • 中追加:
代码语言:javascript
复制
<Directory /var/www/html/brat>
    AllowOverride Options Indexes FileInfo Limit
    AddType application/xhtml+xml .xhtml
    AddType font/ttf .ttf
    # For CGI support
    AddHandler cgi-script .cgi
    # Comment out the line above and uncomment the line below for FastCGI
    #AddHandler fastcgi-script fcgi
</Directory>
  • 保存

配置(用户组):

代码语言:javascript
复制
chgrp -R apache data work

配置(Brat 支持中文):

  • 在文件:
代码语言:javascript
复制
/var/www/html/brat/server/src/projectconfig.py
  • 中找到:
代码语言:javascript
复制
n  = re.sub(r'[^a-zA-Z0-9_-]', '_', n)
  • 将其替换为:
代码语言:javascript
复制
n  = re.sub(u'[^a-zA-Z\u4e00-\u9fa5<>,0-9_-]', '_', n)
  • 保存

重启(apache httpd):

代码语言:javascript
复制
httpd -k restart

验证(http://ip:port/brat):

7. 使用 Brat

官方建议使用 Chrome、Safari 浏览器

标签定义、数据导入:

  • 分配目录:在 brat 的 data 目录中,为待标注数据集创建一个目录

目录中包含:标签定义、待标注数据

  • annotation.conf
代码语言:javascript
复制
[entities]
药品
成分
人群

[relations]
不适用 Arg1:药品,Arg2:人群
成分是 Arg1:药品,Arg2:成分

[attributes]
[events]
  • visual.conf
代码语言:javascript
复制
[labels]
药品 | 药品
成分 | 成分
人群 | 人群

不适用 | 不适应
成分是 | 成分是


[drawing]
药品  bgColor:green
成分  bgColor:blue
人群  bgColor:maroon

不适用 bgColor:maroon
成分是 bgColor:maroon
  • 待标注数据(.ann、.txt成对出现,且必须 UTF-8编码)

登录系统:

标注:

标注结果:

参考:

Brat: http://brat.nlplab.org/index.html http://brat.nlplab.org/supported-browsers.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WebJ2EE 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档