doccano 文本标注工具使用

news2024/12/31 3:53:10

最近在做面向大模型的文本标注工作,涉及到多人协同的问题,因此用到了doccano工具。

这个工具可以使用docker进行安装,安装之后的启动也都比较简单。

关于基础使用(例如管理员登录、新建任务、上传数据集等),可以参照这篇博客进行操作。

本文主要介绍多人协作场景下(包括新建用户、标注与质检、标注结果导出),如何针对多篇文档进行问答。

假设现在有4篇文档,有两位同学进行标注,一人进行质检,一人负责验收,还有一个admin,只有admin可以进行标注数据的导出。

1.Docker安装和启动

参照doccano官网的示例,可以下载并运行相关的镜像:

docker pull doccano/doccano

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
  
docker container start doccano

然后执行docker ps 命令,确认已经开启doccano服务,对应的显示如下:

(base) xxx@xxx:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
756ac64acf56        doccano/doccano     "/doccano/tools/run.…"   6 hours ago         Up 4 seconds        0.0.0.0:8090->8000/tcp   doccano

之后可以访问http://0.0.0.0:8090/并看到对应的界面。

2.基础使用

接下来介绍管理员登录、新建任务、上传数据集等基础操作。

2.1管理员登陆

使用上面docker container create中的账户和密码即可。

2.2新建任务

只需要点击登录之后左上角的“create”按钮即可。不同版本的“create”按钮可能会略有不同。我选择了新建“Sequence to sequence”任务。
在这里插入图片描述创建完成后,可以自行填写项目名称和说明信息,然后参照如下进行设置,最下面两个设置代表打乱图片顺序、在标注小组内共享标注成果。当勾选共享时,就可以进行多人标注,每个人都可以看到其他人的标注结果,并且可以将任务量平均的分到每个人身上。在这里插入图片描述

2.3上传数据集

由于我的任务是在一些文档上进行提问,因此我把数据转化为了json格式,其中的text是文本内容,label可以换为其他内容,例如标注人员的编号或姓名。其中一条数据示例如下:

