Brat的使用与安装

本文的安装是在Linux下的,Windows的不同点只在于解压部分,其他没有区别

一、下载及安装

(1)先下载brat-v1.3p1.tar.gz这个文件先下载brat-v1.3p1.tar.gz这个文件

下载地址:
https://github.com/nlplab/brat/releases/tag/v1.3p1icon-default.png?t=M85Bhttps://github.com/nlplab/brat/releases/tag/v1.3p1

(2)解压,cd到brat-v1.3p1.tar.gz所在文件夹中,依次执行以下命令

                gunzip brat-v1.3p1.tar.gz

                tar -xf brat-v1.3p1.tar

                cd brat-v1.3p1

(3)安装,执行以下命令

                 ./install.sh –u

        这里会提示你输入用户名 密码 邮箱,需要记住,以后需要这步设置的用户名密码登录brat。

(4)运行以下命令,启动brat

                python standalone.py

       注:建议用python2运行,python3可能报错

二、支持中文

brat本身是不支持中文的,如果在配置文件里定义中文会报错,解决办法是更改./server/src/projectconfig.py文件的第163行,加上中文支持即可: 

n = re.sub(u'[^a-zA-Z\u4e00-\u9fa5<>,0-9_-]', '_', n)

若已启动brat,需重启brat才能支持中文标注

三、进入brat

(1)在已运行python standalone.py 的情况下,在本机浏览器访问0.0.0.0:8001

可能出现的问题:若8001端口已被占用,可在standalone.py的64行中修改端口

 

(2)选择文件

如果正常,应显示如下画面,图中的文件夹内部即存放需要标注的文件,点击文件夹后选择任意文件

(3)登录

若正常,应出现类似如下页面,将鼠标移至右上角,出现登录按钮,输入自己之前设置的用户名及密码,即可进行标注

四、使用brat

(1)导入文件

为每个需要标注的文件创建空的同名ann文件,如下图,放在同一个文件夹内,将文件夹放入根目录下的data文件夹中。放入之后,刷新页面,可在brat初始页找到文件夹

(2)标签修改

实体标签和关系标签均可在文件annotation.conf中修改

实体标签在文件10行到20行处进行添加

关系标签在文件20行到38行处进行添加

 

(3)标注方法

标注分点(实体)的标注和边(关系)的标注两种行为:

点的标注:通过光标框定一个文本串,选择标记类别

边的标注:按住点向外拖到目标点,如果类型允许就会为你加边。建议打开Option,把Annotation Option改为Normal,而不是Careful。否则完成选择之后,还需要额外点一次Ok才可以。

(4)导出文件

取出ann文件即可导出

五、其它

(1)忘记密码及添加用户

打开根目录下的config.py,在文件的49行可以修改密码和添加用户,修改完密码或增加用户后需重启brat才能正常使用

(2)添加快捷键

打开kb_shortcuts.conf文件。文件内只有两列内容,其中第一列是键,第二列是对应的标记(区分大小写),实体和关系均可在此设置快捷键。

(3)因编码原因无法导入文件

应将文件转为UTF-8,

(4)因权限原因无法导入文件

使用命令chmod –r 777类似指令修改文件

 

### BRAT 工具的使用方法和教程 BRATBRAT Rapid Annotation Tool)是一款基于 Web 的文本标注工具,适用于需要高精度和高一致性的语料标注任务,例如命名实体识别(NER)、关系提取、事件检测等。它提供了直观的用户界面,使标注过程更加高效和用户友好,尤其适用于生物医学文本标注等领域[^1]。 #### 安装部署 BRAT 需要在 Linux 环境下运行,支持 Python 3.x、PostgreSQL 和 Git 等依赖环境。部署流程包括下载安装包、配置数据库、设置用户权限等步骤。用户可以从 BRAT 官网下载安装包,并通过命令行工具完成部署。由于其基于 Web 的架构,部署完成后可通过浏览器访问标注平台,例如访问 `http://xxx.xxx.xxx.xxx/brat` 并使用注册的用户名和密码登录[^4]。 #### 标注任务配置 BRAT 支持多种标注任务,包括实体识别、实体关系、事件抽取等。在配置标注任务时,需定义实体类型、关系类型以及事件结构。例如,在命名实体识别任务中,可以定义“人名”、“地名”、“组织名”等实体标签;在事件抽取任务中,可定义事件类型及其触发词和参数[^5]。 BRAT 的配置文件通常包括 `annotation.conf`、`tools.conf` 和 `visual.conf`,分别用于定义标注类型、工具行为和可视化样式。通过这些配置文件,可以灵活定制标注任务的具体内容和界面显示。 #### 标注流程功能 BRAT 提供了图形化的文本标注界面,允许标注者通过鼠标选择文本片段,并为其分配预定义的标签。支持实体标注、关系标注和事件标注等多种标注模式。例如,在实体标注中,用户可以选择一段文本并为其分配“ORG”(组织)、“LOC”(地点)或“PER”(人名)等标签;在关系标注中,可以定义两个实体之间的语义关系,如“位于”、“属于”等[^1]。 此外,BRAT 支持多人协同标注,并提供版本管理和冲突解决机制。多个标注员可以同时对同一数据集进行标注,系统会记录所有操作并支持回滚和对比分析[^2]。 #### 适用中文多语言支持 BRAT 支持多语言标注,包括中文文本。在中文标注任务中,可以通过配置文件指定中文分词方式,并结合中文语义特征定义实体和关系类型。例如,在方面级情感分析任务中,可参考《利用BRAT进行中文情感分析语料标注》的方法,定义情感极性、评价对象等标签,以支持更细粒度的情感分析任务[^5]。 #### 数据导出格式转换 BRAT 支持将标注结果导出为多种格式,包括 standoff 格式(`.ann` 文件)和 CoNLL 格式。这些格式可被主流 NLP 工具(如 spaCy、StanfordNLP、Hugging Face Transformers)直接读取和处理,便于后续的模型训练和评估。例如,可以将标注数据导出为 `.tsv` 或 `.json` 格式,用于构建训练集或测试集[^4]。 #### 示例代码:从 BRAT 导出数据并转换为 CoNLL 格式 ```python import os def brat_to_conll(ann_dir, txt_dir, output_file): with open(output_file, 'w', encoding='utf-8') as out: for filename in os.listdir(ann_dir): if filename.endswith('.ann'): base = filename[:-4] txt_path = os.path.join(txt_dir, base + '.txt') ann_path = os.path.join(ann_dir, filename) with open(txt_path, 'r', encoding='utf-8') as txt_file: text = txt_file.read() with open(ann_path, 'r', encoding='utf-8') as ann_file: annotations = ann_file.readlines() tokens = text.split() labels = ['O'] * len(tokens) for line in annotations: if line.startswith('T'): parts = line.strip().split('\t') entity_type = parts[1].split()[0] start = int(parts[1].split()[1]) end = int(parts[1].split()[2]) entity_text = parts[2] # 简化匹配逻辑,实际应使用更精确的分词和对齐方法 for i, token in enumerate(tokens): if text.find(token) >= start and text.find(token) + len(token) <= end: labels[i] = 'B-' + entity_type if i == 0 or labels[i-1] == 'O' else 'I-' + entity_type for token, label in zip(tokens, labels): out.write(f"{token} {label}\n") out.write('\n') # 示例调用 brat_to_conll('annotations', 'texts', 'output.conll') ``` 该脚本演示了如何将 BRAT 的 `.ann` 文件和对应的 `.txt` 文件转换为 CoNLL 格式,以便用于序列标注任务的训练。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值