文本数据标注工具Doccano

        doccano是一个开源文本标注工具。 它提供了文本分类,序列标注和序列到序列的标注功能。 因此,您可以为情绪分析,命名实体识别,文本摘要等创建标记数据。 只需创建项目,上传数据并开始标注。

总结下来就3步,上传数据,标注,下载带有标签的数据。

命名实体识别

第一个演示是序列标记任务之一,命名实体识别。 您只需选择文本跨度并对其进行标注即可。 由于doccano支持快捷键,因此您可以快速标注文本跨度。

情感分析

第二个演示是文本分类任务之一,主题分类。 由于可能有多个类别,因此您可以标注多个标签。

机器翻译

最终演示是序列任务,机器翻译的序列之一。 由于序列任务的顺序可能不止一个,因此您可以创建多个响应。

doccano特性

  • 合作标注:可以进行多人合作,分配标注任务。
  • 语言独立性:你可以对任何语言的文本进行标注。在使用doccano的人群中,已知有英语,中文,日语,阿拉伯语,印度尼西亚语,etc。
  • (未来设想)自动标注:对一个文本进行了一部分标注后,后台通过学习,能自动对文本进行标注,提高标注效率。

安装:

首先,您必须克隆存储库:

git clone https://github.com/chakki-works/doccano.git

cd doccano

要安装doccano,有三种选择:

选项1:拉出生产Docker镜像  

 docker pull chakkiworks/doccano

选项2:设置Python环境

首先,我们需要安装依赖项。 运行以下命令:

sudo apt-get install libpq-dev

pip install -r requirements.txt

cd app

接下来我们需要启动webpack服务器,以便前端不断编译。 在新shell中运行以下命令:

cd server/static

npm install

npm run build# npm start  # for developers

cd ..

选项3:拉动开发Docker-Compose图像

docker-compose pull

用法:

启动开发服务器

让我们启动开发服务器并进行探索。

根据您的安装方法,有两种选择:

选项1:将Docker镜像作为Container运行

首先,运行Docker容器:

docker run -d --rm --name doccano \

  -e "ADMIN_USERNAME=admin" \

  -e "ADMIN_EMAIL=admin@example.com" \

  -e "ADMIN_PASSWORD=password" \

  -p 8000:8000 chakkiworks/doccano

选项2:运行Django开发服务器

在运行之前,我们需要进行迁移。 运行以下命令:

python manage.py migrate

接下来,我们需要创建登录管理站点的用户。 运行以下命令:

python manage.py create_admin --noinput --username "admin" --email "admin@example.com" --password "password"

开发人员还可以通过运行测试来验证项目是否按预期工作:

python manage.py test server.tests

最后,要启动服务器,请运行以下命令:

python manage.py runserver

(可选)您可以使用该命令更改绑定IP和端口

python manage.py runserver <ip>:<port>

选项3:运行开发Docker-Compose堆栈

我们可以使用docker-compose在一个命令中设置webpack服务器,django服务器,数据库等:

docker-compose up

登录:

现在,打开Web浏览器并转到http://127.0.0.1:8000/login/。 你应该看到登录界面:

创建项目:

现在,尝试使用您在上一步中创建的超级用户帐户登录。 您应该看到doccano项目列表页面:

尚未创建任何项目。 要创建项目,请确保您已进入项目列表页面并选择“创建项目”按钮。 您应该看到以下屏幕:

在此步骤中,您可以选择三种项目类型:文本分类,序列标记和序列到序列。 您应该选择符合您目的的类型。

导入数据:

创建项目后,您将看到“导入数据”页面,或单击导航栏中的“导入数据”按钮。 您应该看到以下屏幕:

您可以上传两种类型的文件:

CSV文件(TXT文件):文件必须包含带有文本列的标头,或者是单列csv文件。

JSON文件:每行包含一个带有文本键的JSON对象。 JSON格式支持换行符渲染。

注意:由于缩进问题,Doccano不会在标注页面中为序列标注任务呈现换行符,但导出的JSON文件仍包含换行符。

example.txt (or example.csv)

EU rejects German call to boycott British lamb.

President Obama is speaking at the White House.

He lives in Newark, Ohio....

example.json

{"text": "EU rejects German call to boycott British lamb."}

{"text": "President Obama is speaking at the White House."}

{"text": "He lives in Newark, Ohio."}

...

保留任何其他列(用于csv)或键(用于json),并将按原样导出元数据列或键。

在计算机上选择TXT / JSON文件后,单击“上载数据集”按钮。 上传数据集文件后,我们将看到“数据集”页面(或单击左侧栏中的“数据集”按钮列表)。 此页面显示我们在一个项目中上传的所有文档。

定义标签:

单击左侧栏中的“标签”按钮以定义您自己的标签。 您应该看到标签编辑器页面。 在标签编辑器页面中,您可以通过指定标签文本,快捷键,背景颜色和文本颜色来创建标签。

标注:

现在,您已准备好对文本进行标注。 只需单击导航栏中的“标注数据”按钮,即可开始标注上载的文档。

导出数据

在标注步骤之后,您可以下载带标注的数据。 单击导航栏中的“编辑数据”按钮,然后单击“导出数据”。 你应该看到下面的屏幕:

您可以通过单击按钮将数据导出为CSV文件或JSON文件。 对于导出文件格式,您可以在此处进行检查:导出文件格式。

每个导出的文档都将包含元数据列或键,其中将包含导入文档中的其他列或键。 元数据的主要用例是允许您通过将external_id添加到导入的文件来将导出的数据与其他系统进行匹配。 例如:

输入文件可能如下所示:import.json

{"text": "EU rejects German call to boycott British lamb.", "meta": {"external_id": 1}}

导出的文件如下所示:output.json

{"doc_id": 2023, "text": "EU rejects German call to boycott British lamb.", "labels": ["news"], "username": "root", "meta": {"external_id": 1}}

导出结果:

文本类别标注:

NER标注:

关键词标注:

Doccano开源项目链接:https://github.com/chakki-works/doccano

启动:python manage.py runserver 0.0.0.0:8000

参考链接:支持多语言的文本标注工具——doccano - 知乎

  • 10
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Steven灬

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值