[{"label": "1", "text": "去年 ChatGPT 一声枪响,在全球范围内点燃了深度学习的热潮......}] 

人工标注的内容也会被放到label字段中,你可以通过添加字符串来方便区分(我用了4个#)。假设你增加了一个问题“gpt是什么时候发布的####去年”,那么上面的这条数据,在最终输出时,就会变为下面的样子:

[{"label": ["1","gpt是什么时候发布的####去年"], "text": "去年 ChatGPT 一声枪响,在全球范围内点燃了深度学习的热潮......}] 

原始数据就是我从csdn上随便找的四篇文章,我把他们复制到了txt_folder下的4个txt中,生成的json文件存放于all_data.json中。json有两个字段,text是原始内容,label可以用来区分该条数据具体由哪位标注人员负责。由txt生成json的代码如下:

import os
import json

if __name__=="__main__":

    paths = os.walk(r'./txt_folder/')
    data=[]
    index=1

    for path, dir_lst, file_lst in paths:
        for file_name in file_lst:
            article={}
            tmp_str = ""
            with open(os.path.join(path, file_name)) as f:
                for line in f.readlines():
                    tmp_str+=line
            article["text"]=tmp_str.replace("\n\n","\n")
            article["lable"]=str(index)
            index+=1
            data.append(article)

    json_str=json.dumps(data,ensure_ascii=False)

    with open("all_data.json", "w") as file:
        file.write(json_str)

制作好数据集之后,点击下图的import dataset选项,导入刚才制作好的数据集。我选择的是json类型。图片中已经有了我制作好的数据集,正常情况下图中的绿色标签是看不到的。
在这里插入图片描述

3多人标注

3.1 新建用户

多人标注首先需要新建用户。可以访问 http://0.0.0.0:8090/admin/auth/user/add/并创建用户。,
然后切换回新建的工程,点击左侧的members,然后再弹出的页面中点击add按钮,添加人员并指定角色。其中的annotator可以进行数据标注,annotation approver可以进行审核与修改,project admin可以进行标注结果的下载。

在这里插入图片描述

3.2 标注与质检

标注时,切换到相应annotator的账户,点击图片右侧的“annotate”即可进行标注。
在这里插入图片描述
点击之后,上方是数据集中的“text”中的内容,可以在下方的输入框中进行提问。我用####隔开了问题和答案,后续可以用代码分开。你也可以尝试加入更多的内容,以满足不同的标注需求。注意标注人员不要点击页面中左上角的对勾和叉子,这需要留给质检人员处理。
在这里插入图片描述
假设现在有两个标注人员,共有四个标注文档要处理,可以通过在上传数据时设置label来区分不同的任务的负责人。他们按照label的指引,完成自己负责部分的标注后就可以质检了。

现在切换到质检人员的帐号,确认无误后点击左上角的叉子,并使其变为对勾。每改掉一个叉子,右侧的绿色进度条就会有变化。达到100%即代表任务完成质检。
在这里插入图片描述

3.3标注结果导出

切换到admin账户,点击action下的export dataset,即可导出数据。

我选择了导出为json数据,可以看到,文件中多了一些标注人员提出的问答对,在下图中用黄色标出:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1003077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

推荐 4 个本周 火火火火 的开源项目

本期推荐开源项目目录: 1. 一个集成了主流 AI 大模型的 APP 2. 模拟人类行为的小镇 3. 离线 OCR 软件 4. 流程图编辑框架 01 一个集成了主流 AI 大模型的 APP 该开源项目集成了主流的大语言模型、绘图模型,基于Flutter开发,支持问答聊天、文生…

10个值得收藏的3D任务角色下载网站

每个人都喜欢免费的东西。 无论是免费的 3D 角色还是游戏资产,我们都喜欢它们。 以下是可以为你的游戏获取免费 3D 角色的前 10 个网站的列表。 你可以将它们用于多种用途,例如 3D 打印或动画剪辑。 如果需要将下载的3D模型转换为其他格式,可…

科技资讯|苹果虚拟纸可在Vision Pro中为广告、书籍等提供MR内容和动画

近日,美国专利商标局正式授予苹果一项与虚拟纸张相关的专利。这是与虚拟纸张这项发明相关的第二项专利,鉴于苹果 Vision Pro 将于明年上市,那么我们离苹果实现虚拟纸张的发明又近了一步。 虚拟纸张将能够包含 2D、3D 和动画等 MR内容&#…

移远通信一站式Matter智能照明/电工解决方案,让家居生活互联互通更便捷

从原始时期的钻木取火,到19世纪爱迪生发明电灯,人类对于“光亮”的追求从未停止。而伴随着社会经济的发展,人们对于照明等家居生活的追求开始从“物质层面”逐步向“精神层面”转变,智能家居成为了当下社会智能技术走向大众的重要…

crAPI靶场学习记录

靶场搭建 [靶场下载地址](我fork了一份) docker安装,笔者是用的wsldocker. [lab0:**初始账户 **] 注册一个账户,邮箱为[APIqq.com],密码为Admin123 登陆后访问对应IP的8025端口,接收邮件获取车辆信息。 [lab1:**访问其它用户车…

电脑ip地址在哪里看?很简单,3个方法!

在网络连接的世界中,iP地址是一个至关重要的标识,它帮助设备在互联网上进行通信。无论是在家庭网络还是企业环境中,了解如何查看电脑的iP地址都是必不可少的技能。本文将详细介绍电脑ip地址在哪里看的3个方法,帮助您轻松获取这一重…

c++深拷贝、浅拷贝

浅拷贝&#xff1a;简单的赋值拷贝包含指针拷贝 #include <iostream> #include <string.h> using namespace std; //深拷贝、浅拷贝 //浅拷贝&#xff1a;简单的赋值拷贝包含指针拷贝 //深拷贝&#xff1a;在堆区重新申请的空间&#xff0c;进行拷贝操作class Per…

《Java极简设计模式》第06章:适配器模式(Adapter)

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 文章汇总&#xff1a;https://binghe.gitcode.host/md/all/all.html 源码地址&#xff1a;https://github.com/binghe001/java-simple-design-patterns/tree/master/j…

flex 布局:一行固定个数,超出换行(流式布局)

一、flex基础 设置在父容器上的属性&#xff1a;display&#xff1a;flex&#xff0c;align-items(交叉轴对齐方式)&#xff0c;justify-content(主轴对齐方式)&#xff0c;flex-wrap(换行)。 设置在子容器上的属性&#xff0c;通过 flex: 1&#xff0c;简写了 flex-grow、fl…

2023最新计算机信息管理毕设选题分享

文章目录 0 前言1 java web 管理系统 毕设选题2 java web 平台/业务系统 毕设选题3 游戏设计、动画设计类 毕设选题 (适合数媒的同学)4 算法开发5 数据挖掘 毕设选题6 大数据处理、云计算、区块链 毕设选题7 网络安全 毕设选题8 通信类/网络工程 毕设选题9 嵌入式 毕设选题10 开…

高性能数据JS网格 Bryntum Grid 5.5.2 Crack

高性能数据网格 Bryntum Grid 是一个高性能的网络表格组件。它是用纯 JavaScript 构建的&#xff0c;并且可以轻松地与所有主要 JS 框架集成。 功能丰富 Bryntum Grid 具有您期望从专业网格组件获得的所有功能&#xff0c;包括&#xff1a; 很好的表现;很好的绩效 没有人喜欢缓…

关于卫星电话的冷知识

卫星电话功率 卫星电话的发射功率取决于以下几个因素&#xff1a; 卫星的轨道高度&#xff1a;卫星的轨道高度越高&#xff0c;卫星电话与卫星之间的距离越远&#xff0c;信号衰减越大&#xff0c;因此需要更大的发射功率。一般来说&#xff0c;同步轨道卫星&#xff08;GEO&…

[每周一更]-(第61期):Rust入门策略(持续更新)

一门语言的学习&#xff0c;就要从最基本的语法开始认识&#xff0c;再分析不同语言的区别&#xff0c;再加上实战&#xff0c;才能更快的学会&#xff0c;领悟到作者的设计思想&#xff1b; 介绍 Rust编程练习 开发工具VSCode及插件 社区驱动的 rust-analyzerEven Better T…

再生龙clonezilla系统镜像下载

官网 Clonezilla - 簡介 下载

uniapp video全屏 cover-view 失效

查看官方文档 video | uni-app官网 确定自己开发的是app端 还是 微信小程序&#xff0c;我开发的是app端&#xff0c;所以在nvue文件写&#xff0c;同时cover-view组件要在video组件内容。 我写了一个简单的视频组件&#xff0c;可以看我另一篇博客。 uniapp video&#xff08…

Windows排查恶意程序及一些工具

目录 基础排查 使用系统配置实用程序 检查启动项 检查注册表 工具 网络监控 系统监控 安全检测 文件活动监控 其他 基础排查 使用系统配置实用程序 按下Win R键组合打开运行对话框&#xff0c;然后输入"msconfig"并按Enter键。在"服务"选项卡…

Cpolar+Emlog搭建指南—在Ubuntu上轻松创建个人博客,无需专业技能

前言 博客作为使用最广的个人在互联网的发声网站&#xff0c;在很长一段时间里&#xff0c;都被大家视作在互联网上发声的主要通道之一。虽然之后出现的即时聊天工具和朋友圈崛起&#xff0c;抢夺了不少博客的空间&#xff0c;但其仍占有不小的市场份额。也正因博客很重要&…

24、京东只换不修服务,电脑经常蓝屏申请只换不休记录

我在今年4.22号买了一台机械革命蛟龙k16&#xff0c;然后在后面的使用过程中&#xff0c;差不多就是20天左右蓝屏一次&#xff0c;问题是蓝屏的时候我也没干嘛&#xff0c;就是莫名其妙。 第一次蓝屏的时候是在看电影&#xff0c;突然就显示系统出现故障&#xff0c;准备重启&a…

星创易联加入低速无人驾驶产业联盟,为客户和社会创造更大价值!

原文&#xff1a;https://www.key-iot.com/companynews/2538.html 低速无人驾驶产业联盟受益于自动驾驶政策扶持、疫情催生需求等多方面因素影响&#xff0c;中国低速无人驾驶行业发展开始加速。是国内第一家也是唯一一个专注于低速无人驾驶领域的联盟组织&#xff0c;低速无人…

Python中的常见问题与解决方案

机器学习作为当今最热门的领域之一&#xff0c;为数据科学和人工智能带来了巨大的突破和进步。然而&#xff0c;在Python中进行机器学习和深度学习开发时&#xff0c;我们可能会遇到一些常见的问题。本文将分享一些这些常见问题&#xff0c;并给出解决方案&#xff0c;帮助您更…