【NLP】自然语言处理任务数据标注利器——doccano

本文介绍了开源文本注释工具doccano的docker安装与使用方法。通过创建项目,上传数据,轻松实现文本分类、序列标注等NLP任务的数据标注。详细步骤包括下载镜像、创建容器、启动服务、数据导入、标签定义、添加标注人员、数据标注及导出。doccano提供了一个便捷的平台,用于构建和管理自定义的NLP数据集。
摘要由CSDN通过智能技术生成

背景

有时我们需要从0-1地去做一项NLP任务,如文本分类,实体识别等。从0开始意味着我们需要自己去标注数据。抛开现在的技术如Zero / Few-shot Learning以及主动学习先不说。我们先考虑找到一个高效的标注数据工具,就是本文的主角——doccano.

doccano 是一个供人类使用的开源文本注释工具。它为文本分类、序列标记和序列到序列任务提供注释功能。因此,您可以为情感分析、命名实体识别、文本摘要等创建标记数据。只需创建一个项目,上传数据并开始注释。您可以在数小时内构建数据集。
在这里插入图片描述
该项目在github上开源,地址:https://github.com/doccano/doccano。具体使用的官方文档:https://doccano.github.io/doccano/。该项目后端使用的django驱动,前端使用的是vue。

本文只介绍docker的安装方式以及其简单使用,抛砖引玉。

安装

docker安装比较简单。当然我们的服务大多都是放在linux上的,在此之前先准备有docker的linux系统。docker的安装方式可以参见:【Docker】Centos7 Docker在线安装.

  1. 镜像下载:docker pull doccano/doccano
    在这里插入图片描述

  2. 创建容器。镜像好比面向对象语言中的类,容器就是对应的实例化的类,有自己的一些具体内容,命令如下:

    docker container create --name doccano \
      -e "ADMIN_USERNAME=admin" \
      -e "ADMIN_EMAIL=admin@example.com" \
      -e "ADMIN_PASSWORD=password" \
      -v doccano-db:/data \
      -p 8000:8000 doccano/doccano
    

    其中的各参数意义如下:

    • –name doccano 表示 创建的容器名称为doccano
    • -e “ADMIN_USERNAME=admin” doccano项目中管理员账号为admin
    • -e “ADMIN_EMAIL=admin@example.com” doccano项目中管理员的联系邮箱为admin@example.com
    • -e “ADMIN_PASSWORD=password” doccano项目中管理员登陆密码password
    • -v doccano-db:/data 项目中的数据挂在到宿主机地址到/data
    • -p 8000:8000 宿主机(前)与容器中端口之间的映射
    • doccano/doccano 镜像名称

    我们直接执行上面的命令有:
    在这里插入图片描述
    返回了一串字符串,表示创建成功了。

  3. 开启容器对外提供服务:docker container start doccano,
    在这里插入图片描述
    现在打标工具已经安装和启动完毕,就开始使用吧。

doccano使用

用户通过浏览器访问部署的机器加上对应的端口号即可访问了。
在这里插入图片描述
现在我们 试一试自带的几个demo。
在这里插入图片描述
以实体识别为例,我们可以看到,不仅可以标注实体,还可以标注实体之间的关系:
在这里插入图片描述
已经可以选择是否开启实体重叠等功能。

实体识别使用教程

拿官方的关于实体识别的案例介绍一下。

数据集准备

下面我们以科幻小说命名实体识别标注任务为大家简单介绍一下doccano。下面是一个名为 books.json 的 JSON 文件,其中包含许多不同语言的科幻小说描述。我们需要标注一些实体,如人名、书名、日期等。

