Press "Enter" to skip to content

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

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

有时我们需要从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在线安装
.

 

 

镜像下载:docker pull doccano/doccano

 

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

 

docker container create --name doccano \
  -e "ADMIN_USERNAME=admin" \
  -e "[email protected]" \
  -e "ADMIN_PASSWORD=password" \
  -v doccano-db:/data \
  -p 8000:8000 doccano/doccano

 

其中的各参数意义如下:

 

admin
password
/data

 

我们直接执行上面的命令有:

 

返回了一串字符串,表示创建成功了。

 

开启容器对外提供服务: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"}

 

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

 

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

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。