学术科技丨数据标注利器Doccano:让你的实验准备不再繁琐
时间:2023-03-21 22:39:40  来源:  作者:  点击量:

  进入到了大数据时代后,数据处理技术发生了翻天覆地的变化,机器学习已经成为解决众多领域问题的一项重要数据分析技术。机器学习大部分是有监督的学习,意味着为了让模型学习我们希望它学到的规律,我们需要给它喂入要分析的数据(即训练数据),同时也把这些数据对应的标签准备好。随后,当模型针对输入数据做处理并得到对应的输出时,利用损失函数计算输出和标签的差距,也即模型的损失或误差,并在此基础上通过梯度下降等算法不断优化模型。

  由机器学习的原理可知,有监督的机器学习离不开数据标签。然而现实生活中数据标签不容易获得,往往需要大量的人工判别和标注,这也成为令研究人员头疼的问题。下面要介绍的Doccano,就是能极大方便人工判别和标注过程的工具!

  Doccano是Documment anotation的缩写,是一个开源的文本标注工具,我们可以用它为情感分析、命名实体识别、文本摘要、意图识别、插槽填充、图片分类等NLP任务的语料库打标签。它的操作非常便捷,在小型语料库上,只要数小时就能完成全部的打标工作。

  一、Doccano的安装

  下载了Python之后,你可以在命令行中输入如下命令进行安装:

  pip install doccano

  如果你使用的是pycharm或vscode等开发环境,可以直接在开发环境下的命令行中采用此命令安装。

  安装好后可以通过以下命令在命令行中初始化数据库,并创建用户:

  # 初始化数据库

  doccano init

  # 创建一个用户。Admin和pass改成你特定的账号和密码

  doccano createuser --username admin --password pass

  创建用户后就可以开启服务,我们先在一个命令行中运行如下命令:

  # 启动webserver,port后是端口号,可以查看自己本地或服务器上有哪些未被使用的端口

  doccano webserver --port 8000

  随后打开另一个终端或命令行,输入以下命令启动任务队列:

  # 启动任务队列

  doccano task

  随后我们就能在浏览器中看到启动的Doccano服务啦。在浏览器中访问地址http://127.0.0.1:8000,如果不是在本地启动而是在实验室服务器或者云服务器等其他服务器上启动,url中应填写该服务器的地址。Doccano初始界面如下图所示:

(1).png

  点击登录输入账号之后进入到主界面:

(2).png

  二、创建标注项目

  现在我们尝试创建一个标注任务。点击Create,进入到如下界面:

(3).png

  选择一个标注任务,例如文本分类,下拉后填写相关信息,如果希望得到会随机打乱的数据,可以勾选“Randomize document order”,并点击Create。

(4).png

  然后进入到项目主界面:

(5).png

  三、导入数据与添加标签

  点击Start Annotation就可以开始标注,但在开始之前我们需要导入数据,点击Dataset,导入数据:

(6).png

  点击Import Dataset,进入如下界面。选择合适的文件格式导入数据(推荐TextLine格式),并按照指定格式准备好数据集的TXT文件,拖入“Drop files here”所在的方框,导入数据。

(7).png

  导入后Dataset数据界面如下:

(8).png

  点击Labels添加标签:

(9).png

(10).png

  添加完标签后的效果:

(11).png

  四、自动标注设置和标注数据

  Doccano支持自动标注,可以在一定程度上减少人工标注的工作量。自动标注工具会在标注界面预先对数据进行标注,再由人去判断自动标注的结果是否正确。为了添加自动标注工具,我们需要把自动标注模型对应的服务在服务器上启动,并让Doccano调用该服务的api。针对分类、识别等标注任务,我们可以让Doccano调用百度、阿里、腾讯等公司的相应服务。

  在项目界面中点击Settings,选择Auto Labeling,点击Create。

(12).png

  第一步选择Custom REST Request:

(13).png

  第二步在url处填写服务api,在method处填写调用服务的方式(如GET或POST)。然后根据所调用服务的传参要求(即给分类服务传递待分类文本的方式,例如通过请求体中的params、body等)填写要传递的参数名key和参数值value。填写示例如下,需要注意的是:Value处的{{text}}代表传递的变量,。最后在Test the parameters处输入一个样例数据看服务是否能返回正确参数,以检查是否正确填写了api、服务参数等信息。

(14).png

(15).png

  第三步构建模板,把通过服务api获得的标注结果转化成Doccano可以处理的形式。下图中doccano format指的是Doccano允许的形式,要注意选用的doccano format必须和我们创建的标注任务一致。例如本文创建的是文本分类任务,则应当采用文本分类对应的format。然后按照jinja2的语法构建template通过测试即可,可以参考下图的写法。

(16).png

(17).png

  最后一步,进行标签匹配,如下图,点击Add添加标签的对应关系:

(18).png

  在完成自动标注设置后,点击Start Annotation即可开始标注。每一个色彩的按钮代表一个分类。

(19).png

  如果需要使用自动标注,如图点击“魔棒按钮”启动自动标注。

(20).png

(22).png

  然后就看到自动标注的结果啦!

(23).png

  到这里Doccano的基本使用方法就介绍完了。对于需要大量标注数据的小伙伴来说,这确实是个可以提高实验效率的宝藏工具哦,快来试试吧!

最近更新

点击排行