{"text": "The Hitchhiker's Guide to the Galaxy (sometimes referred to as HG2G, HHGTTGor H2G2) is a comedy science fiction series created by Douglas Adams. Originally a radio comedy broadcast on BBC Radio 4 in 1978, it was later adapted to other formats, including stage shows, novels, comic books, a 1981 TV series, a 1984 video game, and 2005 feature film."}
{"text": "《三体》是中国大陆作家刘慈欣于2006年5月至12月在《科幻世界》杂志上连载的一部长篇科幻小说,出版后成为中国大陆最畅销的科幻长篇小说之一。2008年,该书的单行本由重庆出版社出版。本书是三体系列(系列原名为:地球往事三部曲)的第一部,该系列的第二部《三体II:黑暗森林》已经于2008年5月出版。2010年11月,第三部《三体III:死神永生》出版发行。 2011年,“地球往事三部曲”在台湾陆续出版。小说的英文版获得美国科幻奇幻作家协会2014年度“星云奖”提名,并荣获2015年雨果奖最佳小说奖。"}
{"text": "『銀河英雄伝説』(ぎんがえいゆうでんせつ)は、田中芳樹によるSF小説。また、これを原作とするアニメ、漫画、コンピュータゲーム、朗読、オーディオブック等の関連作品。略称は『銀英伝』(ぎんえいでん)。原作は累計発行部数が1500万部を超えるベストセラー小説である。1982年から2009年6月までに複数の版で刊行され、発行部数を伸ばし続けている。"}
项目创建

我们需要为此任务创建一个新项目。使用超级用户帐户登录。
在这里插入图片描述
要创建您的项目,请确保您位于项目列表页面中,然后单击创建按钮。对于本教程,我们将项目命名为书籍序列标注,写一些描述,选择序列标注任务类型。
在这里插入图片描述

数据导入

创建项目后,我们将看到 Dataset 页面,然后单击 Actions 菜单中的 Import dataset 按钮。我们应该看到以下屏幕:
在这里插入图片描述
我们选择 JSON 并单击 Select a file 按钮。选择books.json,它会自动加载。

实体标签定义

单击左侧菜单中的标签按钮以定义我们的标签。我们应该看到标签编辑器页面。在标签编辑器页面中,您可以通过指定标签文本、快捷键、背景颜色和文本颜色来创建标签。
在这里插入图片描述
至于教程,我们创建了一些与科幻小说相关的实体。

添加标注人员

单击左侧菜单中的成员按钮。如果您不是项目管理员,则不会显示该按钮。
在这里插入图片描述
然后,选择添加按钮以显示表单。使用您要添加到项目中的用户名和角色填写此表单。然后,选择保存按钮。
在这里插入图片描述
如果没有用户可以选择,请创建用户(见FAQ)。

数据标注

接下来,我们准备标注文本。只需点击导航栏中的开始标注按钮,我们就可以开始对文档进行标注了。
在这里插入图片描述

数据导出

在标注步骤之后,我们可以下载标注数据。转到数据集页面,然后单击操作菜单中的导出数据集按钮。选择导出格式后,单击导出。您应该看到以下屏幕:
在这里插入图片描述
这里我们选择 JSONL 文件,通过点击按钮下载数据。下面是我们教程项目的标注结果。sequence_labeling_for_books.json

{"doc_id": 33, 
 "text": "The Hitchhiker's Guide to the Galaxy (sometimes referred to as HG2G, HHGTTGor H2G2) is a comedy science fiction series created by Douglas Adams. Originally a radio comedy broadcast on BBC Radio 4 in 1978, it was later adapted to other formats, including stage shows, novels, comic books, a 1981 TV series, a 1984 video game, and 2005 feature film.", 
 "labels": [[0, 36, "Title"], [63, 67, "Title"], [69, 75, "Title"], [78, 82, "Title"], [89, 111, "Genre"], [130, 143, "Person"], [158, 180, "Genre"], [184, 193, "Other"], [199, 203, "Date"], [254, 265, "Genre"], [267, 273, "Genre"], [275, 286, "Genre"], [290, 294, "Date"], [295, 304, "Genre"], [308, 312, "Date"], [313, 323, "Genre"], [329, 333, "Date"], [334, 346, "Genre"]], 
 "username": "admin"}

至此数据标注任务结束。当然上面是基本流程,除此之外,标注统计等功能也提供了。

总结

感觉到这里,这个砖跑的差不多了。后面的详细使用,例如数据导入,标签定义,多人标注,数据导出等,官方文档写的很详细,本文就不在赘述了。如有问题欢迎留言讨论哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智绘山河

你的鼓励可能解决你下一个问题

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值