目录
- 介绍
- 安装
- 配置
- 标注配置
- 视觉设置
- 工具配置
- 键盘快捷键配置
- 操作
- 标注操作
- 标注实体
- 删除或修改已标注的实体
- 标注属性
- 删除或修改已标注的属性
- 标注关系
- 删除或修改已标注的关系
介绍
BRAT是一个基于web的文本标注工具,即对文本添加标注。BRAT把标注结果结构化,形成计算机可处理的格式。可用于获取NLP任务的标注语料。
安装
环境/软件需求:UNIX-like 系统、python2.5+
- 下载:http://brat.nlplab.org/
- 安装:
a) 解压缩包1tar xzf brat-v1.3_Crunchy_Frog.tar.gzb) 进入
brat-v1.3_Crunchy_Frog 目录 - 运行安装脚本:
1./install.sh
输入用户名、密码、email
- 运行brat:
1python2 standalone.py
- 打开链接:
http://127.0.0.1:8001/index.xhtml ,出现欢迎画面说明安装成功。 - 设置支持中文,在
./server/src/projectconfig.py 文件的第163行,加上中文支持:1n = re.sub(u'[^a-zA-Z\u4e00-\u9fa5<>,0-9_-]', '_', n) - 增加用户(非必须项):打开config.py文件,找到对应的行,即可增加用户
1
2
3
4USER_PASSWORD = {
'admin': 'admin',
'test': 'test',
#(add USERNAME:PASSWORD pairs below this line.) } - 导入数据
a) 可直接把数据放在data 目录中,或新建一个子目录。(需要注意data 和work 文件夹的读写权限)
b) 每个标注文档需包含两个文件:*.txt (utf-8编码的原始文本文件)和*.ann (包含标注的文件)。可将文本文件导入目录后,执行1find data -name '*.txt' | sed -e 's|\.txt|.ann|g' | xargs touch生成
ann 文件。
配置
配置文件类型:
若未创建视觉、工具和快捷键配置文件,则使用默认配置。配置文件放在对应的数据目录(
标注配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | # 实体 [entities] # 每行一个实体类型 ,每行开头TAB键可定义类的层级结构 # 在类型名称之前添加“!”来禁用实体选择对话框中的条目,即该类型将出现在结构的类型层次结构中,但无法选择。 Living-thing Person Animal Plant !Nonliving-thing Building Vehicle # 关系 [relations] # 基础语法 关系名称 Arg1:TYPE1,Arg2: TYPE2 Family Arg1:Person, Arg2:Person Employment Arg1:Person, Arg2:Organization # “|”分隔符列出所有可能的类型 Located Arg1:Person, Arg2:Building|City|Country Located Arg1:Building, Arg2:City|Country Located Arg1:City, Arg2:Country # 通过<REL-TYPE>设置关系的symmetric(对称)和transitive(传递)属性,单独或同时使用均可。 # “symmetric-transitive”定义等价关系 Equiv Arg1:Person, Arg2:Person, <REL-TYPE>:symmetric-transitive # 定义实体重叠的范围, # 语法 <OVERLAP> Arg1:TYPE1, Arg2:TYPE2, <OVL-TYPE>:TYPE-SPEC # TYPE-SPEC 可选值包括 contain, equal 和 cross。 # contain: TYPE1实体范围可包含(完全)TYPE2 实体范围 # equal: TYPE1和TYPE2实体的跨度可以相等 # cross: TYPE1和TYPE2实体的可以相交 <OVERLAP> Arg1:Country, Arg2:Organization, <OVL-TYPE>:contain <OVERLAP> Arg1:Person, Arg2:Person, <OVL-TYPE>:equal <OVERLAP> Arg1:<ENTITY>, Arg2:<ENTITY>, <OVL-TYPE>:<ANY> # 事件 [events] #语法 事件名称 参数名称:参数类型 Marriage Participant1:Person, Participant2:Person Bankruptcy Org:Company # 属性 [attributes] # 名称 参数 age Arg:Person Negation Arg:<EVENT> Confidence Arg:<EVENT>, Value:Possible|Likely|Certain #<ENTITY>:任何实体类型([entities]部分中出现的任何类型) #<RELATION>:任何关系类型([relations]部分中出现的任何类型) #<EVENT>:任何事件类型([events]部分中出现的任何类型) #<ANY>:任何类型 |
视觉设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | [labels] # 定义用户界面中标签类别的显示,如果未再此设置则按annotation.conf中的名称显示。 # 作用:再用户界面中用任意字符显示标签;界面空间有限时可使用缩写 # 第一个词应为annotation.conf中定义的类型 Organization | Organization | Org Immaterial-thing | Immaterial thing | Immaterial | Immat [drawing] # 定义文本意外的视觉设置。 # 语法 ENTITY/RELATION KEY1:VALUE1,KEY2:VALUE2…… # KEY:VALUE对选项说明 # fgColor:任何HTML颜色规范(例如“black”),设置标注标签文字颜色。 # bgColor:任何HTML颜色规范(例如“white”),设置标注标签背景颜色。 # borderColor:任何HTML颜色规范(例如“black”),设置标注标签边框颜色。支持指定“ darken”设置阴影。 # color:任何HTML颜色规范(例如“black”),设置弧线的颜色。 # dashArray:设置为虚线。 Person bgColor:#ffccaa Family fgColor:darkgreen # <SPAN_DEFAULT>和<ARC_DEFAULT>用于定义未设置的标签和弧线默认样式。 SPAN_DEFAULT fgColor:black, bgColor:lightgreen, borderColor:darken ARC_DEFAULT color:black, dashArray:-, arrowHead:triangle-5 #设置多值属性的显示,如在annotation.conf中设置了属性“Confidence Arg:<EVENT>, Value:L1|L2|L3” Confidence glyph:(1)|(2)|(3), position:left Confidence dashArray:-|3-3|3-6 |
工具配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | [options] # 设置句子切分,分词,标注验证,和日志记录 # Tokens tokenizer:VALUE,其中VALUE= # whitespace:按源文本中的空格字符分割(仅) # ptblike:模拟Penn Treebank标记化 # mecab:使用MeCab执行日语标记化 # Sentences splitter:VALUE,其中VALUE= # regex:基于正则表达式的句子拆分 # newline:由源文本中的换行符分隔(仅) # Validation validate:VALUE,其中VALUE= # all:执行完整验证 # none:不执行任何验证 # Annotation-log logfile:VALUE,其中VALUE= # <NONE>:无注释记录 # NAME:登录到文件名(例如“ /home/brat/work/annotation.log”) Tokens tokenizer:whitespace Sentences splitter:regex Validation validate:all Annotation-log logfile:/home/brat/work/annotation.log [normalization] # BRAT使用SimString进行近似字符串匹配,配置normalization前需安装SimString,参照主页说明(http://chokkan.org/software/simstring/) # 语法 DBNAME DB:DBPATH, <URL>:HOMEURL, <URLBASE>:ENTRYURL # DBNAME:数据库名称,字符只能包含 大小写字母、数字、“-”、“_” # DBPATH:可选项。相对于brat服务根目录的服务器上DB数据的文件系统路径。如果DBPATH未设置,则系统假定可以在给定的默认位置找到数据库DBNAME。 # HOMEURL:设置normalization资源的主页,用于标识资源DBNAME和在UI中提供链接以访问资源。 # URLBASE:可选项。设置URL模板,“%s”作为占位符可直接生成资源中改条目的链接。需要 Wiki DB:dbs/wiki, <URL>:http://en.wikipedia.org, <URLBASE>:http://en.wikipedia.org/?curid=%s UniProt <URL>:http://www.uniprot.org/, <URLBASE>:http://www.uniprot.org/uniprot/%s [search] # 设置标注对话框中可用的搜索服务 Google <URL>:http://www.google.com/search?q=%s Wikipedia <URL>:http://en.wikipedia.org/wiki/%s [annotators] # 设置可从BRAT调用的自动标注服务 SNER-CoNLL tool:Stanford_NER, model:CoNLL, <URL>:http://example.com:80/tagger/ [disambiguators] # 设置可从BRAT调用的自动语义类别(标注类别)消歧服务 simsem-MUC tool:simsem, model:MUC, <URL>:http://example.com:80/simsem/%s |
键盘快捷键配置
1 2 3 4 | # 键 标注类型 P Person O Organization F Family |
操作
-
在浏览器中输入地址:
http://127.0.0.1:8001/index.xhtml -
选择项目“
xxxxx ”,选择要标注的文档
-
打开文档。
-
登录,未登录不能进行标注操作。
-
其他操作
?:上一篇文档
?:下一篇文档
Collection:选择文档
Data:数据导入、导出,选择比较模式等。
Search:可搜索文本、实体、事件、关系、笔记。
标注操作
标注实体
- 鼠标选中要标注的文本。
- 选择完成后弹出标注选项对话框,在“Entity type”选择实体的类别,点击OK完成标注。
- 标注完成。
删除或修改已标注的实体
- 鼠标双击标注的类别标签。
- 弹出编辑对话框。
更改类别:重新选择实体类别,点击”OK”
删除标注:点击“Delete”
更改标注内容:点击“Move”,重新选中正确文字,点击”OK”
更改为属性:在“Entity type”选择属性对应的实体类别,在“Entity attributes”中选择属性类别,点击”OK”
标注属性
- 鼠标中要标注的文本。
- 选择完成后弹出标注选项对话框,在“Entity type”选择属性对应的实体类别,在“Entity attributes”中选择属性类别,点击“OK”完成标注。
- 标注完成,标注标签显示为“<实体类别>*”
删除或修改已标注的属性
- 鼠标双击标注的标签或文本。
- 弹出编辑对话框(同实体)
更改属性类别:在“Entity type”选择属性对应的实体类别,在“Entity attributes”中选择属性类别,点击”OK”
删除标注:点击“Delete”
更改标注内容:点击“Move”,重新选中正确文字,点击”OK”
更改为实体:取消选中在“Entity attributes”中的属性类别,在“Entity type”选择属性对应的实体类别,点击”OK”
标注关系
- 鼠标左键选择头部实体的标签,按住鼠标左键并移动鼠标,可引出单向关系弧线。
- 鼠标移动到其他实体标签上,出现实体相关信息提示。若提示信息中实体下方显示关系名称,则说明两类实体可建立关系;反之,不能建立关系。
- 在要关联的实体标签上松开鼠标左键,弹出标注对话框。在“Type”中选择关系类型,点击”OK”。
- 完成标注。
删除或修改已标注的关系
- 双击关系标签,弹出编辑对话框。
更改关系类型:在“Type”中重新选择关系类别
删除关系:点击“Delete”
更改尾实体:点击“Reselect”,点击新的尾部实体。“Esc”键可取消操作。(下图中红色为原关系,黑色弧线为重新选择实体的牵引线)