在做文本命名实体识别(Named Entity Recognition, NER)时经常需要对语料做标注,如果采用传统的EXCEL手工录入方式,后续的格式整理费时费力。无意中在网上发现一个文本标注工具软件,该软件与具体的语言无关,可以部署在私有服务器上使用。经过一番实验,走通了在腾讯云服务器上部署的流程,说明如下,留待以后备存:
第一步:安装 docker
Docker是一种容器技术,可以将应用和环境等进行打包,形成一个独立的、类似于iOS的App形式的“应用”。这个应用可以直接被分发到任意一个支持Docker的环境中,通过简单的命令即可启动运行。
Docker是一种最流行的容器化实现方案,和虚拟化技术类似,它极大地方便了应用服务的部署;又与虚拟化技术不同,它以一种更轻量的方式实现了应用服务的打包。使用Docker,可以让每个应用彼此相互隔离,在同一台机器上同时运行多个应用,不过它们彼此之间共享同一个操作系统。Docker的优势在于,它可以在更细的粒度上进行资源管理,也比虚拟化技术更加节约资源。
关于 Docker 的详细教程参见:https://www.cnblogs.com/codelove/p/10030439.html
在腾讯云服务器 Ubuntu
16.02LST 版本操作系统上安装的详细说明见:https://www.cnblogs.com/purpleraintear/p/6024328.html,几个主要步骤如下:
1. 添加Docker repository key
sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
2. 添加Docker repository,并安装Docker
sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
apt-get update
apt-get install lxc-docker
3. 检查Docker是否已安装成功
docker version
第二步:在腾讯云上安装文本标注工具 docker
doccano
是一款开源文本标注工具软件,用Python
开发,主要提供文本分类标注、文本序列标注、序列到序列(seq2seq)标注功能。详见:https://github.com/chakki-works/doccano
安装步骤如下:
首先git clone 到腾讯云服务器上
git clone https://github.com/chakki-works/doccano.git
cd doccano
其次,安装 Docker 镜像
docker pull chakkiworks/doccano
第三,安装成功后,运行 Docker 容器
docker run -d --name doccano -p 8000:80 chakkiworks/doccano # 注意此处开通的是8000端口
第四,创建登录的超级用户账号与密码
docker exec doccano tools/create-admin.sh "admin" "wujun1127@126.com" "bywujun12345"
创建管理员账号后,登录wujun.site:8000/admin 创建用户账号:liufeixue 密码: buptsem2017 为学生标注做准备
第五,在腾讯云服务器主机,安全组设置中,放行8000端口,以便用户外网可以访问
之后,访问https://wujun.site:8000/login 使用创建的超级用户账号和密码登录系统即可在线进行标注了。
第三步:在 docano 中标注文本
补充说明1
重启腾讯云服务器后,doccano应用也停止了,如何重新启动容器中的doccanno应用呢?步骤如下,备存留用:
第一步:检查下容器是否在运行,如果没有运行,启动容器服务,对应输入命令 service docker restart
详见:https://blog.csdn.net/qq_39562468/article/details/80332082
第二步:检查doccano应用是否在运行,输入命令 docker ps
,可以看到目前正在运行的容器服务,如果没有doccano,说明该服务在服务器重启后中止了。或者输入命令 docker inspect c4f407a2b467
进一步查看该ID对应的dcccano服务详情。
第三步:启动doccano应用,输入命令docker start c4f407a2b467
即启动doccano应用,之后打开网页 wujun.site:8000 就可以看到页面了。
P.S. 在win10专业版下 开启linux 子系统 WSL (Windows Subsystem for Linux)的步骤如下:
在 win10
专业版桌面,右键点击菜单中选择 属性
选项,打开系统
窗体,在 系统
窗体的左上角点击 控制面板
主页打开 控制面板
窗体,在 控制面板
窗体中点击 程序
,打开 程序
窗体,在 程序和功能
下面有一个选项 启用或关闭Windows功能
,点击即可启用或者关闭 Windows
功能,之后选择 适用于linux的windows子系统` ,重启电脑即可。
WSL 相对于虚拟机有以下优点:
首先WSL需要更少的资源(CPU,内存,硬盘),WSL能够让用户在Windows 命令行中直接运行 Linux 命令,并且可以直接访问在 Windows 中的资源,因此可以同时使用 Linux 和 Windows 中的工具对同一组文件进行操作。
补充说明2-2019年11月11日
在Docanno中设置多个人员进行标注的步骤如下:
第一步,以 admin
身份登录:wujun.site:8000/admin
,在前端创建一个项目
第二步,以 admin
身份登录:wujun.site:8000/admin 进入后台,创建若干个用户名称和密码,将每个用户对应的 permission
设置为 Superuser status
第三步,设置 user group
text_classification 以及对应的访问权限,将创建的各个用户归入该类别
第四步,退出以 admin
身份登录的系统后台,用创建的用户名称和密码登录 wujun.site:8000/admin
即可看到创建的应用,并能分别进行标注
在设置时有一个细节要注意:django 后台 admin 页面中,需要针对 project 设置对应的用户权限,每个用户要用鼠标点击使之高亮,最后的权限设置才有效,这一点特别容易被忽略。
附注:
1、计算 Doccano 多人标注一致性的工具:
- Doccano Inter-Annotator Agreement https://github.com/vwoloszyn/diaa
2、文本数据标注工具Doccano 中文使用介绍
3、图片数据标注工具与平台(数据标注公司)总结
4、An open sourced NVivo built with Typescript