doccano标注工具使用

https://github.com/doccano/doccano

一、conda 运行 doccano

要求Python 3.8+
1、进入conda

call D:ProgramData\Miniconda3\Scripts\activate

2、创建python3.8环境

conda create -n doccano python=3.8

3、进入doccano 的conda环境

conda activate doccano

进入之后安装doccano:

pip install doccano -i https://pypi.tuna.tsinghua.edu.cn/simple/

然后执行:

# Initialize database.
doccano init

doccano init 命令报错after drop column:no such column: hidden
解决方案:
https://blog.csdn.net/qq_44497995/article/details/126341535
先 pip uninstall Django
再 pip install Django==4.0.4

然后

# Create a super use
# 只需要创建用户时使用
doccano createuser --username admin --password pass
# Start a web server.
# 每次启动必须
doccano webserver --port 8000

**打开另外一个终端,**运行如下命令:

# Start the task queue to handle file upload/download.
doccano task

Go to http://127.0.0.1:8000/. 就可以使用标注工具了

以后需要每次打开服务的时候:

参考:https://blog.csdn.net/stay_foolish12/article/details/126176489

1、进入doccano的conda环境
2、在一个窗口启动doccano的WebServer,保持窗口

doccano webserver --port 8000

3、在另一个窗口启动doccano的任务队列

doccano task

4、打开浏览器(推荐Chrome),在地址栏中输入http://127.0.0.1:8000/回车

二、使用doccano标注的注意事项

1、登录
2、创建项目(注意项目类别,例如序列标注任务、文本分类任务等
3、创建标签,注意区分事件抽取、关系抽取任务中的span、relation两种类别的标签

在这里插入图片描述
4、事件、关系抽取中,务必参考提供的例子来创建标签(https://github.com/PaddlePaddle/PaddleNLP/blob/develop/model_zoo/uie/doccano.md),创建好的标签也很重要!
关系抽取任务:

事件抽取任务:
在这里插入图片描述
5、标注完成后将数据导出,选择导出的文件类型为JSONL(relation),即可导出json格式的数据,各字段的含义解释见6.1、6.2
在这里插入图片描述
6、数据转换,当标注完成后,在 doccano 平台上导出 JSONL(relation) 形式的文件,并将其重命名为 doccano_ext.json 后,放入 ./data 目录下。
通过 doccano.py 脚本进行数据形式转换,然后便可以开始进行相应模型训练。(7.1 抽取式任务数据转换

可配置参数说明:
doccano_file: 从doccano导出的数据标注文件。
save_dir: 训练数据的保存目录,默认存储在data目录下。
negative_ratio: 最大负例比例,该参数只对抽取类型任务有效,适当构造负例可提升模型效果。负例数量和实际的标签数量有关,最大负例数量 = negative_ratio * 正例数量。该参数只对训练集有效,默认为5。为了保证评估指标的准确性,验证集和测试集默认构造全负例。
splits: 划分数据集时训练集、验证集所占的比例。默认为[0.8, 0.1, 0.1]表示按照8:1:1的比例将数据划分为训练集、验证集和测试集。
task_type: 选择任务类型,可选有抽取和分类两种类型的任务。
options: 指定分类任务的类别标签,该参数只对分类类型任务有效。默认为[“正向”, “负向”]。
prompt_prefix: 声明分类任务的prompt前缀信息,该参数只对分类类型任务有效。默认为"情感倾向"。
is_shuffle: 是否对数据集进行随机打散,默认为True。
seed: 随机种子,默认为1000.
separator: 实体类别/评价维度与分类标签的分隔符,该参数只对实体/评价维度级分类任务有效。默认为"##"。

备注:
默认情况下 doccano.py 脚本会按照比例将数据划分为 train/dev/test 数据集
每次执行 doccano.py 脚本,将会覆盖已有的同名数据文件
在模型训练阶段我们推荐构造一些负例以提升模型效果,在数据转换阶段我们内置了这一功能。可通过negative_ratio控制自动构造的负样本比例;负样本数量 = negative_ratio * 正样本数量。
对于从doccano导出的文件,默认文件中的每条数据都是经过人工正确标注的。

### Doccano 标注关系的实现与配置 #### 配置标注项目类型 Doccano 支持多种类型的标注任务,每种任务对应不同的标注关系。创建新项目时可以选择适合的任务类型[^2]。 对于文本分类任务,用户可以定义标签集,这些标签用于描述文档的整体属性;而对于序列标注任务,则是在文本片段上应用标签,比如命名实体识别中的位置、人物等实体标记。在关系抽取任务里,除了基本的实体标注外,还需要指定不同实体间的关联方式,这便是所谓的“标注关系”。 ```json { "entities": [ {"id": 0, "label": "Person", "start_offset": 10, "end_offset": 15}, {"id": 1, "label": "Location", "start_offset": 20, "end_offset": 27} ], "relations": [ { "from_id": 0, "to_id": 1, "type": "Born_In" } ] } ``` 上述JSON对象展示了如何在一个具体的关系抽取场景下表示两个实体之间的联系。“`entities`”字段列举了所有被识别出来的实体及其边界,“`relations`”则记录着它们之间存在的逻辑连接——这里假设了一个简单的例子:“某个人出生于某个地点”。这种结构允许灵活地表达复杂的语义信息,并且易于扩展到更多种类的关系之上。 #### 用户界面操作指南 当选择了合适的数据集之后,在Web界面上可以通过点击来选择要建立关系的目标实体并设定其类别。接着利用工具栏上的选项按钮完成两者间特定形式的链接设置工作。整个过程直观易懂,极大地简化了人工干预难度的同时也提高了工作效率[^4]。 #### 命令行管理接口 如果希望通过脚本自动化某些流程的话,还可以借助命令行工具来进行批量处理。例如新增加一名拥有者账号以便参与协作编辑: ```bash doccano createuser --username admin --password password ``` 此命令将会创建一个新的超级管理员账户供后续登录使用。同样地,也可以针对已有成员调整权限级别或是导入导出已完成的工作成果等等[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值