brat是一个文本标注工具,可以标注实体,事件、关系、属性等,只支持在Linux下安装,其使用需要webserver,官方给出的教程使用的是Apache2。
建议下载brat的release版本,地址:brat下载地址
首先,安装apache2,使用命令:
sudo apt-get install apache2
安装完成后会在 /var 目录下生成一个www/html目录,进入该目录:
cd /var/www/html
将下载的brat-1.3p1.zip文件移动到该目录下,使用 如下命令解压到当前目录
unzip brat-1.3p1.zip
在当前目录下使用如下命令将brat-1.3p1重命名为brat
mv brat-1.3p1 brat
使用 如下命令对brat目录授权:
sudo chmod 777 -R /var/www/html/brat
进入brat目录 ,执行以下命令,根据提示输入用户名、密码、管理员邮箱
cd /var/www/html/bratsudo ./install.sh
现在开始配置apache2.conf文件: 执行命令
vim /etc/apache2/apache2.conf
在文件末尾加入如下内容,注意缩进(建议手敲):
<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>
重新启动apache2:
sudo service apache2 restart
然后打开 http://xxx.xxx.xxx.xxx/brat , xxx是你brat所在主机的ip,默认80端口。
打开网页后,会发现报错,是关于协议的错误,我们还需要一个步骤,如下:
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/cgi.load
只有这样才能使用cgi模块,而这步在brat的官方文档中貌似没有提及。但是在issue的#1141中提到了这点。
接下来,重新加载apache2的配置:
sudo service apache2 reload
此时再访问 http://xxx.xxx.xxx.xxx/brat,就能看到下面的界面了:
然后,用之前输入的用户名、密码登录后,就可以使用了,使用教程参考官方文档: http://brat.nlplab.org/configuration.html
brat原始的正则是不支持中文标注的,所以我们需要手动修改一下他的正则
brat/server/src 路径下的projectconfig.py文件的第162行代码,注释源代码,然后另起一行加入新代码(修改之后记得重启apache2服务):
n = re.sub(u'[^a-zA-Z\u4e00-\u9fa5<>,0-9_-]', '_', n)
数据主目录:/var/www/html/brat
predict路径:/var/www/html/brat/data/project
存入你想要标注的文件在project文件夹下,然后执行:
find 文件夹名称 -name '*.txt'|sed -e 's|\.txt|.ann|g'|xargs touch
其意思是对每个txt文件都创建一个空的标引文件.ann,因为BRAT是要求的collection中,每个txt文件是必须有一个对应的.ann文件的,方便放置标引内容。
如果使用brat加载本地文件的时候报错“unable to read text file xxx/xxx/xxx/xxx.txt ”,请确保你的txt文件和ann文件已经授权给当前linux系统的登录用户,授权方式可以参考如下方式:
sudo chmod 777 xxx.txt
sudo chmod 777 xxx.ann
之后从主目录下找annotation.conf和visual.conf文件将它们放到predict路径下。
annotation.conf是配置文件,主要是写明白都有哪些命名实体、哪些语义关系,内容如下:
[entities](实体)
# Definition of entities.
# Format is a simple list with one type per line.
事件名称
人物名称
发生时间
灾害
事故规模
事故地点
[relations](关系)
# Definition of (binary) relations.
# Format in brief: one relation per line, with first space-separated# field giving the relation type and the rest of the line the# coma- separated arguments in ROLE: TYPE format. The roles are# typically “Arg1“ and“Arg2”.
时间 Arg1:事件名称,Arg2:事件发生时间
地点 Arg1:事件名称,Arg2:事件发生地点
人物 Arg1:事件名称,Arg2:采访对象人名
visual.conf也是配置文件,可以配置不同的类别用不同的颜色显示,找到如下段落,更新内容:
事件 bgColor:yellow
时间 bgColor:blue, fgColor:white
地点 bgColor:deepskyblue
组织名 bgColor:green, fgColor:white
公司名 bgColor:purple, fgColor:white
产品名 bgColor:pink
annotation.conf文件的编码格式一定一定要是标准的UTF-8格式,可以用Notepad++来进行转换(特别感谢程序员一一涤生的指导)
data.txt文件
data.ann文件
以上就是我对brat的使用总结,总体还要感谢程序员一一涤生的耐心指导
附上大佬的原文
[1]: https://www.cnblogs.com/anai/p/11459789.html
[2]: https://www.cnblogs.com/anai/p/11474460.html
GIS数据下载资源大全如需了解更多,请关注公众号“GIS点滴”
OS:MTK9.0位置:vendor/mediatek/proprietary/frameworks/opt/telephony-base/java/mediatek/telephony/SignalStrengthExt.javaOS:MTK6.0位置:vendor/mediatek/proprietary/frameworks/base/packages/FwkPlugin/src/com/mediatek/op/telephony/DefaultServiceStateExt.java
原文地址 开始前,建议大家去了解以下文章,当然不看也没问题: MongoDB从入门到“精通”之简介和如何安装 MongoDB从入门到“精通”之如何优雅的安装 MongoDB从入门到“精通”之整合JavaWeb项目 开发环境 JDK1. 热点热议 SpringBoot开发案例之整合mong...
复选框:<input type="checkbox" name="hobby" id="lanqiu"/><label for="lanqiu">篮球</label> <input type="checkbox" name="hobby" id="zuqiu"/><label for="zuqiu">足球</label> <input type="checkbox" name="hobby" id="yumao
目录线程池概念定时任务延时原理scheduleWithFixedDelay和scheduleAtFixedRate区别FutureTask获取返回值Timer比较总结线程池概念我们上篇文章分析了ThreadPoolExecutor,如果要用一句话说明它的主要优势,就是线程置换。还有Executors工具类,极大的简化了研发人员工作。我用一个图重复描述下线程池概念。多生产-多消费模型。生产者将线程任务丢进线程池中,生产者就就结束了。 线程池控制消费者消..
hadoop ha环境启动start-dfs.sh的时候datanode启动不了,并且报错。[[email protected] ~]$ cat /home/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-datanode-datanode2.log2019-03-24 18:40:46,422 FATAL org.apache.hadoop.hdfs.se...
关于Elasticsearch的传说有一个程序猿失业了,陪着自己的老婆去英国学习厨师课程,他想给自己的老婆写一个菜谱搜索引擎,觉得Lucene太复杂了,就开发了一个Lucene的开源项目compass,后来在工作中觉得不够好用,接写了Elasticsearch,让Luncene变成分布式系统。不论这个传说的真假,事实上Elasticsearch就是基于luncene之上封装开发的,隐藏复杂...
HDU - 3790最短路径问题Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64uSubmit StatusDescription给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距
Coin-collecting by robot(1132)Time limit(ms): 1000Memory limit(kb): 65535Submission: 47Accepted: 16AcceptedSeveral coins are placed in cells of an n×m b
http://kitesdk.org/docs/current/
基础练习 Sine之舞 时间限制:1.0s 内存限制:512.0MB 提交此题 锦囊1 锦囊2问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。 不妨设 An=sin(1–sin(2+sin(3–sin(4+…sin(n)...
由于中文教程比较少,经过自己摸索初步掌握了rain插件的用法。如有不对请指出。本文也可以当简单教程看。环境:unity5.2rain插件简单介绍及获取rain是unity3d的一个AI制作的插件,是完全免费的,初步掌握也比较容易。 可由资源商店获取。 中文教程比较少,只找到一个教程教程,可以了解一下,但此教程rain的版本比较旧,许多用法以更新,最后一个教程视频还可能有病毒(因为视频都是exe程